Friday, February 21, 2014

How to setup GSI code on s4

-----------------------------------------
1. Check out the latest GSI version
 -----------------------------------------
$ cd
$ svn co https://svnemc.ncep.noaa.gov/projects/gsi/branches/NESDIS-JCSDA/users/dxu/gsi  gsi_dxu

-----------------------------------------
2. Load modules needed to compile code
 -----------------------------------------
$ cd
$ module purge
$ module load  license_intel
$ module load  intel/12.1
$ module load  hdf5
$ module load  netcdf4/4.2.1
$ module load  impi/4.0.3.008

-----------------------------------------
3. Compile new GSD code. 
 -----------------------------------------
$ cd /home/dxu/gsi_dxu/lib/GSD/gsdcloud4nmmb
$ make
Note: libgsdcloud.a is created under the same location.

-----------------------------------------
4. Compile CRTM code ( version CRTM_REL-2.1.3 )
 -----------------------------------------
$ cd /home/dxu/gsi_dxu/lib/CRTM_REL-2.1.3
$  .    configure/ifort.setup
$ make
Note: Create libCRTM.a, mod files and object files in "libsrc" folder

$ make install
Note:
   Copy libsrc/libCRTM.a to /home/dxu/gsi_dxu/lib/CRTM_REL-2.1.3/lib
   Copy libsrc/*.mod to /home/dxu/gsi_dxu/lib/CRTM_REL-2.1.3/include

$ make clean
Note: remove libCRTM.a, mod files and object files from "libsrc" folder


-----------------------------------------
5. Link CRMT coefficient files
 -----------------------------------------
$ cd    /home/dxu/gsi_dxu/lib/CRTM_REL-2.1.3/fix
$ make   Big_Endian
$ cd    /home/dxu/gsi_dxu/scripts
$ sh   link_crtm_coeffs.sh 
  /usr/local/jcsda/NESDIS-JCSDA/gsi2014/lib/CRTM_REL-2.1.3/fix 
  /home/dxu/gsi_dxu/lib/CRTM_REL-2.1.3/fix/Big_Endian

Note: Link all the coefficient files in "Big_Endian" under various categories
      such as "TauCoeff" to /home/dxu/gsi_dxu/lib/CRTM_REL-2.1.3/fix/Big_Endian folder,
      to which so running scripts need to access to avoid specifying specific sub-dir.
      Not sure this step is necessary since in Makefile.conf we use centralized CRTM and
      we expect that running scripts will get everything including coefficient files from
      that centralized CRTM location instead of getting data locally.

      eg:
         zssmis_f19.TauCoeff.bin ->  /usr/local/jcsda/NESDIS-JCSDA/gsi2014/lib/
              CRTM_REL-2.1.3/fix/TauCoeff/ODPS/Big_Endian/zssmis_f19.TauCoeff.bin

----------------------------------------- 
6. Get modified Makefile and config file
   from centralized location.

-----------------------------------------
$ cd   /home/dxu/gsi_dxu/src
$ cp   /usr/local/jcsda/NESDIS-JCSDA/gsi2014/src/Makefile   .
$ svndiff   Makefile
    -COREROOT = ../../..
    +COREROOT = /usr/local/jcsda/NESDIS-JCSDA/nceplibs2012

# Makefile.conf is similar to Makefile.conf.s4
$ cp    /usr/local/jcsda/NESDIS-JCSDA/gsi2014/src/Makefile.conf .

# Modify to use GSD and CRTM library compiled above.
$ vi   Makefile.config

-----------------------------------------
7. Compile GSI
-----------------------------------------
$ cd   /home/dxu/gsi_dxu/src
$ make  -f   Makefile

Note: global_gsi is created under the same directory.

No comments:

Post a Comment