[MITgcm-support] Compiling for tutorial_baroclinic_gyre
Chris Hill
cnh at mit.edu
Fri Dec 16 08:49:39 EST 2011
All,
Here are come commands that work (for me!).
cvs co -d MITgcm_HEAD_20111216 MITgcm
cd MITgcm_HEAD_20111216/verification/tutorial_baroclinic_gyre/build/
../../../tools/genmake2 -mods=../code
make depend
make
cd ../input/
../build/mitgcmuv
Chris
On Fri, Dec 16, 2011 at 3:07 AM, Martin Losch <Martin.Losch at awi.de> wrote:
> Hi Kirk,
>
> I think, within directory
> ~/mitgcm/MITgcm_c63f/verification/tutorial_baroclinic_gyre/build
> /home/kbryan/mitgcm/MITgcm_c63f/tools/genmake2 -mods ../code
> should work, and ../code also contains an appropriate SIZE.h (I think the
> error message is a result of not specifying the -mods ../code, where the
> configuration specific files reside, this is absolutely necessary).
> genmake2 usually can guess an appropriate optfile by itself. In your case
> it picked linux_ia32_f77.
> If you want to specify a different optfile, you can (according to the
> compiler and platform that you have) choose from
> /home/kbryan/mitgcm/MITgcm_c63f/tools/build_options
>
> For a single tile configuration you can change this:
> sNx=60,
> sNy=60,
> nSx=1,
> nSy=1,
> The buffer width is specified by olx/oly, and a value of 2 (as in
> ../code/SIZE.h) is enough for the choice of advection schemes etc. in this
> tutorial.
>
> You might also want to have a look at
> http://mitgcm.org/public/r2_manual/latest/online_documents/node117.html
> (in particular 3.10.5.3) although not quite up to date, I am afraid.
>
> Martin
>
>
> On Dec 16, 2011, at 5:01 AM, 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
>
>
> _______________________________________________
> 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/20111216/039da442/attachment.htm>
More information about the MITgcm-support
mailing list