[MITgcm-support] Compiling for tutorial_baroclinic_gyre
Kirk Bryan
kbryan at Princeton.EDU
Thu Dec 15 23:01:07 EST 2011
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mitgcm.org/pipermail/mitgcm-support/attachments/20111216/35f35da2/attachment-0001.htm>
More information about the MITgcm-support
mailing list