[ English | Japanese ] [ GFD Dennou Club / DCPAM: planetary atmosphere model ] [ dcpam4 Reference Manual ]

dcpam4 Installation Guide


  1. Operation Environment
  2. Software Requirements
  3. How to build
  4. Execute a sample program

Operation Environment

This program is operated by following compilers.

Software Requirements

Following softwares should be installed for installing dcpam.

netCDF (version 3.6.2 or more)

Debian GNU/Linux (use binary packages)

Build from source codes

gt4f90io (version 20070827 or more)

Debian GNU/Linux (use binary packages)

Build from source codes

ISPACK (in JAPANESE) (version 0.71)

Debian GNU/Linux (use binary packages)

Build from source codes

spmodel (version 0.4.1)

Debian GNU/Linux (use binary packages)

Build from source codes

Software Requirements for developers

Following softwares should be installed for modification of source code and generation of documents. (But if you get tar.gz package, documentations are already generated).

How to build

Extract TGZ Package

Make an empty directory, and extract archive as follows. A directory `dcpam4-version' created at the current working directory.

$ tar xvzf dcpam4_current.tgz

or

$ zcat dcpam4_current.tar.gz | tar -xvf -

Specify Fortran Compiler

Specify Fortran compiler to environmental variable FC . For example, if you use "frt",

Specify Fortran compiler options for optimization and debug to environmental variable FFLAGS . For example, if you set options for automatic optimization and automatic parallelization to "frt",

Create `Config.mk'

Move created directroy, and excute ` ./configure '.

Specify library files in Libraries needed for compile to following options.

--with-ispack=ARG
ispack library filename (*.a)
--with-netcdf=ARG
netcdf library filename (*.a)
--with-gt4f90io=ARG
gt4f90io library filename (*.a)
--with-spml=ARG
spmodel library filename (*.a)

For exapmle, specify as follow. This command will generate Config.mk .

$ ./configure --with-ispack=/usr/local/lib/libisp.a \
              --with-netcdf=/usr/local/lib/libnetcdf.a \
              --with-gt4f90io=/usr/local/lib/gt4f90io/lib/libgt4f90io.a \
              --with-spml=/usr/local/lib/spml/lib/libspml.a \

GNU make is needed to build, so configure automatically inquires into GNU make in PATH. However, it returns error when GNU make is not found. In that case, please set the GNU make command for environment variable MAKE . And rerun execute ` ./configure '.

If you want to change directory to which the library and the module, etc. are installed, please set --help option as follow. Available options are showed.

$ ./configure --help

Descriptions about principal options are listed below.

--prefix=ARG
Specify prefix to ARG. Default value is /usr/local/dcpam4 .
--libdir=ARG
Specify directory to which the library is installed to ARG. Default value is /usr/local/dcpam4/lib .
--includedir=ARG
Specify directory to which the module is installed to ARG. Default value is /usr/local/dcpam4/include .
--bindir=ARG
Specify directory to which the executable file is installed to ARG. Default value is /usr/local/dcpam4/bin .
--with-docdir=ARG
Specify directory to which the documentation file is installed to ARG. Default value is /usr/local/dcpam4/doc .
--with-dcpam_lib_name=ARG
Specify dcpam4 library name to ARG. Library name becomes lib<ARG>.a . Default value is dcpam4 , so library name becomes libdcpam4.a .
--with-dcpam_suffix=ARG
Specify suffix of installdir, library name, executable files toARG. For example, you specify ffc5 when others are default, prefix of installdir becomes /usr/local/dcpam4-ffc5 , library name becomes libdcpam4-ffc5.a , executable files become gt4frt.ffc5 , gt4config.ffc5 .
--with-lang_conform_check=ARG
Specify language standard to ARG. And when you compile source code, check the language standard conformance. Now, "95" is valid. The compiler that can be used is limited.
--enable-debug
When you compile source code and execute binary file, output debug messages. The compiler that can be used is limited.
--config-cache or -C

config.cache is created at the same time as Config.mk 's being generated. config.cache stores information investigated with ./configure .

If you set this option, when you execute ./configure again, config.cache is loaded. If you want to ignore config.cache, don't set this option

For example, execute ./configure as follows.

$ ./configure -C  --enable-debug \
              --with-ispack=/usr/local/lib/libisp.a \
              --with-netcdf=/usr/local/lib/libnetcdf.a \
              --with-gt4f90io=/usr/local/lib/gt4f90io/lib/libgt4f90io.a \
              --with-spml=/usr/local/lib/spml/lib/libspml.a \

Then, information such as the locations of the netCDF library etc. is succeeded by executing ./configure as follows after next time.

$ ./configure -C

If you use Fujitsu Fortran compiler in Debian GNU/Linux, copy "Config.cache.debian-ffc*" to config.cache and execute ./configure . So, locations of libraries are specified automatically.

$ cp Config.cache.debian-ffc5 config.cache
$ ./configure

Edit `Config.mk'

Edit unspecified item in `Config.mk' manually.

Followings are main items.

FC
Fortran compiler
SYSFFLAGS
Flags needed when compiled and linked
SYSLDFLAGS
Flags needed when linked
SYSLDLIBS
Libraries needed when linked
DCPAMDIR
Specify location where Config.mk is.
prefix
Directory where dcpam4 library, modules, executable files, and documentations are installed
CLEAN_MODS
Extensions of Module Files used when "make clean"
MAKE
GNU make command
AR
Archive command
ARFLAGS
Flag of Archive command
RANLIB
Generate index to archive command

Compile source code

You must use GNU make to build. No other "make" program is acceptable. "make" tentatively means GNU make at the following. Replace them with GNU make of your system.

When ./configure is executed, the command name of GNU make is displayed as follows. Execute GNU make according to this message.

Execute GNU make in the current directory, as follows.

  /usr/bin/make

Generate documentations

To generate documentations, execute following command in current directory. If you get from dcpam4 TGZ package, documentations are already generated.

$ make doc

Execute a sample program

Following documents are under construction. From now, they will be moved to "dcpam4 Gokuraku (easiest) Tutorial".

A benchmark experiment suggested by Held and Suarez (1994)

Firstly, how to execute a benchmark experiment suggested by Held and Suarez (1994) is explained.

Move "practice" directory.

$ cd practice

In the directory, execute 'make' command. There are some questions, then input 'Enter' key.

$ make

****** Setup a directory for a experiment ******

  Enter directory name [testXX]:
  Directory in which executable files are prepared
    [/home/dcpam/work/dcpam4/src/main]:
  Directory in which NAMELIST files are prepared
    [/home/dcpam/work/dcpam4/src/main]:
  Save F90/95 source code files? [Y/n]:
  Directory in which source code files are prepared
    [/home/dcpam/work/dcpam4/src]:

                :

*** Setup of "testXX" is complete ***

Then a directory 'testXX' is created, and executable files, NAMELIST files, and source code files are copied to the directory. Move the 'textXX'.

$ cd testXX

Executable files 'dcpam_hs94', 'init_sample' etc. will be prepared. Execute 'dcpam_hs94' as follows.

$ ./dcpam_hs94

 *** MESSAGE [dcpam_hs94] ***  History files are created.
 *** MESSAGE [dcpam_hs94] ***  Restart file "dcpam_hs94_restart.nc" is created.
 *** MESSAGE [dcpam_hs94] ***  History data (time=0.125 days) is output.
 *** MESSAGE [dcpam_hs94] ***  Restart data (time=1440. minute - 20. minute,
 and 1440. minute) is output to "dcpam_hs94_restart.nc"

 ########## PREDICTION OF CALCULATION ###########
 Start Date             2007-07-30T17:25:25+09:00
 Current Date           2007-07-30T17:25:35+09:00
 Progress     14.29%  [***                      ]
 Remaining CPU TIME      0.580000E+02
 Completion Date        2007-07-30T17:26:33+09:00

                   :

 ############## CPU TIME SUMMARY ################
 Setup                  0.223517E-09            
 HistoryGet             0.223517E-09            
 HistoryPut             0.679995E+00            
 Dynamics               0.133000E+02            
 Phyisics               0.342000E+01            
 TimeFilter             0.209997E+00            
 ------------------------------------------------
        TOTAL TIME =    0.176100E+02            

In this case, 7 days calculation is performed, and history data are output to 'U.nc' and 'Temp.nc' etc., and a restart data is output to 'dcpam_hs94_restart.nc'. They are netCDF data with gtool4 NetCDF conventions. In order to visualize or analyze, use tools developed by Dennou Ruby Project.

In order to configure the settings of calculation, use NAMELIST file. As samples, 'dcpam_hs94_T10L12.nml' and 'dcpam_hs94_T21L12.nml' are prepared. Edit these files and execute with '-N' (or '--namelist') option as follows.

$ ./dcpam_hs94 -N=dcpam_hs94_T10L12.nml

 *** MESSAGE [dcpam_hs94] ***  NAMELIST group "dcpam_hs94_grid_nml"
 is loaded from "dcpam_hs94_T10L12.nml".
 &DCPAM_HS94_GRID_NML
 NMAX    =          10,
 IMAX    =          32,
 JMAX    =          16,
 KMAX    =          12
 /
 *** MESSAGE [dcpam_hs94] ***  NAMELIST group "dcpam_hs94_time_nml"
 is loaded from "dcpam_hs94_T10L12.nml".
 &DCPAM_HS94_TIME_NML
 START_TIME_VALUE        =  0.000000000000000E+000,
 START_TIME_UNIT = sec                             ,
 DELTA_TIME_VALUE        =   20.0000000000000     ,
 DELTA_TIME_UNIT = minute                          ,
 TOTAL_TIME_VALUE        =   7.00000000000000     ,
 TOTAL_TIME_UNIT = day                             ,
 PREDICT_SHOW_INTERVAL_VALUE     =   1.00000000000000     ,
 PREDICT_SHOW_INTERVAL_UNIT      = days
 /
            :

When a NAMELIST file is loaded, information about loading of NAMELIST group name is output.


$Id: INSTALL,v 1.9 2007/09/09 15:46:24 morikawa Exp $
DCPAM Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org