[MITgcm-support] Run-time errors on Archer

David Ferreira dfer at mit.edu
Fri Mar 7 11:12:41 EST 2014


Hi,
Just in case it helps with your problem (and in response to a previous 
e-mail asking about Archer): in attachment is an optfile for Archer with 
gfortran.
(module swap PrgEnv-cray PrgEnv-gnu required to compile/run).
I have run testreports successfully with it (with/without optimization, 
with/without MPI, netcdf, restart tests too).
So it *seems* to work fine, but no warranty. Further testing would be 
useful.

I tried to do make an optfile with the cray compiler suite and intel 
too, but it didn't work (some experiments broke with optimization, 
restart failed, ...). It was probably me doing something wrong but for 
some reason gfortran worked straight away.

cheers,
david

PS: the comments in the optfile are irrelevant


On 3/7/14 1:16 PM, Dan Jones wrote:
> Correction:
>
> The snippet of source code listed above actually comes from yet 
> *another* error produced if the obcs package is included in packages.conf:
>
> forrtl: error (63): output conversion error, unit -5, file Internal Formatted Write
> Image              PC                Routine            Line        Source
> mitgcmuv           000000000302A3EA  Unknown               Unknown  Unknown
>
> mitgcmuv           00000000023B5F85  print_list_i_            3331  print.f
> mitgcmuv           0000000001A302E7  obcs_readparms_          2425  obcs_readparms.f
> mitgcmuv           000000000297EBF0  packages_readparm        1907  packages_readparms.f
>
> mitgcmuv           0000000002932168  initialise_fixed_        1874  initialise_fixed.f
> mitgcmuv           0000000002B03175  the_model_main_          3052  the_model_main.f
> mitgcmuv           00000000023A38F1  MAIN__                   4407  main.f
>
> mitgcmuv           0000000000400F06  Unknown               Unknown  Unknown
> mitgcmuv           00000000030A8124  Unknown               Unknown  Unknown
> mitgcmuv           0000000000400DD1  Unknown               Unknown  Unknown
>
>
>        IF ( debugLevel.GE.debLevA ) THEN
>          CALL PRINT_LIST_I( OB_Jnorth, 1, OBNS_Nx, INDEX_I,
>      &                    .FALSE., .TRUE., standardMessageUnit )
> It does *not* come from ini_depths, but from obcs_readparms. Sorry 
> about that.
>
> Dan
>
>
> On Fri, Mar 7, 2014 at 1:12 PM, Dan Jones <dcjones.work at gmail.com 
> <mailto:dcjones.work at gmail.com>> wrote:
>
>     Greetings:
>
>     I am having trouble getting MITgcm to run on Archer.  I am using
>     the Intel compiler (14.0.1.106) with the following defines/flags
>     in the build options file:
>
>     DEFINES='-DALLOW_USE_MPI -DALWAYS_USE_MPI -D_BYTESWAPIO
>     -DWORDLENGTH=4 -DHAVE_FLUSH'
>     LIBS='-L${CRAY_MPICH2_DIR}/lib -L${HDF5_DIR}/lib -L$NETCDF_DIR/lib
>     -lnetcdf -lnetcdff  -lhdf5 -lhdf5_hl'
>     INCLUDES='-I${CRAY_MPICH2_DIR}/include -I${HDF5_DIR}/include
>     -I${NETCDF_DIR}/include -I${HDF5_INCLUDE_OPTS}'
>     FFLAGS='-h byteswapio -assume byterecl -convert big_endian
>     -heap-arrays -O2 -g -traceback'
>
>     The code compiles with no errors, but it does not run.  The code
>     crashes with the error:
>
>     ABNORMAL END: S/R INI_THETA
>
>     with no other information.  The initial theta file is fine and has
>     been used successfully in other MITgcm model setups.  When I turn
>     on the debugger (i.e. set debugMode=.TRUE. in input/eedata and set
>     the debugLevel=4 in input/data), I get a *different* error that
>     appears to occur in an *earlier* part of the code.  The code
>     crashes as it tries to read in the bathymetry file:
>
>     forrtl: error (63): output conversion error, unit -5, file Internal Formatted Write
>
>
>     Image PC                Routine Line        Source
>     mitgcmuv    00000000023CCCBC print_maprs_         4981  print.f
>     mitgcmuv    000000000297FD81 plot_field_xyrs_       1841 plot_field.f
>     mitgcmuv    000000000276CDC2 ini_depths_           3271 ini_depths.f
>     mitgcmuv    0000000002932628 initialise_fixed_      1908
>     initialise_fixed.f
>     mitgcmuv    0000000002B03175 the_model_main       3052
>     the_model_main.f
>     mitgcmuv    00000000023A38F1 MAIN__           4407  main.f
>
>     Again, the bathymetry file is fine and has been used successfully
>     before.  The problem indicated above in ini_depths.f happens in
>     this function:
>
>              CALL PRINT_LIST_I( OB_Jnorth, 1, OBNS_Nx, INDEX_I,
>          &                    .FALSE., .TRUE., standardMessageUnit )
>
>     I can suppress the output conversion error by re-compiling with a
>     -check nooutput_conversion flag, but the code quickly produces a
>     segmentation fault at about the same place (ini_depths.f and the
>     functions that call it):
>
>     forrtl: severe (194): SIGSEGV, segmentation fault occurred
>
>     mitgcmuv           00000000006FFAE7  print_maprs_             4982  print.f
>     mitgcmuv           00000000007950D3  plot_field_xyrs_         1841  plot_field.f
>
>
>     mitgcmuv           0000000000760811  ini_depths_              3271  ini_depths.f
>     mitgcmuv           000000000078699A  initialise_fixed_        1908  initialise_fixed.f
>     mitgcmuv           00000000007AFA93  the_model_main_          3052  the_model_main.f
>
>
>     mitgcmuv           00000000006F5C41  MAIN__                   4407  main.f
>
>     The fact that turning on the debugger produces an error *earlier*
>     in the code is the most interesting/distressing bit here.  Is this
>     an I/O issue?  Has anyone else run into something like this?  I
>     have contacted the Archer support team, but I thought it would be
>     worth asking around here as well.
>
>     Many thanks,
>     Dan
>
>     -- 
>     *************************************************
>
>     Dr Dan Jones
>     Open Oceans Group
>     British Antarctic Survey
>     Cambridge, UK
>
>     Phone: +44 (0)1223 221505 <tel:%2B44%20%280%291223%20221505>
>     Fax: +44 (0)1223 362616 <tel:%2B44%20%280%291223%20362616>
>
>     *************************************************
>
>
>
>
> -- 
> *************************************************
>
> Dr Dan Jones
> Open Oceans Group
> British Antarctic Survey
> Cambridge, UK
>
> Phone: +44 (0)1223 221505
> Fax: +44 (0)1223 362616
>
> *************************************************
>
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mitgcm.org/pipermail/mitgcm-support/attachments/20140307/5a99e780/attachment-0001.htm>
-------------- next part --------------
#!/bin/bash

#  $Header: /u/gcmpack/MITgcm/tools/build_options/linux_amd64_gfortran,v 1.23 2013/11/27 22:07:11 jmc Exp $
#  $Name:  $

# 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
#
#-------
# run with OpenMP: needs to set environment var. OMP_NUM_THREADS
#    and generally, needs to increase the thread stack-size:
#   -  sh,bash:
#     > export OMP_NUM_THREADS=2
#     > export GOMP_STACKSIZE=400m
#   - csh,tcsh:
#     > setenv OMP_NUM_THREADS 2
#     > setenv GOMP_STACKSIZE 400m
#-------

CC=cc
FC=ftn
F90C=ftn

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'
#- 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"

INCLUDES='-I/opt/cray/mpt/6.1.1/gni/mpich2-gnu/48/include'
LIBS='-L/opt/cray/mpt/6.1.1/gni/mpich2-gnu/48/lib'

if test "x$IEEE" = x ; then     #- with optimisation:
   #- can use -O2 (safe optimisation) to avoid Pb with some gcc version of -O3:
    FOPTIM='-O3 -funroll-loops'
    NOOPTFILES="$NOOPTFILES ini_masks_etc.F"
else
   # these may also be useful, but require specific gfortran versions:
   # -Wno-tabs            for gfortran >= 4.3
   #FFLAGS="$FFLAGS -Waliasing -Wampersand -Wsurprising -Wline-truncation"
   #- or simply:
    FFLAGS="$FFLAGS -Wall -Wno-unused-dummy-argument"
   #- 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 -ffpe-trap=invalid,zero,overflow -finit-real=inf'
  fi
fi

F90FLAGS=$FFLAGS
F90OPTIM=$FOPTIM


More information about the MITgcm-support mailing list