[MITgcm-support] segmentation fault

Martin Losch Martin.Losch at awi.de
Tue May 29 05:25:54 EDT 2018


Andreas,

the -devel option just switches a set of compile options (checkout your build options file linux_amd64_ifort). You need to inspect genmake.log to figure out why the netcdf and FLUSH tests fails. I assume that the libaries are then no longer compatible with the compiled code and the problem occurs at the linking step. I don’t think your original problem has anything to do with this.

-devel turns on the ifort "-check all” option, that includes array bound checks. I think for ifort it’s “-check bounds”  (see man ifort) to only check bounds.

Martin

> On 28. May 2018, at 21:23, Menemenlis, Dimitris (329C) <Dimitris.Menemenlis at jpl.nasa.gov> wrote:
> 
> Sorry, I never use netcdf with MITgcm.
> 
> Did you try Patrick’s suggestions?
> 
> Dimitris Menemenlis
> 818-625-6498
> 
> On May 27, 2018, at 7:04 PM, Andreas Klocker <andreas.klocker at utas.edu.au> wrote:
> 
>> Dimitris,
>> 
>> Do you know why I get so many more issues, such as netcdf not working, if I use '-devel' with genmake 2? Could any of those cause a segmentation fault?
>> cheers,
>> 
>> Andreas
>>> 
>>> 
>>> without '-devel'
>>> bash-4.1$ ../../../tools/genmake2 -mods=../code -rootdir=../../../ -mpi -of ../../../tools/build_options/linux_amd64_ifort
>>> 
>>> GENMAKE :
>>> 
>>> A program for GENerating MAKEfiles for the MITgcm project.
>>>    For a quick list of options, use "genmake2 -h"
>>> or for more detail see the Developer's HOWTO manual at:
>>>    http://mitgcm.org/public/docs.html
>>> 
>>> ===  Processing options files and arguments  ===
>>>   getting local config information:  none found
>>>   getting OPTFILE information:
>>>     using OPTFILE="../../../tools/build_options/linux_amd64_ifort"
>>>   getting AD_OPTFILE information:
>>>     using AD_OPTFILE="../../..//tools/adjoint_options/adjoint_default"
>>>   check makedepend (local: 0, system: 0, 0)
>>>   Turning on MPI cpp macros
>>> 
>>> ===  Checking system libraries  ===
>>>   Do we have the system() command using mpif77...  yes
>>>   Do we have the fdate() command using mpif77...  yes
>>>   Do we have the etime() command using mpif77...  yes
>>>   Can we call simple C routines (here, "cloc()") using mpif77...  yes
>>>   Can we unlimit the stack size using mpif77...  yes
>>>   Can we register a signal handler using mpif77...  yes
>>>   Can we use stat() through C calls...  yes
>>>   Can we create NetCDF-enabled binaries...  yes
>>>   Can we create LAPACK-enabled binaries...  no
>>>   Can we call FLUSH intrinsic subroutine...  yes
>>> 
>>> ===  Setting defaults  ===
>>>   Adding MODS directories: ../code 
>>>   Making source files in eesupp from templates
>>>   Making source files in pkg/exch2 from templates
>>>   Making source files in pkg/regrid from templates
>>> 
>>> ===  Determining package settings  ===
>>>   getting package dependency info from  ../../..//pkg/pkg_depend
>>>   getting package groups info from      ../../..//pkg/pkg_groups
>>>   checking list of packages to compile:
>>>     using PKG_LIST="../code/packages.conf"
>>>     before group expansion packages are: gfd diagnostics timeave obcs kpp
>>>     replacing "gfd" with:  mom_common mom_fluxform mom_vecinv generic_advdiff debug mdsio rw monitor
>>>     after group expansion packages are:  mom_common mom_fluxform mom_vecinv generic_advdiff debug mdsio rw monitor diagnostics timeave obcs kpp
>>>   applying DISABLE settings
>>>   applying ENABLE settings
>>>     packages are:  debug diagnostics generic_advdiff kpp mdsio mom_common mom_fluxform mom_vecinv monitor obcs rw timeave
>>>   applying package dependency rules
>>>     packages are:  debug diagnostics generic_advdiff kpp mdsio mom_common mom_fluxform mom_vecinv monitor obcs rw timeave
>>>   Adding STANDARDDIRS='eesupp model'
>>>   Searching for *OPTIONS.h files in order to warn about the presence
>>>     of "#define "-type statements that are no longer allowed:
>>>     found CPP_OPTIONS="./CPP_OPTIONS.h"
>>>     found CPP_EEOPTIONS="./CPP_EEOPTIONS.h"
>>>   Creating the list of files for the adjoint compiler.
>>> 
>>> ===  Creating the Makefile  ===
>>>   setting INCLUDES
>>>   Determining the list of source and include files
>>>   Writing makefile: Makefile
>>>   Add the source list for AD code generation
>>>   Making list of "exceptions" that need ".p" files
>>>   Making list of NOOPTFILES
>>>   Add rules for links
>>>   Adding makedepend marker
>>> 
>>> ===  Done  ===
>>> 
>>> with "-devel"
>>> bash-4.1$ ../../../tools/genmake2 -devel -mods=../code -rootdir=../../../ -mpi -of ../../../tools/build_options/linux_amd64_ifort
>>> 
>>> GENMAKE :
>>> 
>>> A program for GENerating MAKEfiles for the MITgcm project.
>>>    For a quick list of options, use "genmake2 -h"
>>> or for more detail see the Developer's HOWTO manual at:
>>>    http://mitgcm.org/public/docs.html
>>> 
>>> ===  Processing options files and arguments  ===
>>>   getting local config information:  none found
>>>   getting OPTFILE information:
>>>     using OPTFILE="../../../tools/build_options/linux_amd64_ifort"
>>>   getting AD_OPTFILE information:
>>>     using AD_OPTFILE="../../..//tools/adjoint_options/adjoint_default"
>>>   check makedepend (local: 0, system: 0, 0)
>>>   Turning on MPI cpp macros
>>> 
>>> ===  Checking system libraries  ===
>>>   Do we have the system() command using mpif77...  yes
>>>   Do we have the fdate() command using mpif77...  yes
>>>   Do we have the etime() command using mpif77...  yes
>>>   Can we call simple C routines (here, "cloc()") using mpif77...  yes
>>>   Can we unlimit the stack size using mpif77...  yes
>>>   Can we register a signal handler using mpif77...  yes
>>>   Can we use stat() through C calls...  yes
>>>   Can we create NetCDF-enabled binaries...  no
>>>   Can we create LAPACK-enabled binaries...  no
>>>   Can we call FLUSH intrinsic subroutine...  no
>>> 
>>> ===  Setting defaults  ===
>>>   Adding MODS directories: ../code 
>>>   Making source files in eesupp from templates
>>>   Making source files in pkg/exch2 from templates
>>>   Making source files in pkg/regrid from templates
>>> 
>>> ===  Determining package settings  ===
>>>   getting package dependency info from  ../../..//pkg/pkg_depend
>>>   getting package groups info from      ../../..//pkg/pkg_groups
>>>   checking list of packages to compile:
>>>     using PKG_LIST="../code/packages.conf"
>>>     before group expansion packages are: gfd diagnostics timeave obcs kpp
>>>     replacing "gfd" with:  mom_common mom_fluxform mom_vecinv generic_advdiff debug mdsio rw monitor
>>>     after group expansion packages are:  mom_common mom_fluxform mom_vecinv generic_advdiff debug mdsio rw monitor diagnostics timeave obcs kpp
>>>   applying DISABLE settings
>>>   applying ENABLE settings
>>>     packages are:  debug diagnostics generic_advdiff kpp mdsio mom_common mom_fluxform mom_vecinv monitor obcs rw timeave
>>>   applying package dependency rules
>>>     packages are:  debug diagnostics generic_advdiff kpp mdsio mom_common mom_fluxform mom_vecinv monitor obcs rw timeave
>>>   Adding STANDARDDIRS='eesupp model'
>>>   Searching for *OPTIONS.h files in order to warn about the presence
>>>     of "#define "-type statements that are no longer allowed:
>>>     found CPP_OPTIONS="./CPP_OPTIONS.h"
>>>     found CPP_EEOPTIONS="./CPP_EEOPTIONS.h"
>>>   Creating the list of files for the adjoint compiler.
>>> 
>>> ===  Creating the Makefile  ===
>>>   setting INCLUDES
>>>   Determining the list of source and include files
>>>   Writing makefile: Makefile
>>>   Add the source list for AD code generation
>>>   Making list of "exceptions" that need ".p" files
>>>   Making list of NOOPTFILES
>>>   Add rules for links
>>>   Adding makedepend marker
>>> 
>>> ===  Done  ===
>>> 
>>> 
>>> On 21/05/18 09:27, Dimitris Menemenlis wrote:
>>>> Try generating the Makefile using “genmake2 -devel …”
>>>> Most build_options files contain the required flags pre-set
>>>> for array-bound checks, etc., when using the “devel" option.
>>>> But if you are using stock code, this is probably not the problem.
>>>> Did you try Patrick’s suggestions?
>>>> 
>>>> Dimitris Menemenlis
>>>> 
>>>>> On May 20, 2018, at 4:07 PM, Andreas Klocker <Andreas.Klocker at utas.edu.au> wrote:
>>>>> 
>>>>> Dimitris,
>>>>> 
>>>>> I've done many runs with obcs cut-out from a global setup, but never had this issue before. So I don't think other setups would help me much, but they might be of use to others.
>>>>> 
>>>>> My code directory is pretty simple, there's hardly anything changed in there and the same code directory (apart from changes in the size of the vertical grid) have been used successfully before.
>>>>> 
>>>>> How do I compile and link with array-bound checks turned on? I haven't tried that before...
>>>>> 
>>>>> cheers,
>>>>> 
>>>>> Andreas
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> MITgcm-support mailing list
>>>> 
>>>> MITgcm-support at mitgcm.org
>>>> http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support
>>> 
>>> -- 
>>> ===============================================================
>>> Dr. Andreas Klocker
>>> Physical Oceanographer
>>> 
>>> ARC Centre of Excellence for Climate System Science
>>> &
>>> Institute for Marine and Antarctic Studies
>>> University of Tasmania
>>> 20 Castray Esplanade
>>> Battery Point, TAS
>>> 7004 Australia
>>> 
>>> M:     +61 437 870 182
>>> W:     
>>> http://www.utas.edu.au/profiles/staff/imas/andreas-klocker
>>> 
>>> skype: andiklocker
>>> ===============================================================
>>> 
>> 
>> -- 
>> ===============================================================
>> Dr. Andreas Klocker
>> Physical Oceanographer
>> 
>> ARC Centre of Excellence for Climate System Science
>> &
>> Institute for Marine and Antarctic Studies
>> University of Tasmania
>> 20 Castray Esplanade
>> Battery Point, TAS
>> 7004 Australia
>> 
>> M:     +61 437 870 182
>> W:     
>> http://www.utas.edu.au/profiles/staff/imas/andreas-klocker
>> 
>> skype: andiklocker
>> ===============================================================
>> 
>> 
>> 
>> University of Tasmania Electronic Communications Policy (December, 2014). 
>> This email is confidential, and is for the intended recipient only. Access, disclosure, copying, distribution, or reliance on any of it by anyone outside the intended recipient organisation is prohibited and may be a criminal offence. Please delete if obtained in error and email confirmation to the sender. The views expressed in this email are not necessarily the views of the University of Tasmania, unless clearly intended otherwise.
>> 
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support



More information about the MITgcm-support mailing list