[MITgcm-support] Compiling for tutorial_baroclinic_gyre
Patrick Heimbach
heimbach at MIT.EDU
Fri Dec 16 11:00:26 EST 2011
Kirk,
just guessing:
from the messages you added, I suspect that it's a compiler issue,
possibly a very old implementation or something non-standard
(I take it you're compiling directly in the "code/" directory,
which is why you don't add a "-mods" option to your genmake2).
Suspiciously, genmake2 could only find two installed compilers, f77 and f95
for none of which we have standard optfiles, in your case it would be called
linux_ia32_f77
but which we don't have because either non-standard or very old.
Could you send following info, the outcome of typing
uname -a
and
f77 --version
which gives a better idea on the OS and compiler version.
Another option would be to try the f95 compiler instead.
-Patrick
On Dec 15, 2011, at 11:01 PM, Kirk Bryan wrote:
> I am trying to compile for
> ~/mitgcm/MITgcm_c63f/verification/tutorial_baroclinic_gyre
>
> I start with the command:
>
> /home/kbryan/mitgcm/MITgcm_c63f/tools/genmake2 -optfile=/home/kbryan/mitgcm/MITgcm_c63f/tools/suggest_optfile_names
>
>
> The results are:
>
> 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
> Warning: ROOTDIR was not specified ; try using a local copy of MITgcm found at "../../.."
> getting OPTFILE information:
> using OPTFILE="/home/kbryan/mitgcm/MITgcm_c63f/tools/suggest_optfile_names"
> The platform appears to be: linux_ia32
> And possible optfiles are:
> linux_ia32_absoft
> linux_ia32_g77
> linux_ia32_g95
> linux_ia32_gfortran
> linux_ia32_gfortran+mpi_fc_lam
> linux_ia32_ifort
> linux_ia32_ifort10.1
> linux_ia32_ifort11
> linux_ia32_ifort+oad
> linux_ia32_ifort+oad+mpi
> linux_ia32_lf95
> linux_ia32_open64
> linux_ia32_pathf90
> linux_ia32_pgf77
> linux_ia32_pgf77+mpi_aer
> linux_ia32_sunf90
> The platform appears to be: linux_ia32
> a system-default makedepend was not found.
> The possible C compilers found in your path are:
> gcc c89 cc c99
> Setting C compiler to: gcc
> The possible FORTRAN compilers found in your path are:
> f77 f95
> Setting FORTRAN compiler to: f77
> The default optfile is: linux_ia32_f77
> getting AD_OPTFILE information:
> using AD_OPTFILE="../../../tools/adjoint_options/adjoint_default"
> === Checking system libraries ===
> Do we have the system() command using f77... yes
> Do we have the fdate() command using f77... yes
> Do we have the etime() command using f77... yes
> Can we call simple C routines (here, "cloc()") using f77... yes
> Can we unlimit the stack size using f77... yes
> Can we register a signal handler using f77... yes
> Can we use stat() through C calls... yes
> Can we create NetCDF-enabled binaries... yes
> === Setting defaults ===
> Adding MODS directories:
> 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:
> before group expansion packages are: default_pkg_list
> replacing "default_pkg_list" with: gfd
> 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
> applying DISABLE settings
> applying ENABLE settings
> packages are: debug generic_advdiff mdsio mom_common mom_fluxform mom_vecinv monitor rw
> applying package dependency rules
> packages are: debug generic_advdiff mdsio mom_common mom_fluxform mom_vecinv monitor rw
> 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_EEOPTIONS="../../../eesupp/inc/CPP_EEOPTIONS.h"
> found CPP_OPTIONS="../../../model/inc/CPP_OPTIONS.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 ===
>
> next I do
>
> make Clean
>
> make depend
>
> make
>
> On make it fails on global_vector_sum
>
> f77 -c global_vec_sum.F
> global_vec_sum_r4:
> Error on line 96 of <stdin>: Declaration error for tmp1: adjustable dimension on non-argument
> Error on line 96 of <stdin>: Declaration error for tmp2: adjustable dimension on non-argument
> Error on line 96 of <stdin>: wr_ardecls: nonconstant array size
> Error on line 96 of <stdin>: wr_ardecls: nonconstant array size
> global_vec_sum_r8:
> Error on line 182 of <stdin>: Declaration error for tmp1: adjustable dimension on non-argument
> Error on line 182 of <stdin>: Declaration error for tmp2: adjustable dimension on non-argument
> Error on line 182 of <stdin>: wr_ardecls: nonconstant array size
> Error on line 182 of <stdin>: wr_ardecls: nonconstant array size
> global_vec_sum_int:
> Error on line 269 of <stdin>: Declaration error for tmp1: adjustable dimension on non-argument
> Error on line 269 of <stdin>: Declaration error for tmp2: adjustable dimension on non-argument
> Error on line 269 of <stdin>: wr_ardecls: nonconstant array size
> Error on line 269 of <stdin>: wr_ardecls: nonconstant array size
> /usr/bin/f77: aborting compilation
> make: *** [global_vec_sum.o] Error 255
> kbryan at kbryan-desktop2:~/mitgcm/MITgcm_c63f/verification/tutorial_baroclinic_gyre/build$
>
> I think it has something to do with the array size specified in SIZE.h
>
> For a PC should I have only one tile? If so, should it have any buffer around it?
>
> C $Header: /u/gcmpack/MITgcm/verification/tutorial_baroclinic_gyre/code/SIZE.h,v 1.1 2006/04/20 16:25:24 jmc Exp $
> C $Name: checkpoint63f $
> C
> C /==========================================================\
> C | SIZE.h Declare size of underlying computational grid. |
> C |==========================================================|
> C | The design here support a three-dimensional model grid |
> C | with indices I,J and K. The three-dimensional domain |
> C | is comprised of nPx*nSx blocks of size sNx along one axis|
> C | nPy*nSy blocks of size sNy along another axis and one |
> C | block of size Nz along the final axis. |
> C | Blocks have overlap regions of size OLx and OLy along the|
> C | dimensions that are subdivided. |
> C \==========================================================/
> C Voodoo numbers controlling data layout.
> C sNx - No. X points in sub-grid.
> C sNy - No. Y points in sub-grid.
> C OLx - Overlap extent in X.
> C OLy - Overlat extent in Y.
> C nSx - No. sub-grids in X.
> C nSy - No. sub-grids in Y.
> C nPx - No. of processes to use in X.
> C nPy - No. of processes to use in Y.
> C Nx - No. points in X for the total domain.
> C Ny - No. points in Y for the total domain.
> C Nr - No. points in Z for full process domain.
> INTEGER sNx
> INTEGER sNy
> INTEGER OLx
> INTEGER OLy
> INTEGER nSx
> INTEGER nSy
> INTEGER nPx
> INTEGER nPy
> INTEGER Nx
> INTEGER Ny
> INTEGER Nr
> PARAMETER (
> & sNx = 30,
> & sNy = 15,
> & OLx = 2,
> & OLy = 2,
> & nSx = 2,
> & nSy = 4,
> & nPx = 1,
> & nPy = 1,
> & Nx = sNx*nSx*nPx,
> & Ny = sNy*nSy*nPy,
> & Nr = 4)
> C MAX_OLX - Set to the maximum overlap region size of any array
> C MAX_OLY that will be exchanged. Controls the sizing of exch
> C routine buufers.
> INTEGER MAX_OLX
> INTEGER MAX_OLY
> PARAMETER ( MAX_OLX = OLx,
> & MAX_OLY = OLy )
>
> Thanks for any suggestions for a better genmake command and a better specification of SIZE.h
> Kirk
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support
---
Patrick Heimbach | heimbach at mit.edu | http://www.mit.edu/~heimbach
MIT | EAPS 54-1420 | 77 Massachusetts Ave | Cambridge MA 02139 USA
FON +1-617-253-5259 | FAX +1-617-253-4464 | SKYPE patrick.heimbach
More information about the MITgcm-support
mailing list