================ COMPILE + INSTALL OF GEMNTR and GEMDM MODEL =========================== Pre-requisites: --------------- 1) Compilers: A) ifort/icc: Intel fortran and C++ compiler (version 11.1/076) OR (Version 12.0) Download: http://software.intel.com/en-us/articles/non-commercial-software-download/ -Free for non-commercial usage. -Do not forget to note down the SERIAL number while downloading. -GEMDM/ARMNLIB work only with 32 bits compilation. So make sure you install ia32 bit libraries. B) gfortran /gcc: ONLY VERSION 4.2 and above tested Standard Linux distribution should have this. C) pgf90/pgcc: So far tested version 7.2.4 2) Parallel Libs: A) mpich2 (mpi parallel) libraries compiled with: a) ifort/icc: (version 11.1/076) OR (Version 12.0) Download: http://www.mcs.anl.gov/mpi/mpich/ -Compile for 32 bits by choosing ifort/icc 32 bit compiler (e.g., intel/Compiler/11.1/073/bin/ia32/ifort) b) gfortran/gcc: Version 4.2 and above Key flags for compilation of mpich2: export CC=gcc CXX=g++ CFLAGS="-m32 -w" LIBS="-lgfortran -lgfortranbegin -lpthread" F77="gfortran-4.2" FC="gfortran-4.2" FFLAGS="-m32 -fcray-pointer" FCFLAGS="-m32 -fcray-pointer" CXXFLAGS="-m32 -w" c) pgf90/pgcc: Version 7.2.4 B) openmpi (mpi parallel) libraries compiled with: a) ifort/icc: (version 11.1/076) OR (Version 12.0) Download: http://www.open-mpi.org/software/ompi/v1.5/downloads/openmpi-1.5.tar.bz2 -Compile for 32 bits by choosing ifort/icc 32 bit compiler (e.g., intel/Compiler/11.1/073/bin/ia32/ifort) b) gfortran/gcc: Version 4.2 and above Key flags for compilation of openmpi: export CC=gcc CXX=g++ CFLAGS="-m32 -w" LIBS="-lgfortran -lgfortranbegin -lpthread" F77="gfortran-4.2" FC="gfortran-4.2" F90="gfortran-4.2" FFLAGS="-m32 -fcray-pointer" FCFLAGS="-m32 -fcray-pointer" F90FLAGS="-m32 -fcray-pointer" CXXFLAGS="-m32 -w" c) pgf90/pgcc: Version 7.2.4 3) cmake Download: http://www.cmake.org/cmake/resources/software.html Tested: V2.82/2.83 (both are fine) -compile for 32 bits as well using icc 32 bit compiler OR -compile for 32 bits using gcc (with CFLAGS="-m32 -w") OR -compile for 32 bit using pgcc (32 bit compiler i.e., linux86) 4) INTEL's MKL or opensource (ATLAS + netlib's) lapack libraries Download ATLAS: http://sourceforge.net/projects/math-atlas/files/Stable/ (e.g., http://sourceforge.net/projects/math-atlas/files/Stable/3.8.3/atlas3.8.3.tar.bz2/download) LAPACK from netlib is provided (no need to download) COMPILE NOTES: -------------- ATLAS- DO NOT FORGET to use -b 32 (for 32 bit library generation) Compile Instructions appear in INSTALL.txt 5) TEST RUN DATA SETS: Model initial condition, climatology and geophysical fields contained in CASES.tar.bz2 (all files in FST format) Specifically: ./CASES ----> clim_gef_400_mars96 (Climatology) ----> geophy_400 or gengeoout_global_6km.fst_0000001-0000001 (geophysical flds) ----> 20010920.120000 (analysis data) More details under RUN_TEST/README.TESTRUNGEMDM 6) If you plan to use GEMDM for real-time forecasts using CMC operational analysis (00 or 12 UTC initialization): Download CMC GRIB package to convert grib1 to FST format Download: http://collaboration.cmc.ec.gc.ca/science/rpn.comm/cgi-bin/download.php?request=cmcgrib_Linux.tar.Z INSTALL GEMDM MODEL: -------------------- 1) Compile ARMNLIB --------------- tar -xvjf GEM.tar.bz2 tar -xvjf GEM.CASES.tar.bz2 tar -xvjf GEM.run_test_listings.tar.bz2 tar -xvjf GEM.visualization.tar.bz2 cd GEM/armnlib cmake . make make genrmnlib 2) Test armnlib created -------------------- cd ../testarmnlib -The two files provide a means of testing if the librmn.a you generated works or not. -Compile sample program (ifa_avg.F) using: mpif90 ifa_avg.F ../armnlib/lib/librmn.a -Run program ./a.out -Check Output for screen output appearing between the two dashed lines below. ------------------------------------------------------------------------------------------------------------------------------------ ier 0 Read(3) MA A IFAMASK 538 268 1 010101011 0 0 0 0 0 R16 Z 3 3 1500 0 ------------------------------------------------------------------------------------------------------------------------------------ -Check a file fort.9 for number '99' by say vi fort.9 ('fort.9' is an ascii dump of the field MA [which is a mask over the Western Pacific of the IFA array]) 3) If using ATLAS libraries: ------------------------- -If using Intel MKL libraries skip to step 4 Compile Full lapack and merge with ATLAS lapack (optimized) ----------------------------------------------------------- cd ../lapack export LIBATLAS=/d1/badri/lib32/ifort_icc/atlas ==> Enter the path to your liblapack.a built as part of ATLAS cmake . ==> Assumption we built it with GNU compilers (i.e., gcc) make lapack ==> Hitting just make will build a lot of stuff we dont need and will waste time. make genfulllapack 4) Compile GEMDM ------------- -If using Intel MKL libs: -export LIBMKL=/home/badri/intel/Compiler/11.1/073/mkl/lib/32 (mkl libs) -export LIBINTEL=/home/badri/intel/Compiler/11.1/073/lib/ia32 (libiomp5.a) cd ../gem cmake . make CAUTION: ------- When using openmpi wrapper scripts for 1) to 4), please point LD_LIBRARY_PATH to openmpi lib directory (e.g., /home/zzz/openmpi/lib) ================ COMPILE + INSTALL OF GEMNTR and GEMDM MODEL ========================== ================ RUN A TEST CASE OF GEMDM ============================================= Please refer to run_test/README.TESTRUNGEMDM for instructions. ================ RUN A TEST CASE OF GEMDM ============================================= =============== RUN GEM IN REAL TIME OPERATIONALLY ==================================== Please refer to run_realtime/README_INPUT_DATASET for instructions. =============== RUN GEM IN REAL TIME OPERATIONALLY ====================================