[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