This is a brief tutorial on getting CCSM 3.0 to compile on Ubuntu Linux using the Intel Fortran Compiler. This This work was carried out during 2007–2008 at North Park University on a Dell Poweredge with 4 processors, running Ubuntu 7.04.
Before beginning, it is recommmended that you read through the first few sections of the CCSM 3.0 user guide.
Here are the list of files needed:
The following input data:
The first thing that needs to be done is to untar the CCSM source code using the following command.
tar -xf ccsm3.0.tar.gz
Do the same with the input data tarballs:
For installing IFC see our tutorial here.
For installing MPICH, simply follow the directions given in the
README. The only change that needs to be made is that the
make command must be run as root.
sudo make ....
There are a number of things that must be done before CCSM 3.0 will compile on Linux. (Note: At this point, all the source code and input data should be untarred, and the Intel Fortran Compiler should be installed.)
First, there is an issue in the file
Inside the root CCSM directory:
On line 3 change:
mach = anchorage
mach = generic_linux
At this point we can now create a new case (read the user guide for more info on this). Go to the scripts directory:
./create_newcase –case FULLPATH/ccsm3_0/newcase –mach generic_linux
newcaseshould not exist before running this script.)
A bunch of files are now created in the location you just specificed
.../ccsm3_0/newcase in this example). The following needs
to be changed in the file
in that directory:
setenv EXEROOT) add the following lines of code:
setenv LIB_NETCDF /opt/netcdf/lib
setenv INC_NETCDF /opt/netcdf/include
setenv INC_MPI /opt/mpich2/include
setenv SCRATCH /home/sysadmin/Desktop/ccsm3_0/scratch
The paths given here are for my personal installations. Be sure to change those to libraries and include paths of your installations. Note: the scratch directory can be anywhere.
The follow variables need to be changed:
setenv DOUT_S_ROOT /$SCRATCH/$LOGNAME/archive/$CASE
setenv DOUT_LOC_ROOT [FULLPATH]/inputdata
setenv DOUT_LOC_USER [FULLPATH]/inputdata_user
FULLPATH is the complete path to the directory that
are directories untarred from the input data).
The commands for the compilers must be set. To do this, go to your CCSM root directory:
And all instances of
Some of the Fortran flags need to be changed in order to work with IFC. From the CCSM root directory:
This concludes all the changes that need to be made.
newcase-generic_linux.build should compile correctly.
CCSM is very complex, there are many things that can go wrong. If CCSM does not compile for you, always check the error logs for hints of whats gone wrong. One common and easy to fix problem is that the include or library directories are incorrect. So be sure that they are all written correctly.
The CCSM forums can be very helpful. Be sure to use the search function before posting.
While I was able to compile CCSM without error, I was unable to run it correctly. It would always hang when the coupler started. I have a feeling it was some issue with MPI, but I am unsure. However, this guide should hopefully get CCSM to compile, which is an important first step.Author: Jonathan Nehring, with editing by Johnny Lin. Updated: Monday, 12-May-2008 17:05:05 PDT. Valid CSS, HTML. This work is licensed under a Creative Commons Attribution-Noncommercial-ShareAlike 3.0 License.