Difference between revisions of "The IOIPSL Library"

From Planets
Jump to: navigation, search
(Created page with "The IOIPSL (for Input Output IPSL) library is a library used by the GCM to read in input parameters from the run.def text file and related *.def files. It can in fact do more,...")
 
Line 1: Line 1:
 
The IOIPSL (for Input Output IPSL) library is a library used by the GCM to read in input parameters from the run.def text file and related *.def files. It can in fact do more, such as writing output NetCDF files a, a feature not used by the Generic model's physics package.
 
The IOIPSL (for Input Output IPSL) library is a library used by the GCM to read in input parameters from the run.def text file and related *.def files. It can in fact do more, such as writing output NetCDF files a, a feature not used by the Generic model's physics package.
  
Just like for any library, one should need to only install it once and then just use it by linking  
+
Just like for any library, one should need to only install it once and then just use it by linking to it and pointing to its modules. In practice via the compilation options:
 +
<syntaxhighlight lang="bash">
 +
-L/path/to/the/ioipsl/library/lib -lioipsl
 +
</syntaxhighlight>
 +
<syntaxhighlight lang="bash">
 +
-I/path/to/the/ioipsl/library/inc
 +
</syntaxhighlight>
  
== Installing the IOIPSL library ===
+
 
 +
== Installing the IOIPSL library ==
 
There are some dedicated scripts in '''LMDZ.COMMON/ioipsl''' that one can adapt and use, hopefully without too much trouble using pointers and information given here
 
There are some dedicated scripts in '''LMDZ.COMMON/ioipsl''' that one can adapt and use, hopefully without too much trouble using pointers and information given here
  
Line 9: Line 16:
 
IOIPSL is written in Fortran, so you need to have a Fortran compiler at hand (gfortran in the following examples), as well as an available NetCDF library compiled using that same compiler.
 
IOIPSL is written in Fortran, so you need to have a Fortran compiler at hand (gfortran in the following examples), as well as an available NetCDF library compiled using that same compiler.
  
=== Architecture Files ===
+
=== Downloading the IOIPSL library sources ===
 +
One can do this using svn (subversion):
 +
<syntaxhighlight lang="bash">
 +
svn checkout http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL
 +
</syntaxhighlight>
 +
where the trailing argument ''IOIPSL'' is customizable to whatever (non existing) subdirectory name one wants to have the library put in.
  
=== The makeioipsl_fcm compilation script ===
+
=== The makeioipsl_fcm compilation script and related FCM architecture files ===
  
 
=== Checking that the install is successfull ===
 
=== Checking that the install is successfull ===

Revision as of 10:14, 4 May 2022

The IOIPSL (for Input Output IPSL) library is a library used by the GCM to read in input parameters from the run.def text file and related *.def files. It can in fact do more, such as writing output NetCDF files a, a feature not used by the Generic model's physics package.

Just like for any library, one should need to only install it once and then just use it by linking to it and pointing to its modules. In practice via the compilation options:

-L/path/to/the/ioipsl/library/lib -lioipsl
-I/path/to/the/ioipsl/library/inc


Installing the IOIPSL library

There are some dedicated scripts in LMDZ.COMMON/ioipsl that one can adapt and use, hopefully without too much trouble using pointers and information given here

Prerequisites

IOIPSL is written in Fortran, so you need to have a Fortran compiler at hand (gfortran in the following examples), as well as an available NetCDF library compiled using that same compiler.

Downloading the IOIPSL library sources

One can do this using svn (subversion):

svn checkout http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL

where the trailing argument IOIPSL is customizable to whatever (non existing) subdirectory name one wants to have the library put in.

The makeioipsl_fcm compilation script and related FCM architecture files

Checking that the install is successfull

If the previous step went well the IOIPSL/lib directory should contain the library:

libioipsl.a

and the IOIPSL/inc directory should contain the following module files:

calendar.mod   flincom.mod   histcom.mod  restcom.mod
defprec.mod    fliocom.mod   ioipsl.mod   stringop.mod
errioipsl.mod  getincom.mod  mathelp.mod

Know problems worth knowing about

  • Recent versions of the IOIPSL fails to work properly if compiled by gfortran version 4.8.5 (see e.g. https://trac.lmd.jussieu.fr/Planeto/ticket/62 ).
  • As of April 2022 the IOISPL distribution requires username/password authentication. Not a problem (no need for any specific registration step) as there is a generic username/password that can be used (see the provided IOIPSL install scripts where this information is hard coded).