[MITgcm-support] Error Messages for 'seaice_growth.f' during compile
Edwards, Erick (LCDR)
eledward at nps.edu
Mon Aug 5 13:20:32 EDT 2013
Dr. Campin,
I appreciate the quick response!
Here's a list of what I'm using:
MITgcm_c64h
In packages.conf: gfd, kpp, rbcs, exf, cal, seaice
For SEAICE_OPTIONS.h, I attempted to undefine as much as possible from the start with the intent to build the options up as I learn how the module works. I did the same with kpp and exf. I'm only using exf to input time-varying hflux and ustress. In essence, I'm running with WIND, TEMP, DOWN, BULK, and EVAP undefined (like Case 1 in the comments section of EXF_OPTIONS.h) but I do not read-in a vstress, swflux or sflux. I was able to run the model and get output that reflected time-varying hflux (just like I wanted). I don't need time-varying ustress, so it remains constant (but it is still read-in).
I'm not sure how to proceed to get the model to compile and run.
Erick
Here is SEAICE_OPTIONS.h:
C $Header: /u/gcmpack/MITgcm/verification/lab_sea/code/SEAICE_OPTIONS.h,v 1.32 2012/12/27 23:00:58 gforget Exp $
C $Name: checkpoint64h $
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 *==========================================================*
#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-- 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
C in a separate external package, for example, pkg/exf, and then
C modified for sea-ice effects by pkg/seaice.
#undef 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#undef 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-- Tracers of ice and/or ice cover.
#undef ALLOW_SITRACER
#ifdef ALLOW_SITRACER
C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff.
# undef ALLOW_SITRACER_ADVCAP
#endif
C-- By default the seaice model is discretized on a B-Grid (for
C historical reasons). Define the following flag to use a new
C (not thoroughly) test version on a C-grid
#undef SEAICE_CGRID
C-- Only for the C-grid version it is possible to
#ifdef SEAICE_CGRID
C enable JFNK code by defining the following flag
# undef SEAICE_ALLOW_JFNK
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
# endif /* SEAICE_ALLOW_EVP */
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 allow the truncated ellipse rheology (runtime flag SEAICEuseTEM)
# undef SEAICE_ALLOW_TEM
#else /* not SEAICE_CGRID, but old B-grid */
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.
# undef 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.
# undef 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_CGRID */
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-- Enable free drift code
#undef SEAICE_ALLOW_FREEDRIFT
#endif /* ALLOW_SEAICE */
#endif /* SEAICE_OPTIONS_H */
CEH3 ;;; Local Variables: ***
CEH3 ;;; mode:fortran ***
CEH3 ;;; End: ***
And here is EXF_OPTIONS.h:
C $Header: /u/gcmpack/MITgcm/verification/global_ocean.cs32x15/code/EXF_OPTIONS.h,v 1.7 2012/08/09 20:31:54 jmc Exp $
C $Name: checkpoint64h $
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 pkg/exf CPP options:
C --------------------
C
C > ( EXF_VERBOSE ) < replaced with run-time, logical parameter "exf_verbose".
C
C >>> ALLOW_ATM_WIND <<<
C If defined, 10-m wind fields can be read-in from files.
C
C >>> ALLOW_ATM_TEMP <<<
C If defined, atmospheric temperature and specific
C humidity fields can be read-in from files.
C
C >>> ALLOW_DOWNWARD_RADIATION <<<
C If defined, downward long-wave and short-wave radiation
C can be read-in from files or computed from 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 and radiative fluxes at the ocean surface.
C
C >>> EXF_READ_EVAP <<<
C If defined, evaporation fields are read-in, rather than
C computed from atmospheric state.
C
C >>> ALLOW_RUNOFF <<<
C If defined, river and glacier runoff 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)
C
C >>> ICE_AREAMASK <<<
C If defined, fractional ice-covered area MASK can be read-in from files.
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 specification of arbitrary Cartesian input grids.
C
C ====================================================================
C
C The following CPP options:
C
C ALLOW_ATM_WIND (WIND)
C ALLOW_ATM_TEMP (TEMP)
C ALLOW_DOWNWARD_RADIATION (DOWN)
C ALLOW_BULKFORMULAE (BULK)
C EXF_READ_EVAP (EVAP)
C
C permit the ocean-model forcing configurations listed in the
C table below. The first configuration is the default,
C flux-forced, ocean model. The next four are stand-alone
C configurations that use pkg/exf, open-water bulk formulae to
C compute the missing surface fluxes from atmospheric variables.
C The last four configurations can be used in conjunction with
C pkg/seaice to model ice-covered regions. The forcing fields
C in the rightmost column are defined in exf_fields.
C
C
C WIND |TEMP |DOWN |BULK |EVAP | actions
C -----|-----|-----|-----|-----|-------------------------------------
C | | | | |
C - | - | - | - | - | Read-in ustress, vstress, hflux,
C | | | | | swflux, and sflux.
C | | | | |
C def | def | def | def | - | Read-in uwind, vwind, atemp, aqh,
C | | | | | swdown, lwdown, precip, and runoff.
C | | | | | Compute ustress, vstress, hflux,
C | | | | | swflux, and sflux.
C | | | | |
C def | def | - | def | - | Read-in uwind, vwind, atemp, aqh,
C | | | | | swflux, lwflux, precip, and runoff.
C | | | | | Compute ustress, vstress, hflux,
C | | | | | and sflux.
C | | | | |
C def | - | - | def | - | Read-in uwind, vwind, hflux,
C | | | | | swflux, and sflux.
C | | | | | Compute ustress and vstress.
C | | | | |
C - | def | - | def | - | Read-in ustress, vstress, atemp,
C | | | | | aqh, swflux, lwflux, precip, and
C | | | | | runoff. Compute hflux and sflux.
C | | | | |
C def | def | - | - | def | Read-in uwind, vwind, atemp, aqh,
C | | | | | swflux, lwflux, precip, runoff,
C | | | | | and evap.
C | | | | |
C def | def | - | def | - | Read-in uwind, vwind, atemp, aqh,
C | | | | | swflux, lwflux, precip, and runoff.
C | | | | | Compute open-water ustress, vstress,
C | | | | | hflux, swflux, and evap.
C | | | | |
C def | def | def | - | def | Read-in uwind, vwind, atemp, aqh,
C | | | | | swdown, lwdown, precip, runoff,
C | | | | | and evap.
C | | | | |
C def | def | def | def | - | Read-in uwind, vwind, atemp, aqh,
C | | | | | swdown, lwdown, precip, and runoff.
C | | | | | Compute open-water ustress, vstress,
C | | | | | hflux, swflux, and evap.
C
C ====================================================================
C Bulk formulae related flags.
#undef ALLOW_ATM_TEMP
#undef ALLOW_ATM_WIND
#undef ALLOW_DOWNWARD_RADIATION
#undef ALLOW_RUNOFF
#if (defined (ALLOW_ATM_TEMP) || defined (ALLOW_ATM_WIND))
#undef 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.
#undef ALLOW_CLIMSST_RELAXATION
#undef 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 /* ndef ECCO_CPPOPTIONS_H */
#endif /* ALLOW_EXF */
#endif /* EXF_OPTIONS_H */
Hi,
My comments below are not accurate:
On Thu, Aug 01, 2013 at 06:35:12PM -0400, Jean-Michel Campin wrote:
> Hi Erick,
>
> Assuming you are using a recent version of the code (otherwise, will
> need to know which version it is), if you can provide the list of packages
> you compile (packages.conf) and the CPP option files (specially the
> one for pkg/seaice, i.e.: SEAICE_OPTIONS.h), we will have a better idea
> of what is the problem.
>
> One thing that has changed recently (pkg/pkg_depend, on May 25, 2013)
> is that compiling pkg/seaice does not turn on pkg/exf anymore.
> The verification experiments that uses pkg/seaice has been changed
> accordingly, but may be you did not start from an up-to-date
> verification experiment ?
The modifications from May 25 have been made safely, seaice_growth.F will
compile even without pkg/exf, but the routine SEACIE_GROWTH will
be mostly empty except an unconditional STOP.
Jean-Michel
>
> Cheers,
> Jean-Michel
>
> On Thu, Aug 01, 2013 at 08:58:21PM +0000, Edwards, Erick (LCDR) wrote:
> > MITgcm Support,
> >
> > I'm attempting to use the 'seaice' package but during the compile (after the 'make' command), I get the following messages:
> >
> > seaice_growth.f(5895): error #6404: This name does not have a type, and must have an explicit type. [SNOWPRECIP]
> > & snowPrecip(i,j,bi,bj) * (ONE-AREApreTH(I,J))
> > -------------------^
> > seaice_growth.f(5982): error #6404: This name does not have a type, and must have an explicit type. [EVAP]
> > & ( ( EVAP(I,J,bi,bj)-PRECIP(I,J,bi,bj) )
> > -----------------^
> > seaice_growth.f(5982): error #6404: This name does not have a type, and must have an explicit type. [PRECIP]
> > & ( ( EVAP(I,J,bi,bj)-PRECIP(I,J,bi,bj) )
> > ---------------------------------^
> > compilation aborted for seaice_growth.f (code 1)
> > make[1]: *** [seaice_growth.o] Error 1
> > make[1]: *** Waiting for unfinished jobs....
> > make: *** [fwd_exe_target] Error 2
> >
> > Has anyone else experienced this?
> >
> > Erick
> >
> >
>
> > _______________________________________________
> > MITgcm-support mailing list
> > MITgcm-support at mitgcm.org<http://mitgcm.org/mailman/listinfo/mitgcm-support>
> > http://mitgcm.org/mailman/listinfo/mitgcm-support
>
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org<http://mitgcm.org/mailman/listinfo/mitgcm-support>
> http://mitgcm.org/mailman/listinfo/mitgcm-support
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mitgcm.org/pipermail/mitgcm-support/attachments/20130805/ce61be57/attachment-0001.htm>
More information about the MITgcm-support
mailing list