ORcompDCAO DCAO

De Wikicima
(Diferencias entre revisiones)
Saltar a: navegación, buscar
(Installation steps using modipsl)
(Installation steps using modipsl)
Línea 70: Línea 70:
   
 
== XIOS ==
 
== XIOS ==
** going there:
+
** Creation of 'fcm' compilation environtment file for <code>DCAO_gfortran</code>
<pre>$ cd ../modeles/XIOS/arch</pre>
 
** Using generic gcc compilation as reference
 
 
<pre>$ vim ../modeles/XIOS/arch/arch-DCAO_gfortran.fcm</pre>
 
<pre>$ vim ../modeles/XIOS/arch/arch-DCAO_gfortran.fcm</pre>
  +
** values:
 
<pre>################################################################################
 
<pre>################################################################################
 
################### Projet XIOS ###################
 
################### Projet XIOS ###################
Línea 96: Línea 97:
 
%FPP cpp -P
 
%FPP cpp -P
 
%MAKE gmake</pre>
 
%MAKE gmake</pre>
** Getting paths:
+
** Creation of 'path' compilation environtment file for <code>DCAO_gfortran</code>
<pre>$ cp arch-GCC_LINUX.path arch-DCAO_gfortran.path</pre>
+
<pre>$ vim ../modeles/XIOS/arch/arch-DCAO_gfortran.path</pre>
** Adapting values:
+
** values:
 
<pre>NETCDF_INCDIR="-I $NETCDF_INC_DIR"
 
<pre>NETCDF_INCDIR="-I $NETCDF_INC_DIR"
 
NETCDF_LIBDIR="-L $NETCDF_LIB_DIR"
 
NETCDF_LIBDIR="-L $NETCDF_LIB_DIR"
Línea 115: Línea 116:
 
#OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu"</pre>
 
#OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu"</pre>
   
** Getting environment:
+
** Creation of 'env' compilation environtment file for <code>DCAO_gfortran</code>
<pre>$ cp arch-GCC_LINUX.env arch-DCAO_gfortran.env</pre>
+
<pre>$ vim ../modeles/XIOS/arch/arch-DCAO_gfortran.env</pre>
   
** Adapting values:
+
** values:
 
<pre>export HDF5_INC_DIR=/usr/include
 
<pre>export HDF5_INC_DIR=/usr/include
 
export HDF5_LIB_DIR=/usr/lib/x86_64-linux-gnu
 
export HDF5_LIB_DIR=/usr/lib/x86_64-linux-gnu
Línea 126: Línea 127:
   
 
== ORCHIDEE ==
 
== ORCHIDEE ==
** Going there
+
** Creation of 'fcm' compilation environtment file for <code>DCAO_gfortran</code>
<pre>$ cd ../../ORCHIDEE/arch</pre>
+
<pre>$ vim ../modeles/ORCHIDEE/arch/arch-DCAO_gfortran.fcm</pre>
** Using gfotran compilation as reference
+
** values:
<pre>$ cp arch-gfortran.fcm arch-DCAO_gfortran.fcm</pre>
 
** Adapting values:
 
 
<pre>%COMPILER /usr/bin/mpicc
 
<pre>%COMPILER /usr/bin/mpicc
 
%LINK /usr/bin/mpif90
 
%LINK /usr/bin/mpif90
Línea 144: Línea 145:
 
%MPI_LD
 
%MPI_LD
 
%OMP_LD -openmp</pre>
 
%OMP_LD -openmp</pre>
** getting paths
+
** Creation of 'path' compilation environtment file for <code>DCAO_gfortran</code>
<pre>$ cp arch-gfortran.path arch-DCAO_gfortran.path</pre>
+
<pre>$ vim ../modeles/ORCHIDEE/arch/arch-DCAO_gfortran.path</pre>
** Adapting values:
+
** values:
 
<pre>NETCDF_INCDIR="-I/usr/include"
 
<pre>NETCDF_INCDIR="-I/usr/include"
 
NETCDF_LIBDIR="-L/usr/lib/x86_64-linux-gnu"
 
NETCDF_LIBDIR="-L/usr/lib/x86_64-linux-gnu"

Revisión de 12:22 10 jul 2019

Compilation at DCAO's computational classroom

Contenido

Installation steps using modipsl

  • Required packages:
# apt-get install subversion git libnetcdf-dev libnetcdff-dev make ncview ksh csh mpi mpich vim 
  python-matplotlib python-matplotlib-data python-matplotlib-doc python-mpltoolkits.basemap 
  python-mpltoolkits.basemap-data dvipng python-netcdf4
  • And fake gmake (Ubunutu)
ln -s /usr/bin/make /usr/bin/gmake
  • Go to the installation directory [INSTALLDIR] (for hydra [INSTALLDIR]=/home/administrador/installOR)
$ cd [INSTALLDIR]
  • Getting the IPSL-models suite
$ svn co https://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl
  • Going to the util folder:
$ cd modipsl/util
  • Getting the off-line version of ORCHIDEE
$ ./model ORCHIDEE_trunk
  • We got some issues with the ports, thus, it needs to be manually done:
$ cd ../modeles
  • Getting IOIPSL:
$ mkdir -p IOIPSL/src 
$ svn co https://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/tags/v2_2_2/src IOIPSL/src
  • Getting XIOS library
$ svn co -r 1043 https://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS
  • By the end one should have:
$ ls
IOIPSL  ORCHIDEE  XIOS
  • Going back to util to proceed
$ cd ../util
  • These are the final versions of the codes
    • ORCHIDEE: 6094
    • ORCHIDEE_OL: 4622
    • IOIPSL: 3379
    • XIOS: 1043
  • Preparing compilation environment for hydra. One need to add into AA_make.gdef specifications for DCAO_gfortran (at the end of file):
#-Q- DCAO_gfortran  #- Global definitions for DCAO, mpi gfortran
#-Q- DCAO_gfortran  LIB_MPI = MPI1
#-Q- DCAO_gfortran  LIB_MPI_BIS = MPI1
#-Q- DCAO_gfortran  FCM_ARCH = DCAO_gfortran 
#-Q- DCAO_gfortran  M_K = make
#-Q- DCAO_gfortran  P_C = cpp
#-Q- DCAO_gfortran  P_O = -fpreprocessed -P -C -traditional $(P_P)
#-Q- DCAO_gfortran  F_C = gfortran -c -cpp
#-Q- DCAO_gfortran  #-D- MD    F_D = -g -Wall -fbounds-check -pedantic -finit-real=nan
#-Q- DCAO_gfortran  #-D- MN    F_D =
#-Q- DCAO_gfortran  #-P- I4R4  F_P =
#-Q- DCAO_gfortran  #-P- I4R8  F_P = -fdefault-real-8
#-Q- DCAO_gfortran  #-P- I8R8  F_P = -fdefault-integer-8 -fdefault-real-8
#-Q- DCAO_gfortran  w_w = -O3 -funroll-all-loops $(F_D) $(F_P) -I$(MODDIR)
#-Q- DCAO_gfortran  F_O = $(w_w) -J$(MODDIR)
#-Q- DCAO_gfortran  F_L = gfortran
#-Q- DCAO_gfortran  M_M = 0
#-Q- DCAO_gfortran  L_X = 0
#-Q- DCAO_gfortran  L_O =
#-Q- DCAO_gfortran  A_C = ar -rs
#-Q- DCAO_gfortran  A_G = ar -x
#-Q- DCAO_gfortran  C_C = cc -c
#-Q- DCAO_gfortran  C_O =
#-Q- DCAO_gfortran  C_L = cc
#-Q- DCAO_gfortran  #-
#-Q- DCAO_gfortran  NCDF_INC = /usr/include
#-Q- DCAO_gfortran  NCDF_LIB = -L/usr/lib/x86_64-linux-gnu -lnetcdf
#-Q- DCAO_gfortran  #-
  • Creation of the configuration arch files for the compilation of each component

XIOS

    • Creation of 'fcm' compilation environtment file for DCAO_gfortran
$ vim ../modeles/XIOS/arch/arch-DCAO_gfortran.fcm
    • values:
################################################################################
###################                Projet XIOS               ###################
################################################################################

%CCOMPILER      /usr/bin/mpicc
%FCOMPILER      /usr/bin/mpif90
%LINKER         /usr/bin/mpif90 -nofor-main

%BASE_CFLAGS    -ansi -w -D_GLIBCXX_USE_CXX11_ABI=0
%PROD_CFLAGS    -O3 -DBOOST_DISABLE_ASSERTS
%DEV_CFLAGS     -g -O2
%DEBUG_CFLAGS   -g

%BASE_FFLAGS    -D__NONE__ -ffree-line-length-none
%PROD_FFLAGS    -O3
%DEV_FFLAGS     -g -O2
%DEBUG_FFLAGS   -g

%BASE_INC       -D__NONE__
%BASE_LD        -lstdc++

%CPP            cpp
%FPP            cpp -P
%MAKE           gmake
    • Creation of 'path' compilation environtment file for DCAO_gfortran
$ vim ../modeles/XIOS/arch/arch-DCAO_gfortran.path
    • values:
NETCDF_INCDIR="-I $NETCDF_INC_DIR"
NETCDF_LIBDIR="-L $NETCDF_LIB_DIR"
NETCDF_LIB="-lnetcdff -lnetcdf"

MPI_INCDIR=""
MPI_LIBDIR=""
MPI_LIB="-lcurl"

HDF5_INCDIR="-I $HDF5_INC_DIR"
HDF5_LIBDIR="-L $HDF5_LIB_DIR"
HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz"

#OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1"
#OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib"
#OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu"
    • Creation of 'env' compilation environtment file for DCAO_gfortran
$ vim ../modeles/XIOS/arch/arch-DCAO_gfortran.env
    • values:
export HDF5_INC_DIR=/usr/include
export HDF5_LIB_DIR=/usr/lib/x86_64-linux-gnu

export NETCDF_INC_DIR=/usr/include
export NETCDF_LIB_DIR=/usr/lib/x86_64-linux-gnu

ORCHIDEE

    • Creation of 'fcm' compilation environtment file for DCAO_gfortran
$ vim ../modeles/ORCHIDEE/arch/arch-DCAO_gfortran.fcm
    • values:
%COMPILER            /usr/bin/mpicc
%LINK                /usr/bin/mpif90
%AR                  ar
%MAKE                make
%FPP_FLAGS           -P -C -traditional -nostdinc
%FPP_DEF
%BASE_FFLAGS         -fdefault-real-8
%PROD_FFLAGS         -O3 -funroll-all-loops
%DEV_FFLAGS          -O
%DEBUG_FFLAGS        -ffpe-trap=invalid,zero,overflow -Wall -fbounds-check -g3 -O0 -fstack-protector-all
%MPI_FFLAGS
%OMP_FFLAGS          -openmp -openmp-threadprivate compat
%BASE_LD
%MPI_LD
%OMP_LD              -openmp
    • Creation of 'path' compilation environtment file for DCAO_gfortran
$ vim ../modeles/ORCHIDEE/arch/arch-DCAO_gfortran.path
    • values:
NETCDF_INCDIR="-I/usr/include"
NETCDF_LIBDIR="-L/usr/lib/x86_64-linux-gnu"
NETCDF_LIB="-lnetcdf -lnetcdff"

IOIPSL_INCDIR="-I${ORCHDIR}/../../lib -I${ORCHDIR}/../IOIPSL/inc"
IOIPSL_LIBDIR="-L${ORCHDIR}/../../lib -L${ORCHDIR}/../IOIPSL/lib"
IOIPSL_LIB="-lioipsl"

XIOS_INCDIR="-I${ORCHDIR}/../XIOS/inc"
XIOS_LIBDIR="-L${ORCHDIR}/../XIOS/lib"
XIOS_LIB="-lxios"

Building & compiling

    • Going back to util to proceed
$ cd ../../../util
    • Installing the code:
$ ./ins_make -t DCAO_gfortran >& run_ins_make.log
    • Going there:
$ cd ../config/ORCHIDEE_OL
    • No need to loading the right environment since in hydra its by default
    • Compiling XIOS in sequential (in Makefile, adding no-parallel compilation):
./make_xios --netcdf_lib netcdf4_seq (...)
    • Compiling (we must compile without XIOS, otherwise it is not working):
$ gmake without_xios >& run_gmake.log
    • Checking if everything went fine:
$ cat -n run_gmake.log | grep Error
$ cat -n run_gmake.log | grep undefined
$ ls ../../bin/ 
orchideedriver orchidee_ol 
Herramientas personales