[MITgcm-support] Reading errors

Martin Losch Martin.Losch at awi.de
Thu Aug 22 07:10:55 EDT 2019


Hi Estanis,

thanks for the details. This is what I would do:

- At the compile level use a standard build options file, with an intel compiler on a linux system I would start with MITgcm/tools/build_options/linux_amd64_ifort, or linux_ia64_ifort (depending on the output of uname -a, in fact, genmake2 is probably able to pick the correct file if you don’t specify it), and since your domain is small I would first try without MPI, ie. like this:

${somepath}/tools/genmake2 -of ${somepath}/tools/build_options/linux_amd64_ifort -mods ../code
make CLEAN && make depend && make

- With this non-MPI configuration I would try to run the model. First with useOBCS=.FALSE. (just a few timesteps), and then with .TRUE.

- once this works, you can recompile with MPI (if you really need it), like this:

${somepath}/tools/genmake2 -of ${somepath}/tools/build_options/linux_amd64_ifort -mods ../code -mpi
make CLEAN && make depend && make
(note that the extra flag “-mpi" is enough)

and check if you get the same. For further help, you should record the potential error messages after each step.

Martin

PS. Some comments about your namelist below:

> On 22. Aug 2019, at 12:39, Estanislao Gavilan Pascual-Ahuir <dramauh at hotmail.com> wrote:
> 
> Hi Martin ,
> 
> Before anything thank you so much for your help. I will try to answer all you questions.
> 
> what is the platform, the compiler?
> The platform in linux 2.6.32-431.TH.x86_64 GNU/Linux. Red Hat Enterprise Linux Server release 6.5. I am using intel compilers wrapped them in mpi. The version of the compiler is  14.0.2
> details of the configuration (content of code-directory and namelist files)
> I am running a simple simulation with open boundaries. I load the packages gfd, obcs, mnc and diagnostics  using the packages.config.  The frequency of the open boundaries is stated in the data file. This is the data file
>  Model parameters
> # Continuous equation parameters
>  &PARM01
>  tRef=23.,23.,
>  sRef=35.,35.,
>  selectCoriMap=4,
>  viscAh=4.E2,
with your grid choice (sphericalPolarGrid), the coriolis parameter is computed and these values are not used.
>  f0=1.E-4,
>  beta=1.E-11,
>  rhoNil=1000.,
>  gBaro=9.81,
>  rigidLid=.FALSE.,
>  implicitFreeSurface=.TRUE.,
> # momAdvection=.FALSE.,
>  tempStepping=.FALSE.,
>  saltStepping=.FALSE.,
>  &
> 
> # Elliptic solver parameters
>  &PARM02
>  cg2dTargetResidual=1.E-7,
>  cg2dMaxIters=1000,
>  &
> 
> # Time stepping parameters
>  &PARM03
>  nIter0=0,
>  nTimeSteps=100,
>  deltaT=1200.0,
>  pChkptFreq=31104000.0,
>  chkptFreq=15552000.0,
>  dumpFreq=15552000.0,
# this will give you monitor output every timestep (which is what you want while debugging), later I would set it to something like 20-50 * deltaT
>  monitorFreq=1200.,
>  monitorSelect=2,
>  periodicExternalForcing=.TRUE.,
# this means that you will read data each time step. Is that what you want?
>  externForcingPeriod= 1200.,
# with your choice of externForcingPeriod, this requires that you have 1000. records in the file(s)
>  externForcingCycle = 12000000.,
>  &
> # Gridding parameters
>  &PARM04
>  usingSphericalPolarGrid=.TRUE.,
# alternatively you can say dxSpacing = 1., dySpacing = 1.,
>  delX=43*1.,
>  delY=43*1.,
>  xgOrigin=-21.,
>  ygOrigin=-21.,
>  delR=2*500.,
>  &
> 
> # Input datasets
>  &PARM05
>  bathyFile='bathy_cir.bin'
>  meridWindFile=,
>  &
> 
> This is the data.obcs
> 
> # Open-boundaries
>  &OBCS_PARM01
>  OBCSfixTopo=.FALSE.,
# if I understand the configuration correctly, you have a zonally reentrant channel with wall in the north and the south (python notation: bathy[0+2,:] = 0, and bathy[ny-1,:] = 0, except where you have the open boundaries)? you could actually save two grid rows (have 40 instead of 43 point in j-direction and set bathy[0,:]=0, bathy[ny,:]=0)
>  OB_Ieast=0,
>  OB_Iwest=0,
>  OB_Jnorth(16:28)=13*41,
>  OB_Jsouth(16:28)=13*3,
>  useOBCSprescribe = .TRUE.,
These files should be found, if they are in the same directory where you run your model. They should each contain (according to you dimensions and time parameters) for 100 timesteps 100 fields of dimension (nx,nz). For anything above 1000 timesteps, they should have 1000 fields (because after the 1000ths record, the model starts from the beginning again, according to you externForcingCycle)
>  OBNvFile = 'OBzonalV.bin',
>  OBSvFile = 'OBzonalV.bin',
>  OBNuFile = 'OBmeridU.bin',
>  OBSuFile = 'OBmeridU.bin’,
# same as before this will give you a lot of output. You may want to comment out this line, becasue OBCS_monitorFreq = monitorFreq by default
>  OBCS_monitorFreq=1200.00,
>  OBCS_monSelect = 1,
>  &
> 
>  &OBCS_PARM02
>  &
> are you using latest code (some of the flags in the build-option look very outdated ?)?
> Yes, it is the latest code (version MITgcm_c67k). About the flags in my build version, I did not make my own one. I used one that I found in our research group.
> 
> Kind regards,
> 
> Estanislao
> 



More information about the MITgcm-support mailing list