Sylt test case/real estuary case crash

230 views
Skip to first unread message

soheila

unread,
Apr 19, 2012, 12:39:01 AM4/19/12
to GETM-users
Dear Getm users

I have compiled Gotm4.0.0 and Getm2.0.0 in my virtual linux (64 bit)
using IFORT and all test cases except Sylt runs fine. The real case
that I’m building is very similar to Sylt test case, that’s why I need
to get Sylt to work.

The compiling goes fine with Sylt and the model runs on single
processor without giving any error, but after 10 steps in outputs,
NaNs start to appear in all outputs and the code keeps running writing
NaNs.

The same scenario (NaN writing) happens in my real case after 2 days
simulation and I was wondering if the problem is basically the same as
Sylt and how it can be fixed.

I appreciate any help/comment in this subject.

Soheila

Mahdi Mohammadi

unread,
Apr 19, 2012, 2:50:45 AM4/19/12
to getm-...@googlegroups.com
Hi, I would try to increase "crit_depth" and "min_depth". Others might have better idea.
Mahdi


From: soheila <sl.t...@gmail.com>
To: GETM-users <getm-...@googlegroups.com>
Sent: Thursday, April 19, 2012 6:39 AM
Subject: [getm-users: 1687] Sylt test case/real estuary case crash

Knut

unread,
Apr 19, 2012, 3:29:01 AM4/19/12
to getm-...@googlegroups.com
Dear Sophelia,

> The compiling goes fine with Sylt and the model runs on single
> processor without giving any error, but after 10 steps in outputs,
> NaNs start to appear in all outputs and the code keeps running writing
> NaNs.
>


Thanks for your report.

Karsten, you experienced similar crahses some time ago, whereas we did
not. Could you figured out the reason?


Knut

soheila

unread,
Apr 19, 2012, 3:30:51 AM4/19/12
to GETM-users
Thanks Mahdi

I tried increasing both crit_depth and min_depth in Sylt to double,
even 4 times bigger the default values and it postpones crashing to
some time later (time step 36).

My other concern is the rough pattern I see in the elevation and U and
V. It looks like some waves or eddies are generated in the middle of
domain by just tidal forcing <1m. The elevation inside the domain goes
up to 4 m!

Soheila

On Apr 19, 2:50 pm, Mahdi Mohammadi <mahdiar...@yahoo.com> wrote:
> Hi, I would try to increase "crit_depth" and "min_depth". Others might have better idea.
> Mahdi
>
> ________________________________
>  From: soheila <sl.ta...@gmail.com>

Knut

unread,
Apr 19, 2012, 3:32:59 AM4/19/12
to getm-...@googlegroups.com
when did you clone the test cases?
before april 1st?

soheila wrote:
> Thanks Mahdi
>
> I tried increasing both crit_depth and min_depth in Sylt to double,
> even 4 times bigger the default values and it postpones crashing to
> some time later (time step 36).
>
> My other concern is the rough pattern I see in the elevation and U and
> V. It looks like some waves or eddies are generated in the middle of
> domain by just tidal forcing <1m. The elevation inside the domain goes
> up to 4 m!
>
> Soheila
>
> On Apr 19, 2:50 pm, Mahdi Mohammadi <mahdiar...@yahoo.com> wrote:
>
>> Hi, I would try to increase "crit_depth" and "min_depth". Others might have better idea.
>> Mahdi
>>
>> ________________________________
>> From: soheila <sl.ta...@gmail.com>
>> To: GETM-users <getm-...@googlegroups.com>
>> Sent: Thursday, April 19, 2012 6:39 AM
>> Subject: [getm-users: 1687] Sylt test case/real estuary case crash
>>
>> Dear Getm users
>>
>> I have compiled Gotm4.0.0 and Getm2.0.0 in my virtual linux (64 bit)
>> using IFORT and all test cases except Sylt runs fine. The real case

>> that I�m building is very similar to Sylt test case, that�s why I need

soheila

unread,
Apr 19, 2012, 3:36:47 AM4/19/12
to GETM-users
Hi Knut
Yes, probably Jan 2012.
Soheila

On Apr 19, 3:32 pm, Knut <knuta...@gmx.net> wrote:
> when did you clone the test cases?
> before april 1st?
>
>
>
> soheila wrote:
> > Thanks Mahdi
>
> > I tried increasing both crit_depth and min_depth in Sylt to double,
> > even 4 times bigger the default values and it postpones crashing to
> > some time later (time step 36).
>
> > My other concern is the rough pattern I see in the elevation and U and
> > V. It looks like some waves or eddies are generated in the middle of
> > domain by just tidal forcing <1m. The elevation inside the domain goes
> > up to 4 m!
>
> > Soheila
>
> > On Apr 19, 2:50 pm, Mahdi Mohammadi <mahdiar...@yahoo.com> wrote:
>
> >> Hi, I would try to increase "crit_depth" and "min_depth". Others might have better idea.
> >> Mahdi
>
> >> ________________________________
> >>  From: soheila <sl.ta...@gmail.com>
> >> To: GETM-users <getm-...@googlegroups.com>
> >> Sent: Thursday, April 19, 2012 6:39 AM
> >> Subject: [getm-users: 1687] Sylt test case/real estuary case crash
>
> >> Dear Getm users
>
> >> I have compiled Gotm4.0.0 and Getm2.0.0 in my virtual linux (64 bit)
> >> using IFORT and all test cases except Sylt runs fine. The real case
> >> that I m building is very similar to Sylt test case, that s why I need

Knut

unread,
Apr 19, 2012, 3:38:04 AM4/19/12
to getm-...@googlegroups.com
dear sophelia,

then you are probably using vert_cord=5.
change that to 1 or just update to the new test cases.

regards,
knut

soheila

unread,
Apr 19, 2012, 4:03:24 AM4/19/12
to GETM-users
Thanks Knut for the advice. I changed the vert_cord to 1 and the NaN
writing started later (time step 250).

The pattern and magnitude of elevation, U and V is not believable yet
to me. It is not smooth and elevation is even bigger than before
(6m).

Looks like there is no damping in energy by turbulance or any other
thing in the system. I can't describe it any better without showing
the results, it is very rough and wavy looking.

Soheila

Ulf Gräwe

unread,
Apr 19, 2012, 4:21:40 AM4/19/12
to getm-...@googlegroups.com
Do you do a full simulation?

Since you experience problems, I would suggest to start with runtype=1
(depth averaged mode). This will give you a hint if the boundaries are
fine, the drying/flooding is ok, ...

Can you do that and report back.

Can you than also attach your getm.inp?

Cheers, ulf


--
Ulf Gr�we

Leibniz Institute for Baltic Sea Research Warnemuende
Dept. for Physical Oceanography and Instrumentation
Seestrasse 15
D-18119 Rostock-Warnemuende
Germany

Pho. : +49 (381) 5197-358
Fax : +49 (381) 5197-440
Web : http://www.io-warnemuende.de/ulf-graewe-en.html
Room : 216

soheila

unread,
Apr 19, 2012, 9:29:10 PM4/19/12
to GETM-users
Dear Ulf

The depth average mode generates similar unusual outputs and stops
running with the error message:
FATAL ERROR: save_2d_ncdf:
NetCDF: Numeric conversion not representable

The extreme elevation and velocities are not happening on the
boundary, so my guess is that boundaries are fine.
Here is the getm.inp (run type changed to 1 and vert_cord to 1)

!-------------------------------------------------------------------------------
! general model setup
!-------------------------------------------------------------------------------
! dryrun [bool]
! dry run
! runid [string]
! identifier for the naming of output files
! title [string]
! title of simulation
! parallel [bool]
! parallel simulation
! runtype [integer]
! type of run
! 1: 2D
! 2: 3D (no density)
! 3: 3D (frozen density)
! 4: 3D (full)
! hotstart [bool]
! read initial fields from file
! use_epoch [bool]
! use a common time origin for a series of hotstart
simulations
! save_initial [bool]
! save initial values i.e. before entering the time
loop
!-------------------------------------------------------------------------------

&param
dryrun = .false.,
runid = 'sylt',
title = 'Sylt - tidal simulation',
parallel = .false.,
! runtype = 2,
runtype = 1,
hotstart = .false.,
use_epoch = .false.,
save_initial = .true.,
/

!-------------------------------------------------------------------------------
! time related formats and variables
!-------------------------------------------------------------------------------
! timestep [float, unit = s]
! micro timestep
! timefmt [integer]
! time format
! 1: nlast only - fake start time used
! 2: start and stop - nlast calculated
! 3: start and nlast - stop calculated
! nlast [integer]
! number of time steps
! This variable is not used if timefmt = 2
! start [string, format = "yyyy-mm-dd hh:mm:ss"]
! initial time
! This variable is not used if timefmt = 1
! stop [string, format = "yyyy-mm-dd hh:mm:ss"]
! final time
! This variable is only used if timefmt = 2
!-------------------------------------------------------------------------------

&time
timestep = 4.4714,
timefmt = 3,
nlast = 30000,
start = '2000-01-01 00:00:00',
stop = '2000-01-01 00:00:00',
/

!-------------------------------------------------------------------------------
! information on the calculation domain
!-------------------------------------------------------------------------------
! vert_cord [integer]
! vertical coordinates
! 1: sigma
! 2: z-level
! 3: general vertical coordinates (gvc)
! 5: adaptive coordinates
! maxdepth [float, unit = m]
! maximum depth in active calculation domain
! This variable is only used if vert_cord = 3
! bathymetry [string]
! name of file with bathymetry and grid
! longitude [float, unit = deg East]
! Longitude used for calculating short wave radiation
(if not from
! bathymetry file)
! latitude [float, unit = deg North]
! Latitude used for calculating the Coriolis force (if
not from
! bathymetry file)
! f_plane [bool]
! compute (constant) f latitude (otherwise calculated
from
! latitude,longitude in bathymetry)
! openbdy [bool]
! whether the scenario has open boundaries
! bdyinfofile [string]
! name of file with boundary info
! This variable is only used if openbdy = True
! crit_depth [float, unit = m]
! the critical depth - when the drying procedure starts
! min_depth [float, unit = m]
! the absolute minimum depth
! kdum [integer]
! number of layers in the vertical - only used when -
DDYNAMIC
! ddu [float]
! Surface zooming: 0: no zooming, 1: weak zooming, 3:
strong
! zooming, etc.
! ddl [float]
! Bottom zooming: 0: no zooming, 1: weak zooming, 3:
strong
! zooming, etc.
! d_gamma [float, unit = m]
! Depth below which sigma coordinates are used. For
larger depth,
! surface or bottom layer thickness at depth=d_gamma
is kept,
! depending on gamma_surf
! This variable is only used if vert_cord = 3
! gamma_surf [bool]
! layer thickness constant at surface (else at the
bottom)
! This variable is only used if vert_cord = 3
! il [integer]
! ???
! ih [integer]
! ???
! jl [integer]
! ???
! jh [integer]
! ???
! z0_method [integer]
! bottom roughness specification
! 0: constant - using z0_const
! 1: space varying - read from bathymetry file (variable
name MUST
! be z0)
! z0_const [float, unit = m]
! constant bottom roughness
! This variable is only used if z0_method = 0
!-------------------------------------------------------------------------------

&domain
! vert_cord = 5,
vert_cord = 1,
maxdepth = 29.1,
bathymetry = 'topo.nc',
longitude = 0.0,
latitude = 50.0,
f_plane = .true.,
openbdy = .true.,
bdyinfofile = 'bdyinfo.dat',
crit_depth = 0.2,
min_depth = 0.05,
kdum = 10,
ddu = -1.0,
ddl = -1.0,
d_gamma = 20.0,
gamma_surf = .true.,
il = -1,
ih = -1,
jl = -1,
jh = -1,
z0_method = 0,
z0_const = 0.01,
/

!-------------------------------------------------------------------------------
! variables related to meteorological forcing
!-------------------------------------------------------------------------------
! metforcing [bool]
! use meteorological forcing
! on_grid [bool]
! Are meteo given on grid-points?
! This variable is only used if metforcing = True
! calc_met [bool]
! Are the fluxes already given?
! This variable is only used if metforcing = True
! met_method [integer]
! meteo method
! 1: constant
! 2: from file
! This variable is only used if metforcing = True
! fwf_method [integer]
! freshwater flux method
! 0: none
! 1: constant, use precip_const and evap_const
! 2: both evapotation and precipitation from file
! 3: evaporation is calculated, precipitation from
file
! 4: evaporation is calculated, NO precipitation
! This variable is only used if metforcing = True
! spinup [integer, unit = micro time steps]
! number of time steps for forcing spin-up
! This variable is only used if metforcing = True
! metfmt [integer]
! format of meteofile
! 1: ASCII
! 2: NetCDF
! This variable is only used if (metforcing = True and
! met_method = 2)
! meteo_file [string]
! name of meteofile
! This variable is only used if (metforcing = True and
! met_method = 2)
! tx [float, unit = Pa]
! constant x stress
! This variable is only used if (metforcing = True and
! met_method = 1)
! ty [float, unit = Pa]
! constant y stress
! This variable is only used if (metforcing = True and
! met_method = 1)
! swr_const [float, unit = W/m^2]
! constant short wave radiation
! This variable is only used if (metforcing = True and
! met_method = 1)
! shf_const [float, unit = W/m^2]
! constant surface heat flux
! This variable is only used if (metforcing = True and
! met_method = 1)
! evap_const [float, unit = m/s]
! constant evaporation
! This variable is only used if (metforcing = True and
! fwf_method = 1)
! precip_const [float, unit = m/s]
! constant precipitation
! This variable is only used if (metforcing = True and
! fwf_method = 1)
! evap_factor [float]
! factor to convert evaporation to m/s
! This variable is only used if (metforcing = True and
! fwf_method = 2)
! precip_factor [float]
! factor to convert precipitation to m/s
! This variable is only used if (metforcing = True and
! (fwf_method = 2 or fwf_method = 3))
!-------------------------------------------------------------------------------

&meteo
metforcing = .false.,
on_grid = .true.,
calc_met = .false.,
met_method = 1,
fwf_method = 0,
spinup = 1000,
metfmt = 2,
meteo_file = 'meteo.nc',
tx = 0.0,
ty = 0.0,
swr_const = 0.0,
shf_const = 0.0,
evap_const = 0.0,
precip_const = 0.0,
evap_factor = 1.0,
precip_factor = 1.0,
/

!-------------------------------------------------------------------------------
! variables related to rivers
!-------------------------------------------------------------------------------
! river_method [integer]
! river method
! 0: none
! 1: constant
! 2: from file
! river_info [string]
! name of file with river specifications
! This variable is only used if river_method = 2
! river_format [integer]
! format of river_data
! 1: ASCII
! 2: NetCDF
! This variable is only used if river_method = 2
! river_data [string]
! name of file with actual river data
! This variable is only used if river_method = 2
! river_ramp [integer]
! ramp on river flows - in micro time steps
! This variable is not used if river_method = 0
! river_factor [float]
! factor to convert river flow to m^3/s
! This variable is only used if river_method = 2
! use_river_salt [bool]
! use salinity info - if present in river data
! This variable is only used if river_method = 2
! use_river_temp [bool]
! use temperature info - if present in river data
! This variable is only used if river_method = 2
!-------------------------------------------------------------------------------

&rivers
river_method = 0,
river_info = 'riverinfo.dat',
river_format = 2,
river_data = 'rivers.nc',
river_ramp = -1,
river_factor = 1.0,
use_river_salt = .false.,
use_river_temp = .false.,
/

!-------------------------------------------------------------------------------
! variables related to 2D model
!-------------------------------------------------------------------------------
! MM [integer, minimum = 0, unit = micro time steps]
! time steps between calls to bottom_friction()
! vel_depth_method [integer]
! vel_depth_method
! 0: use mean value of neighboring H points
(default)
! 1: use minimum value of neighboring H points
! 2: use mixture of mean and minimum values: see
code for
! details
! Am [float, unit = m^2/s]
! constant horizontal momentum diffusion
coefficient
! An_method [integer]
! method for constant horizontal numerical
diffusion
! coefficient (m^2/s) used to filter the surface
elevation
! 0: disabled
! 1: constant value An_const
! 2: variable 2D from file
! An_const [float, unit = m^2/s]
! constant horizontal numerical diffusion
coefficient
! This variable is only used if An_method = 1
! An_file [string]
! name of netcdf file with variable An
! This variable is only used if An_method = 2
! residual [integer]
! compute vertically integrated residual currents
every
! 'residual' time step
! sealevel_check [integer]
! Interval between checks for NaN's in sealevels.
0:
! disabled, >0: check every sealevel_check step,
abort if
! check fails, <0: check every
abs(sealevel_check) step,
! warn only if check fails
! bdy2d [bool]
! open boundaries exist
! bdyfmt_2d [integer]
! format of boundary specifications
! -1: no data needed
! 0: analytical
! 1: ASCII
! 2: NetCDF
! This variable is only used if bdy2d = True
! bdyramp_2d [integer]
! number of time steps for elevation boundary spin-
up
! This variable is only used if bdy2d = True
! bdyfile_2d [string]
! name of file with boundary data
! This variable is only used if (bdy2d = True and
(bdyfmt_2d
! = 1 or bdyfmt_2d = 2))
!-------------------------------------------------------------------------------

&m2d
MM = 1,
vel_depth_method = 0,
Am = -1.0,
An_method = 0,
An_const = 0.0,
An_file = 'field_An.nc',
residual = 20000,
sealevel_check = 0,
bdy2d = .true.,
bdyfmt_2d = 2,
bdyramp_2d = 1000,
bdyfile_2d = 'sylt_bdy.nc',
/

!-------------------------------------------------------------------------------
! variables related to 3D model
!-------------------------------------------------------------------------------
! M [integer, minimum = 1, unit = micro time steps]
! time steps between calls to 3D model
! cnpar [float, minimum = 0.0, maximum = 1.0]
! Cranck-Nicolson parameter
! cord_relax [float, minimum = 0.0, unit = s]
! Coordinate relaxation time scale. The parameter
! r=cord_relax/dt*H(i,j)/maxdepth regulates how
strongly
! new layer distribution is relaxed to the old
one.
! This variable is only used if ../domain/vert_cord
= 3
! bdy3d [bool]
! open boundaries exist
! bdyfmt_3d [integer]
! format of boundary specifications
! 1: ASCII
! 2: NetCDF
! This variable is only used if bdy3d = True
! bdyramp_3d [integer]
! number of time steps for boundary spin-up
! This variable is only used if bdy3d = True
! bdyfile_3d [string]
! name of file with boundary data
! This variable is only used if bdy3d = True
! bdy3d_tmrlx [bool]
! temporal 3D boundary relaxation coeff.
! This variable is only used if bdy3d = True
! bdy3d_tmrlx_min [float, minimum = 0.0, maximum = 1.0]
! minimum relaxation coefficient
! This variable is only used if bdy3d_tmrlx = True
! bdy3d_tmrlx_max [float, minimum = 0.0, maximum = 1.0]
! maximum relaxation coefficient
! This variable is only used if bdy3d_tmrlx = True
! bdy3d_tmrlx_ucut [float, minimum = 0.0, unit = m/s]
! velocity threshold
! This variable is only used if bdy3d_tmrlx = True
! vel_hor_adv [integer]
! horizontal advection method for momentum
! 1: upstream (first-order, monotone)
! 2: 2D upstream (first-order, monotone)
! 3: P2-PDM (third-order, non-monotone)
! 4: TVD-Superbee (second-order, monotone)
! 5: TVD-MUSCL (second-order, monotone)
! 6: TVD-P2-PDM (third-order, monotone)
! 7: 2D-FCT
! vel_ver_adv [integer]
! vertical advection method for momentum
! 1: upstream (first-order, monotone)
! 2: 2D upstream (first-order, monotone)
! 3: P2-PDM (third-order, non-monotone)
! 4: TVD-Superbee (second-order, monotone)
! 5: TVD-MUSCL (second-order, monotone)
! 6: TVD-P2-PDM (third-order, monotone)
! 7: 2D-FCT
! vel_adv_split [integer]
! splitting scheme for advection
! 0: 1D split --> full u, full v, full w
! 1: 1D split --> half u, half v, full w, half v,
half u
! 2: 2D-hor-1D-vert split --> full uv, full w
! calc_temp [bool]
! solve temperature equation
! calc_salt [bool]
! solve salinity equation
! avmback [float, unit = m^2/s]
! background viscosity
! avhback [float, unit = m^2/s]
! background diffusivity
! ip_method [integer]
! internal pressure method
! 1: Blumberg and Mellor
! 2: Blumberg and Mellor (linear)
! 3: z-interpolation
! 4: Song and Wright
! 5: Chu and Fan
! 6: Shchepetkin and McWilliams (2003)
! 7: Stelling and van Kester (1994)
! ip_ramp [integer, unit = micro time steps]
! Internal pressure spin-up. must be a multiple of
M (split
! factor)
! vel_check [integer]
! Interval between checks for out-of-bounds
velocities. 0:
! disabled, >0: check every vel_check step, abort
if check
! fails, <0: check every abs(vel_check) step,
warn if check
! fails
! min_vel [float, unit = m/s]
! minimum valid velocity
! This variable is not used if vel_check = 0
! max_vel [float, unit = m/s]
! maximum valid velocity
! This variable is not used if vel_check = 0
!-------------------------------------------------------------------------------

&m3d
M = 10,
cnpar = 0.9,
cord_relax = 0.0,
bdy3d = .false.,
bdyfmt_3d = 2,
bdyramp_3d = -1,
bdyfile_3d = 'bdy_3d.nc',
bdy3d_tmrlx = .false.,
bdy3d_tmrlx_min = 0.0,
bdy3d_tmrlx_max = 0.25,
bdy3d_tmrlx_ucut = 0.02,
vel_hor_adv = 1,
vel_ver_adv = 1,
vel_adv_split = 0,
calc_temp = .false.,
calc_salt = .false.,
avmback = 0.0,
avhback = 0.0,
ip_method = 1,
ip_ramp = -1,
vel_check = 0,
min_vel = -4.0,
max_vel = 4.0,
/

!-------------------------------------------------------------------------------
! variables related to temperature
!-------------------------------------------------------------------------------
! temp_method [integer]
! temperature method
! 0: read from hotstart file
! 1: constant
! 2: homogeneous stratification
! 3: from 3D field
! temp_const [float]
! constant initial temperature
! This variable is only used if temp_method = 1
! temp_format [integer]
! format of temperature file
! 1: ASCII
! 2: NetCDF
! This variable is only used if temp_method = 3
! temp_file [string]
! name of file with initial temperature
distribution
! This variable is only used if temp_method = 3
! temp_name [string]
! name of the temperature variable
! This variable is only used if (temp_method = 3
and
! temp_format = 2)
! temp_field_no [integer]
! what number to read initial data from
! This variable is only used if (temp_method = 3
and
! temp_format = 2)
! temp_hor_adv [integer]
! horizontal advection method for temperature
! 1: upstream (first-order, monotone)
! 2: 2D upstream (first-order, monotone)
! 3: P2-PDM (third-order, non-monotone)
! 4: TVD-Superbee (second-order, monotone)
! 5: TVD-MUSCL (second-order, monotone)
! 6: TVD-P2-PDM (third-order, monotone)
! 7: 2D-FCT
! temp_ver_adv [integer]
! vertical advection method for temperature
! 1: upstream (first-order, monotone)
! 2: 2D upstream (first-order, monotone)
! 3: P2-PDM (third-order, non-monotone)
! 4: TVD-Superbee (second-order, monotone)
! 5: TVD-MUSCL (second-order, monotone)
! 6: TVD-P2-PDM (third-order, monotone)
! 7: 2D-FCT
! temp_adv_split [integer]
! splitting scheme for advection of temperature
! 0: 1D split --> full u, full v, full w
! 1: 1D split --> half u, half v, full w, half v,
half u
! 2: 2D-hor-1D-vert split --> full uv, full w
! temp_AH [float, unit = m^2/s]
! horizontal diffusivity of heat
! attenuation_method [integer]
! light attenuation method
! 0: spatially constant coefficients
! 1: spatially and temporally varying - read from
file
! jerlov [integer]
! Jerlov water class
! 0: custom
! 1: Jerlov type I
! 2: Jerlov type 1 (upper 50 m)
! 3: Jerlov type IA
! 4: Jerlov type IB
! 5: Jerlov type II
! 6: Jerlov type III
! 7: User specified A, g1 and g2
! This variable is only used if
attenuation_method = 0
! A_const [float]
! longwave fraction of visible light
! This variable is only used if
(attenuation_method = 0 and
! jerlov = 7)
! g1_const [float, unit = m]
! efolding depth of longwave fraction
! This variable is only used if
(attenuation_method = 0 and
! jerlov = 7)
! g2_const [float, unit = m]
! efolding depth of shortwave fraction
! This variable is only used if
(attenuation_method = 0 and
! jerlov = 7)
! attenuation_file [string]
! name of file with varying coefficients
! This variable is only used if
attenuation_method = 1
! swr_bot_refl_frac [float, minimum = 0., maximum = 1.]
! At low - or in clear - waters a certain amount
of SWR
! reaches the bottom. The value of this
variable
! specifies how much is reflected up in the
water column.
! Set to 0 to have no reflection. Default value
is 0
! swr_min_bot_frac [float, minimum = 0.0, maximum = 1.]
! Only do reflection if the ratio of bottom to
surface SWR
! is greater than this variable. Only used if
! swr_bot_refl_frac is greater than 0. Default
is 0.01.
! This variable is not used if swr_bot_refl_frac
= 0
! temp_check [integer]
! Interval between checks for out-of-bounds
temperatures.
! 0: disabled, >0: check every temp_check step,
abort if
! check fails, <0: check every abs(temp_check)
step, warn
! if check fails
! min_temp [float, unit = degC]
! minimum valid temperature
! This variable is not used if temp_check = 0
! max_temp [float, unit = degC]
! maximum valid temperature
! This variable is not used if temp_check = 0
!-------------------------------------------------------------------------------

&temp
temp_method = 1,
temp_const = 20.0,
temp_format = 2,
temp_file = 't_and_s.nc',
temp_name = 'temp',
temp_field_no = 1,
temp_hor_adv = 1,
temp_ver_adv = 1,
temp_adv_split = 0,
temp_AH = -1.0,
attenuation_method = 0,
jerlov = 1,
A_const = 0.58,
g1_const = 0.35,
g2_const = 23.0,
attenuation_file = 'attenuation.nc',
swr_bot_refl_frac = 0.0,
swr_min_bot_frac = 0.01,
temp_check = 0,
min_temp = -2.0,
max_temp = 35.0,
/

!-------------------------------------------------------------------------------
! variables related to salinity
!-------------------------------------------------------------------------------
! salt_method [integer]
! salinity method
! 0: read from hotstart file
! 1: constant
! 2: homogeneous stratification
! 3: from 3D field
! salt_const [float, unit = psu]
! constant initial salinity
! This variable is only used if salt_method = 1
! salt_format [integer]
! format of salinity file
! 1: ASCII
! 2: NetCDF
! This variable is only used if salt_method = 3
! salt_file [string]
! name of file with initial salinity distribution
! This variable is only used if salt_method = 3
! salt_name [string]
! name of the salinity variable
! This variable is only used if (salt_method = 3 and
! salt_format = 2)
! salt_field_no [integer]
! what number to read initial data from
! This variable is only used if (salt_method = 3 and
! salt_format = 2)
! salt_hor_adv [integer]
! horizontal advection method for salinity
! 1: upstream (first-order, monotone)
! 2: 2D upstream (first-order, monotone)
! 3: P2-PDM (third-order, non-monotone)
! 4: TVD-Superbee (second-order, monotone)
! 5: TVD-MUSCL (second-order, monotone)
! 6: TVD-P2-PDM (third-order, monotone)
! 7: 2D-FCT
! salt_ver_adv [integer]
! vertical advection method for salinity
! 1: upstream (first-order, monotone)
! 2: 2D upstream (first-order, monotone)
! 3: P2-PDM (third-order, non-monotone)
! 4: TVD-Superbee (second-order, monotone)
! 5: TVD-MUSCL (second-order, monotone)
! 6: TVD-P2-PDM (third-order, monotone)
! 7: 2D-FCT
! salt_adv_split [integer]
! splitting scheme for advection of salinity
! 0: 1D split --> full u, full v, full w
! 1: 1D split --> half u, half v, full w, half v,
half u
! 2: 2D-hor-1D-vert split --> full uv, full w
! salt_AH [float, unit = m^2/s]
! horizontal diffusivity of salt
! salt_check [integer]
! Interval between checks for out-of-bounds
salinities. 0:
! disabled, >0: check every salt_check step, abort
if check
! fails, <0: check every abs(salt_check) step, warn
if check
! fails
! min_salt [float, unit = psu]
! minimum valid salinity
! This variable is not used if salt_check = 0
! max_salt [float, unit = psu]
! maximum valid salinity
! This variable is not used if salt_check = 0
!-------------------------------------------------------------------------------

&salt
salt_method = 1,
salt_const = 35.0,
salt_format = 2,
salt_file = 't_and_s.nc',
salt_name = 'salt',
salt_field_no = 1,
salt_hor_adv = 1,
salt_ver_adv = 1,
salt_adv_split = 0,
salt_AH = -1.0,
salt_check = 0,
min_salt = 0.0,
max_salt = 40.0,
/

!-------------------------------------------------------------------------------
! equation of state
!-------------------------------------------------------------------------------
! eqstate_method [integer]
! equation of state method
! 1: linearisation of equation of state with
T0,S0,dtr0,dsr0
! 2: UNESCO (1980) equation of state with no pressure
! adjustment
! 3: http://www.teos-10.org/ - adopted for modelling
according
! Jackett et al. 2006
! T0 [float, unit = MASCULINE ORDINAL INDICATORC]
! reference temperature for linear equation of state
! This variable is only used if eqstate_method = 1
! S0 [float, unit = psu]
! reference salinity for linear equation of state
! This variable is only used if eqstate_method = 1
! p0 [float, unit = bar]
! reference pressure for linear equation of state
! This variable is only used if eqstate_method = 1
! dtr0 [float]
! thermal expansion coefficient for linear equation
of state
! This variable is only used if eqstate_method = 1
! dsr0 [float]
! saline expansion coefficient for linear equation of
state
! This variable is only used if eqstate_method = 1
!-------------------------------------------------------------------------------

&eqstate
eqstate_method = 1,
T0 = 10.0,
S0 = 33.75,
p0 = 0.0,
dtr0 = -0.17,
dsr0 = 0.78,
/

!-------------------------------------------------------------------------------
! format for output and filename(s)
!-------------------------------------------------------------------------------
! out_fmt [integer]
! output format
! 1: ASCII
! 2: NetCDF
! hotin_fmt [integer]
! format for input hotstart file
! 1: ASCII
! 2: NetCDF
! 3: binary
! hotout_fmt [integer]
! format for output hotstart file
! 1: ASCII
! 2: NetCDF
! 3: binary
! in_dir [string]
! path to input directory
! out_dir [string]
! path to output directory
! save_metrics [bool]
! save additional info on grid
! save_masks [bool]
! save computational masks (az, au, av)
! save_2d [bool]
! save 2d fields
! save_meteo [bool]
! save meteo data
! save_3d [bool]
! save 3d fields
! save_vel [bool]
! save velocities
! destag [bool]
! save velocities at T-points
! save_strho [bool]
! save any of salinity, temperature, density
! save_s [bool]
! save salinity
! save_t [bool]
! save temperature
! save_rho [bool]
! save density
! save_rad [bool]
! save solar radiation in water column
! save_turb [bool]
! save any of the turbulent quantities
! save_tke [bool]
! save TKE
! save_eps [bool]
! save turbulence dissipation rate
! save_num [bool]
! save turbulent diffusivity of momentum
! save_nuh [bool]
! save turbulent diffusivity of heat
! save_ss_nn [bool]
! save shear stress and Brunt-Vaisala frequency
! save_taub [bool]
! save bottom friction velocity
! save_mix_analysis [bool]
! calculate/save mixing analysis
! first_2d [integer, minimum = 0, unit = micro time steps]
! first time step to save 2D fields
! step_2d [integer, minimum = 1, unit = micro time steps]
! interval between saves of 2D fields
! first_3d [integer, minimum = 0, unit = micro time steps]
! first time step to save 3D fields
! step_3d [integer, minimum = 1, unit = micro time steps]
! interval between saves of 3D fields
! hotout [integer array with shape (3)]
! Array to control generation of hot-start files.
The three
! array elements represent the start, stop and
stride for
! hot-start file generation, in micro time
steps. All
! values default to -1. Three special cases
exist: a)
! hotout(1) < 0 - no saving, hotout(1) = 0 -
make hot-
! start file at end of simulation, b) hotout(2)
< 0 -->
! hotout(2)='very large integer',
hotout(3)=hotout(1), c)
! hotout(2) <= hotout(1) -->
hotout(2)=hotout(1),
! hotout(3)=1
! meanout [integer]
! Make average over 'meanout' time steps. Special
cases: if
! < 0 - no averaging, if = 0 - average over
entire run.
!-------------------------------------------------------------------------------

&io_spec
out_fmt = 2,
hotin_fmt = 3,
hotout_fmt = 3,
in_dir = '.',
out_dir = '.',
save_metrics = .false.,
save_masks = .false.,
save_2d = .true.,
save_meteo = .false.,
save_3d = .true.,
save_vel = .true.,
destag = .true.,
save_strho = .false.,
save_s = .false.,
save_t = .false.,
save_rho = .false.,
save_rad = .false.,
save_turb = .true.,
save_tke = .true.,
save_eps = .true.,
save_num = .true.,
save_nuh = .true.,
save_ss_nn = .false.,
save_taub = .false.,
save_mix_analysis = .false.,
first_2d = 0,
step_2d = 100,
first_3d = 20000,
step_3d = 500,
hotout(:) = -1,,,
meanout = -1,
/

Soheila

Karsten Bolding

unread,
Apr 20, 2012, 5:10:27 AM4/20/12
to GETM-users
Hello

Please start by updating to the newest stable release of the code.

Karsten

--
http://www.getm.eu

soheila

unread,
Apr 24, 2012, 12:20:33 AM4/24/12
to GETM-users
Hi karsten

I downloaded getm v2.2 via ftp (I'm not familiar with git!) and it
compiles fine. I couldn't find the test cases for this version and I
assume the v2.0.0 test cases are Ok. I'm going to explain all I've
done and hopefully it will be solve this time.

Compiling Sylt test case had no problem, but the it doesn't run. This
is the first error I got:
./bin/getm_prod_IFORT: error while loading shared libraries:
libnetcdff.so.5: cannot open shared object file: No such file or
directory

Then I changed the path as I used to do with v2.0.0
export LD_LIBRARY_PATH=/opt/intel/composer_xe_2011_sp1.8.273/compiler/
lib/intel64:/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64:/opt/
intel/composer_xe_2011_sp1.8.273/debugger/lib/intel64:/opt/intel/
composer_xe_2011_sp1.8.273/mpirt/lib/intel64:/usr/local/lib

It initialise the run and read the forcing files and then after some
line:

steady-state Richardson-number, Ri_st= 0.250000000000000
--------------------------------------------------------

background turbulent viscosity set to 0.000000000000000E+000
background turbulent diffusivity set to 0.000000000000000E
+000
init_tridiagonal
init_output
forrtl: severe (19): invalid reference to variable in NAMELIST input,
unit 10, file /home/taeila/GETM-setups/v2.0.0/sylt/.//getm.inp, line
834, position 20
Image PC Routine Line
Source
getm_prod_IFORT 00000000005CC6CA Unknown Unknown
Unknown
getm_prod_IFORT 00000000005CB1C6 Unknown Unknown
Unknown
getm_prod_IFORT 00000000005738A0 Unknown Unknown
Unknown
getm_prod_IFORT 0000000000521F0E Unknown Unknown
Unknown
getm_prod_IFORT 000000000052144F Unknown Unknown
Unknown
getm_prod_IFORT 0000000000547A7B Unknown Unknown
Unknown
getm_prod_IFORT 000000000041271D Unknown Unknown
Unknown
getm_prod_IFORT 000000000040E976 Unknown Unknown
Unknown
getm_prod_IFORT 000000000040AD8E Unknown Unknown
Unknown
getm_prod_IFORT 000000000040A4DC Unknown Unknown
Unknown
libc.so.6 00000033A321ECDD Unknown Unknown
Unknown
getm_prod_IFORT 000000000040A3D9 Unknown Unknown
Unknown

My getm.inp is the same as previous post and that line is about
writing outputs
save_mix_analysis = .false.,
I don't think that's the real problem. The same story happens with
box_cartesian which was running fine with v2.0.0. I wonder if there is
problem between getmv2.2 and test cases v2.0.0.

Soheila
Hello
On Apr 20, 5:10 pm, Karsten Bolding <kars...@bolding-burchard.com>
wrote:

Karsten Bolding

unread,
Apr 24, 2012, 2:07:33 AM4/24/12
to GETM-users
Hello

We are having some general issues with the Sylt test case thwt we are
trying to sort out. It might actually be related to the version of Ifort
being used. More will follow when the issue is solved.

On Mon, Apr 23, 2012 at 09:20:33PM -0700, soheila wrote:
> Hi karsten
>
> I downloaded getm v2.2 via ftp (I'm not familiar with git!) and it
> compiles fine. I couldn't find the test cases for this version and I
> assume the v2.0.0 test cases are Ok. I'm going to explain all I've
> done and hopefully it will be solve this time.

I'm not sure if the ftp-download actually points to the most recent
stable release. Please have a look in the master Makefile and look for
VER - should be 2.2.0.

Are you on Windows or Linux? If the latter then git is likely installed
- if on Windows you can install tortoise-git. We might abbandon the
ftp-download as it is additional work for developers and presentlyu we
don't have anybody who have taken responsibillity of getm.eu.

>
> Compiling Sylt test case had no problem, but the it doesn't run. This
> is the first error I got:
> ./bin/getm_prod_IFORT: error while loading shared libraries:
> libnetcdff.so.5: cannot open shared object file: No such file or
> directory

This is not GETM specific and general rules are very difficult to set up
as it will depend on the OS installed (and for Linux what distribution
is used).

>
> Then I changed the path as I used to do with v2.0.0
> export LD_LIBRARY_PATH=/opt/intel/composer_xe_2011_sp1.8.273/compiler/
> lib/intel64:/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64:/opt/
> intel/composer_xe_2011_sp1.8.273/debugger/lib/intel64:/opt/intel/
> composer_xe_2011_sp1.8.273/mpirt/lib/intel64:/usr/local/lib

So you have installed NetCDF in /usr/local/lib - on some sytem that
directory will be part of the standard search path of the linker.

This is a problem as you can't be sure you can use 2 different versions
of GETM with the same namelist file - getm.inp. A properly setup system
will auto-detect this and do an on-the-fly conversion of namelist file.
In this case save_mix_analysis is not used anymore but has been renamed
to save_numerical_analyses.

Karsten

--
http://www.getm.eu

soheila

unread,
Apr 24, 2012, 3:46:08 AM4/24/12
to GETM-users
Thanks for the hint, I'm using linux and git is already there. I
updated both getm and testcases to latest version (2.2).

The box_cartesian runs fine and Sylt have the same extreme elevation
in the output.

The only reason I'm obsessed with Sylt is that I'm building simillar
tidal estuary and have the same problem there. Will be VERY happy to
find a solution for Sylt.
I'm not convinced that IFORT is the problem becasue I can run my real
case on a 32 bit machine with ifort, but it doesn't support more than
3 layers and that's why I can't do my job there.

Just for confirmation, I don't have gotmturb.inp and I don't do make
namelist (it looks unnecessary when I do it). Is make and then ./bin/
getm-prod-IFORT all I need to do?

Thanks
Soheila

On Apr 24, 2:07 pm, Karsten Bolding <kars...@bolding-burchard.com>
wrote:

Knut

unread,
Apr 24, 2012, 4:26:39 AM4/24/12
to getm-...@googlegroups.com
Dear Soheila,

> I updated both getm and testcases to latest version (2.2).
>

Where did you get the 2.2 testcases from? Didn't you mention ftp?
Anyhow, in case of using git, please be aware that the default branches
(code+setups) represent the 2.3 devel version. *Immediately after
cloning* you can do "git checkout -b stable origin/stable" to work with
the stable versions.

> I'm not convinced that IFORT is the problem becasue I can run my real
> case on a 32 bit machine with ifort, but it doesn't support more than
> 3 layers and that's why I can't do my job there.
>

Please check (again) the getm.inp for vert_cord=1 and the Makefile for
-DUV_TVD. You can also set sealevel_check=1.

> Just for confirmation, I don't have gotmturb.inp and I don't do make
> namelist (it looks unnecessary when I do it). Is make and then ./bin/
> getm-prod-IFORT all I need to do?
>

Yes. in contrast to GETM, GOTM requires gotmturb.nml.

> Thanks
> Soheila
>

You are welcome,
Knut

Richard Hofmeister

unread,
Apr 25, 2012, 4:54:06 AM4/25/12
to getm-...@googlegroups.com
Hello Soheila,

The Sylt testcase is a special case since it is the only getm-setup (on
earth) which is running after compilation with the "GETM_NO_BAROCLINIC"
and "MUDFLAT" option.

In a realistic simulation of a tidal estuary, you would use the full
physics and the regular GETM configuration, which usually runs successfully.
Please do not wait for the technical Sylt problems to be solved.

You can probabely run your own case in higher vertical resolution if you
use parallel compilation with MPI. The simluation runs then as e.g. 4
processes on your computer and is usually faster.

Richard
--
Dr. Richard Hofmeister
Helmholtz-Zentrum Geesthacht
Tel: +49-4152-872352

Helmholtz-Zentrum Geesthacht
Zentrum für Material- und Küstenforschung GmbH
Max-Planck-Straße 1 I 21502 Geesthacht I Deutschland/Germany

Geschäftsführer/Board of Management: Prof. Dr. Wolfgang Kaysser, Dipl.-Ing. Michael Ganß
Vorsitzender des Aufsichtsrates/Chairman of the Supervisory Board: MinDirig Wilfried Kraus
Amtsgericht Lübeck HRB 285 GE (Register Court)
Internet: http://www.hzg.de

Karsten Bolding

unread,
Apr 25, 2012, 5:35:43 AM4/25/12
to getm-...@googlegroups.com
Hello

On Wed, Apr 25, 2012 at 10:54:06 +0200, Richard Hofmeister wrote:
> Hello Soheila,
>
> The Sylt testcase is a special case since it is the only getm-setup
> (on earth) which is running after compilation with the
> "GETM_NO_BAROCLINIC" and "MUDFLAT" option.

And how do you know? I simply don't understand why you continue to
complain about GETM_NO_BAROCLINIC. The MUDFLAT stuf was put in long time
ago for stability reasons by Hans - and there certainly was a reason for
that. And of course the problem does NOT go away when compiled without
setting GETM_NO_BAROCLINIC to true.

>
> In a realistic simulation of a tidal estuary, you would use the full
> physics and the regular GETM configuration, which usually runs
> successfully.
> Please do not wait for the technical Sylt problems to be solved.
>

I strongly disagree with this statement - the error reported has nothing
to do with full physics or not. It is an instabillity that shows up with
newer versions of the ifort compiler (and apperantly is always there
with gfortran accoding to Knut). Debugging a new setup - and continuing
to get blow ups for reasons that we (developers) know likely originates
from a wrong compiler version is according to me a bad advice.

<snip>

>
> Richard
>

Karsten

--
http://www.getm.eu

Knut

unread,
Apr 25, 2012, 6:07:21 AM4/25/12
to getm-...@googlegroups.com

> The MUDFLAT stuf was put in long time
> ago for stability reasons by Hans - and there certainly was a reason for
> that.
Absolutely correct. In principle the MUDFLAT option should be the
default, because only this will guarantee a consistent profile shifting.
But this is another story... :-)

> It is an instabillity that shows up with
> newer versions of the ifort compiler (and apperantly is always there
> with gfortran accoding to Knut). Debugging a new setup - and continuing
> to get blow ups for reasons that we (developers) know likely originates
> from a wrong compiler version is according to me a bad advice.
>

We can even argue the other way around. Only because of using old buggy
iforts we didn't have the problem. Thus, the problem might not originate
in the compiler but in GETM itsself... and this is really bad, because
at least I have no idea what in GETM might be wrong/inconsistent/unstable.

crashes only for many layers might indicate cfl problems during vertical
advection. however, I could not solve this with vertical iteration.

I am also suspecious to floating point accuracy. but I wonder why this
can cause a blowup already after the 2nd 3D time step (as in my case
with gfortran). I do not even see checkerboards before...

Knut

Knut

unread,
Apr 25, 2012, 1:05:47 PM4/25/12
to GETM-users
Dear Soheila,

>
> The compiling goes fine with Sylt and the model runs on single
> processor without giving any error, but after 10 steps in outputs,
> NaNs start to appear in all outputs and the code keeps running writing
> NaNs.
>

please update to newest devel(!) code and test cases and try again.
When it turns out that the problem is solved, the bugfix will also be
included into the stable version.

Thanks in advance,
Knut

soheila

unread,
Apr 26, 2012, 4:05:58 AM4/26/12
to GETM-users
Hi all

I appreciate all your help/posts to fix this problem. Here is my
answer to the last 5 posts:

I started using git for downloading code and setup by this commands:
git clone git://getm.git.sourceforge.net/gitroot/getm/getm
git clone git://getm.git.sourceforge.net/gitroot/getm/getm-setups

git checkout -b stable origin/stable didn't work. I didn't do git
init or other things to initiate a git project and that might be the
reason.

I check the setting to be vert_cord=1, ryntype=1,-DUV_TVD and
sealevel_check=1. The sealevel_check is a helpful one.

I tried marking "GETM_NO_BAROCLINIC" and removing "MUDFLAT" option
once (although I don't understand what they mean), and there was no
change.

Thanks for advice about parallel run on the 32 bit computer to fasten
the process. I should mention that I just tried a fairly old computer
to see if my getm runs elsewhere and to my surprise it did! My own
estuary model runs there too, but it's not my computer and I can't
force people to give me their computer just because my model runs
there!

Unfortunately the developer version 2.3 (code and setup) does not work
either. Here is the error:

2000-01-01 01:44:20: saving 2D ....
WARNING: NaN occuring in elevations at call no. 1443
: Number of NaN values: 79
: NaNs include i j = 27 1

FATAL GETM ERROR: Called from catch_nan_2d()
FATAL GETM ERROR: NaN values encountered in elevations

I don't know much of the compatibility between code and compiler. If
there is any other compiler (free of course) for linux 64 bit,
compatible with getm, I'm be happy to move on to that safe compiler.

Thanks again for all your help.
Soheila

Knut

unread,
Apr 26, 2012, 4:17:36 AM4/26/12
to getm-...@googlegroups.com
Dear Soheila,
> I started using git for downloading code and setup by this commands:
> git clone git://getm.git.sourceforge.net/gitroot/getm/getm
> git clone git://getm.git.sourceforge.net/gitroot/getm/getm-setups
>
> git checkout -b stable origin/stable didn't work. I didn't do git
> init or other things to initiate a git project and that might be the
> reason.
>

You do not need to do "git init" because you already cloned a repo. Did
you called the checkout within the getm directory? Anyhow, for now you
can stay with the devel version (the master branches).
> I check the setting to be vert_cord=1, ryntype=1,-DUV_TVD and
> sealevel_check=1. The sealevel_check is a helpful one.
>
> I tried marking "GETM_NO_BAROCLINIC" and removing "MUDFLAT" option
> once (although I don't understand what they mean), and there was no
> change.
>
> Unfortunately the developer version 2.3 (code and setup) does not work
> either. Here is the error:
>
> 2000-01-01 01:44:20: saving 2D ....
> WARNING: NaN occuring in elevations at call no. 1443
> : Number of NaN values: 79
> : NaNs include i j = 27 1
>
> FATAL GETM ERROR: Called from catch_nan_2d()
> FATAL GETM ERROR: NaN values encountered in elevations
>

This crash was with the official sylt, or did you change anything?
> I don't know much of the compatibility between code and compiler. If
> there is any other compiler (free of course) for linux 64 bit,
> compatible with getm, I'm be happy to move on to that safe compiler.
>

gfortran?

Knut

soheila

unread,
Apr 27, 2012, 6:09:57 AM4/27/12
to GETM-users
Dear Knut

"git checkout -b stable origin/stable" works fine when I am in the
getm folder. Thanks for your answer.

I started compiling things with gfortran. I did the netcdf and now
gotm. Not sure why it says output file name specified twice.

mkdir -p /home/taeila/GOTM/gotm-4.0.0/modules/GFORTRAN /home/taeila/
GOTM/gotm-4.0.0/lib/GFORTRAN
make -C util
make[1]: Entering directory `/home/taeila/GOTM/gotm-4.0.0-IFORT/src/
util'
gfortran -DGFORTRAN -DNETCDF_FMT -DSEAGRASS -DBIO -DPRODUCTION -
DFORTRAN95 -DREAL_4B=real\(4\) -O3 -M /home/taeila/GOTM/gotm-4.0.0/
modules/GFORTRAN -I/usr/local/include -I/home/taeila/GOTM/gotm-4.0.0/
include -I/home/taeila/GOTM/gotm-4.0.0/modules/GFORTRAN -ffree-form -
Wall -std=f95 -pedantic -c util.F90 -o util.o
Fatal Error: output filename specified twice
make[1]: *** [util.o] Error 1
make[1]: Leaving directory `/home/taeila/GOTM/gotm-4.0.0-IFORT/src/
util'
make: *** [util] Error 2

I tried doing it in root and in user, make distclean and make again.
Didn't help. Does it mean any specific problem?

Soheila

Knut

unread,
Apr 27, 2012, 6:33:11 AM4/27/12
to getm-...@googlegroups.com
Dear Soheila,

> I started compiling things with gfortran. I did the netcdf and now
> gotm. Not sure why it says output file name specified twice.
>
> mkdir -p /home/taeila/GOTM/gotm-4.0.0/modules/GFORTRAN /home/taeila/
> GOTM/gotm-4.0.0/lib/GFORTRAN
> make -C util
> make[1]: Entering directory `/home/taeila/GOTM/gotm-4.0.0-IFORT/src/
> util'
> gfortran -DGFORTRAN -DNETCDF_FMT -DSEAGRASS -DBIO -DPRODUCTION -
> DFORTRAN95 -DREAL_4B=real\(4\) -O3 -M /home/taeila/GOTM/gotm-4.0.0/
> modules/GFORTRAN -I/usr/local/include -I/home/taeila/GOTM/gotm-4.0.0/
> include -I/home/taeila/GOTM/gotm-4.0.0/modules/GFORTRAN -ffree-form -
> Wall -std=f95 -pedantic -c util.F90 -o util.o
> Fatal Error: output filename specified twice
> make[1]: *** [util.o] Error 1
> make[1]: Leaving directory `/home/taeila/GOTM/gotm-4.0.0-IFORT/src/
> util'
> make: *** [util] Error 2
>
>
Don't know. There seems to be a mismatch between your working directory
(/home/taeila/GOTM/gotm-4.0.0-IFORT) and your GOTMDIR
(/home/taeila/GOTM/gotm-4.0.0). Might this cause the error?

You can also try with the devel version available via:
git clone git://gotm.git.sourceforge.net/gitroot/gotm/gotm gotm-git


Although not related to your problem above, it seems you did not specify
the NETCDF variables? For me these works:

export NETCDFINC=/usr/include
export NETCDFLIBDIR=/usr/lib
export NETCDFLIBNAME="-lnetcdf -lnetcdff"


Regards,
Knut

Karsten Bolding

unread,
Apr 27, 2012, 8:36:50 AM4/27/12
to GETM-users
Hello

On Fri, Apr 27, 2012 at 03:09:57 -0700, soheila wrote:
> Dear Knut
>
> "git checkout -b stable origin/stable" works fine when I am in the
> getm folder. Thanks for your answer.

what do you define as the getm folder?

>
> I started compiling things with gfortran. I did the netcdf and now
> gotm. Not sure why it says output file name specified twice.

we have had that long time ago - don't remember the fix right now.

>
> mkdir -p /home/taeila/GOTM/gotm-4.0.0/modules/GFORTRAN /home/taeila/
> GOTM/gotm-4.0.0/lib/GFORTRAN
> make -C util
> make[1]: Entering directory `/home/taeila/GOTM/gotm-4.0.0-IFORT/src/
> util'
> gfortran -DGFORTRAN -DNETCDF_FMT -DSEAGRASS -DBIO -DPRODUCTION -
> DFORTRAN95 -DREAL_4B=real\(4\) -O3 -M /home/taeila/GOTM/gotm-4.0.0/
> modules/GFORTRAN -I/usr/local/include -I/home/taeila/GOTM/gotm-4.0.0/
> include -I/home/taeila/GOTM/gotm-4.0.0/modules/GFORTRAN -ffree-form -
> Wall -std=f95 -pedantic -c util.F90 -o util.o
> Fatal Error: output filename specified twice
> make[1]: *** [util.o] Error 1
> make[1]: Leaving directory `/home/taeila/GOTM/gotm-4.0.0-IFORT/src/
> util'
> make: *** [util] Error 2

I'll suggest you use the standard directory layout as helping becomes
easier. If not you need to set/unset environment variables.

>
> I tried doing it in root and in user, make distclean and make again.
> Didn't help. Does it mean any specific problem?

never work as root :-)

>
> Soheila

Karsten

--
http://www.getm.eu

Karsten Bolding

unread,
Apr 27, 2012, 8:40:50 AM4/27/12
to getm-...@googlegroups.com
On Fri, Apr 27, 2012 at 12:33:11 +0200, Knut wrote:
> Dear Soheila,

<snip>

>
> You can also try with the devel version available via:
> git clone git://gotm.git.sourceforge.net/gitroot/gotm/gotm gotm-git

This is the users list and I'll suggest not to suggest using devel
versions on this list - especially because we have broken things in the
devel code right now.
>
>
> Although not related to your problem above, it seems you did not
> specify the NETCDF variables? For me these works:

If you are using NetCDF4 you only need to have nf-config in your path
and no further settings are necessary. The settings below does only make
sense for NetCDF version 4 - they might work for NetCDF - but for the
wrong reasons :-)
>
> export NETCDFINC=/usr/include
> export NETCDFLIBDIR=/usr/lib
> export NETCDFLIBNAME="-lnetcdf -lnetcdff"
>
>
> Regards,
> Knut
>

Karsten

--
http://www.getm.eu

soheila

unread,
May 4, 2012, 3:26:11 AM5/4/12
to GETM-users
Hi

I'm back to the subject and want to thank and give a quick update:

- I was in wrong directory for compiling gotm, moving to the right
directory didn't help. The problem was fixed when I downloaded gotm
again using git as it was mentioned in the gotm forum.

- Not sure if I have netcdf problem, but I have no nf-confing file to
put in path or command like that. The nc-config is working and there
is a file with that name.

- The only environment variable I had for netcdf was 'export
NETCDFLIBNAME=-lnetcdff'. Looks like I needed that with IFORT, not
very sure and it is not really the problem now.

- This is the error I get for compiling getm with gfortran:

Fatal Error: Can't open module file 'netcdf.mod' for reading at (1):
No such file or directory
make[1]: *** [exceptions.o] Error 1
rm getm_timers.o
make[1]: Leaving directory `/home/taeila/GETM/v2.2/src/futils'

I have the netcdf.mod in /usr/local/include and it is in my path. Not
sure what can be the problem. Any advice?

Regards
Soheila


On Apr 27, 8:40 pm, Karsten Bolding <kars...@bolding-burchard.com>
wrote:

Knut

unread,
May 4, 2012, 3:56:00 AM5/4/12
to getm-...@googlegroups.com
Dear Soheila,


> - Not sure if I have netcdf problem, but I have no nf-confing file to
> put in path or command like that. The nc-config is working and there
> is a file with that name.
>
> - The only environment variable I had for netcdf was 'export
> NETCDFLIBNAME=-lnetcdff'. Looks like I needed that with IFORT, not
> very sure and it is not really the problem now.
>
> - This is the error I get for compiling getm with gfortran:
>
> Fatal Error: Can't open module file 'netcdf.mod' for reading at (1):
> No such file or directory
> make[1]: *** [exceptions.o] Error 1
> rm getm_timers.o
> make[1]: Leaving directory `/home/taeila/GETM/v2.2/src/futils'
>
> I have the netcdf.mod in /usr/local/include and it is in my path. Not
> sure what can be the problem. Any advice?
>

GETM/GOTM needs to know where the netcdf libraries and headers are.
In case you exported NETCDF_VERSION=NETCDF4 GETM/GOTM will use
nf-config, otherwise you have to provide the information with the 3
exports NETCDFINC,NETCDFLIBDIR and for newer netcdf also
NETCDFLIBDIR="-lnetcdf -lnetcdff".

Since you do not have nf-config I would go for the 2nd way. But you can
also try "ln -s /usr/bin/nc-config ~/bin/nf-config".
> Regards
> Soheila
>
>
>
Regards,
Knut

soheila

unread,
May 7, 2012, 4:22:27 AM5/7/12
to GETM-users
Hi Knut

Setting netcdf environments as bellow fixed the problem!

export NETCDFINC=/usr/local/include
export NETCDFLIBDIR=/usr/local/lib
export NETCDFLIBNAME="-lnetcdf -lnetcdff"

However, export NETCDF_VERSION=NETCDF4 caused problem in compiling and
I ended up not using it. My netcdf version is 4.1.3 and I don't have
nf-config if it clarifies anything.

Anyway, gotm, getm and sylt test cas was compiled. 2D simulation (run
type 1) was fine, run type 2 generated an extreme velocity after 10 hr
(5 m/s and crashed) and fully 3D didn't start running with this error
message:

[taeila@localhost sylt]$ ./bin/getm_prod_GFORTRAN
FATAL ERROR: getm not compiled for baroclinic runs

I do compile the setup after editing inp file, my getm is 2.2.1 stable
and the setup is 2.2 stable. I wonder what might be the problem with
getm.

Regards
Soheila

Knut

unread,
May 7, 2012, 5:21:23 AM5/7/12
to getm-...@googlegroups.com
Dear Soheila,

> Setting netcdf environments as bellow fixed the problem!
>
> export NETCDFINC=/usr/local/include
> export NETCDFLIBDIR=/usr/local/lib
> export NETCDFLIBNAME="-lnetcdf -lnetcdff"
>

good.
> However, export NETCDF_VERSION=NETCDF4 caused problem in compiling and
> I ended up not using it. My netcdf version is 4.1.3 and I don't have
> nf-config if it clarifies anything.
>
Therefore I suggested to link nc-config as nf-config by:
"ln -s /usr/bin/nc-config ~/bin/nf-config". Anyhow, your settings above
do work now. For the future please start a new discussion for a subject
(in this case netcdf config) not directly related to the original
subject of the discussion (sylt test case).
> Anyway, gotm, getm and sylt test cas was compiled. 2D simulation (run
> type 1) was fine, run type 2 generated an extreme velocity after 10 hr
> (5 m/s and crashed) and fully 3D didn't start running with this error
> message:
>
> [taeila@localhost sylt]$ ./bin/getm_prod_GFORTRAN
> FATAL ERROR: getm not compiled for baroclinic runs
>

The sylt test case is compiled with "export GETM_NO_BAROCLINIC=true"
(see Makefile) and this tells GETM to compile the code only for
runtype=1 or 2. For baroclinic runtypes (3,4) you need temperature
and/salinity information, but these are not provided with the official
sylt test case.

> I do compile the setup after editing inp file, my getm is 2.2.1 stable
> and the setup is 2.2 stable. I wonder what might be the problem with
> getm.
>

A few days ago I fixed a bug in the code that seemed to be the reason
for the runtype=2 crash (at least for gfortran). Until now I committed
only to the devel version. A corresponding fix of the stable version
will be done later. So for now, please checkout the devel version of GETM:

cd $GETMDIR
git checkout master
git pull

Please report back.

Regards,
Knut

soheila

unread,
May 7, 2012, 9:48:38 PM5/7/12
to GETM-users
Hi

devel version2.3 works fine with runtype=2. Thanks for all the support
to get my getm up and running!

Now I need to move to 3D for my real case and I guess I need to make a
bdy_3d.nc file (I wish there was an example somewhere) and remove
"export GETM_NO_BAROCLINIC=true" from the make file. Please let me
know if there are other things to be set for a 3D case which is going
to be built based on this test case.

Regards
Soheila

Knut

unread,
May 8, 2012, 6:11:16 AM5/8/12
to getm-...@googlegroups.com
Dear Soheila,

> devel version2.3 works fine with runtype=2.
Good that you confirmed this. I now committed the bugfix also to the
stable version. Would you please try out as well?

cd $GETMDIR
git checkout stable
git pull


Thanks in advance,
Knut

soheila

unread,
May 8, 2012, 11:03:00 PM5/8/12
to GETM-users
Dear Knut

The stable version 2.2.2 works fine too.

Soheila
Reply all
Reply to author
Forward
0 new messages