Changeset 4871
- Timestamp:
- Mar 25, 2024, 10:27:44 AM (8 months ago)
- Location:
- BOL/script_install_amaury
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
BOL/script_install_amaury/install_lmdz.sh
r4862 r4871 38 38 ### Functions 39 39 40 function myget { 41 # A function to fetch files either locally or on the internet 42 43 local file_name=$1 44 # Path on local computer where to look for the datafile 45 if [[ -f "/u/lmdz/WWW/LMDZ/pub/$file_name" ]]; then 46 \cp -f -p "/u/lmdz/WWW/LMDZ/pub/$file_name" . 47 elif [[ -f ~"/LMDZ/pub/$file_name" ]]; then 48 \cp -f -p ~"/LMDZ/pub/$file_name" . 49 else 50 wget --no-check-certificate -nv "http://lmdz.lmd.jussieu.fr/pub/$file_name" 51 fi 40 function myget { # Get a file from LMDZ repository 41 local url=$1 42 43 local filename 44 filename=$(basename "$url") 45 46 wget --no-check-certificate -nv "http://lmdz.lmd.jussieu.fr/pub/$url" 47 if [[ $filename =~ .*\.(ba)?sh ]]; then chmod +x "$filename"; fi 52 48 } 53 49 … … 323 319 \rm "modipsl.$version.tar" 324 320 fi 321 322 if [[ $svn != "" ]]; then 323 mysvn=$svn 324 else 325 mysvn="$(grep 'Revision: [0-9]' "$MODEL"/Read*.md | awk ' { print $2 } ' 2>/dev/null)" 326 fi 327 echo "SVN revision used: $mysvn" 328 } 329 330 function setup_local_arch { 331 # Setup local arch, and correspondance between arch names accross different programs 332 333 case $arch in 334 local) 335 arch_ioipsl="gfortran" 336 arch_xios="local" 337 338 cat <<EOF >"$MODEL/modipsl/modeles/IOIPSL/arch/arch-${arch_ioipsl}.path" # fix bad IOIPSL arch files... 339 NETCDF_INCDIR="\$(nf-config --fflags)" 340 NETCDF_LIBDIR="\$(nf-config --flibs)" 341 EOF 342 ;; 343 *) arch_ioipsl=$arch 344 arch_xios=$arch 345 esac 325 346 } 326 347 … … 405 426 echo "Compiling IOIPSL, the interface library with Netcdf $(date) (log: $ioipsllog)" 406 427 407 if ! ./makeioipsl_fcm - job 8 > "$ioipsllog" 2>&1; then428 if ! ./makeioipsl_fcm -arch "$arch_ioipsl" -job 8 > "$ioipsllog" 2>&1; then 408 429 echo "IOIPSL compile failed, exiting"; exit 1 409 430 fi … … 413 434 } 414 435 436 function install_XIOS { 437 if [[ $with_xios = "y" && ! -f "$MODEL/modipsl/modeles/XIOS/lib/libxios.a" ]]; then 438 cd "$MODEL/modipsl/modeles" 439 xioslog="$(pwd)/xios.log" 440 echo "##########################################################" 441 echo "Compiling XIOS (log $xioslog) $(date)" 442 echo "##########################################################" 443 myget script_install/install_xios.bash 444 445 if ! ./install_xios.bash -prefix "$MODEL/modipsl/modeles" -arch "$arch_xios" > "$xioslog" 2>&1; then 446 echo "XIOS compilation failed, exiting"; exit 1 447 fi 448 449 echo "Compiled XIOS $(date)" 450 fi 451 } 452 415 453 echo "install_lmdz.sh DEBUT $(date)" 416 454 … … 419 457 check_available_software 420 458 download_model 459 setup_local_arch 421 460 install_netcdf 422 461 install_IOIPSL 462 install_XIOS 463 464 exit 0 423 465 424 466 … … 562 604 563 605 564 if [[ "$with_xios" = "y" ]]; then565 echo '##########################################################'566 echo 'Compiling XIOS'567 echo '##########################################################'568 cd "$MODEL/modipsl/modeles"569 xioslog="$(pwd)/xios.log"570 #wget http://www.lmd.jussieu.fr/~lmdz/Distrib/install_xios.bash571 myget script_install/install_xios.bash572 chmod u=rwx install_xios.bash573 # following will be recalculated later on once LMDZ is updated574 # mysvn=`svnversion LMDZ | egrep || "[0-9]+" 2>/dev/null`575 mysvn=$(grep 'Revision: [0-9]' "$MODEL"/Read*.md | awk ' { print $2 } ' 2>/dev/null)576 if [[ $svn != "" ]]; then mysvn=$svn; fi577 echo "mysvn $mysvn"578 579 if [[ ${hostname:0:5} = jean- ]]; then580 if [[ $mysvn -ge 4619 ]]; then581 svn co http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.6 XIOS582 else583 svn co http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.5 XIOS584 fi585 cd XIOS/arch586 svn update587 cd ..588 echo "Compiling XIOS, start $(date) (it takes about 20 min on Jean-Zay)"589 echo "log file: $xioslog"590 ./make_xios --prod --arch $arch --job 4 > xios.log 2>&1591 else592 ./install_xios.bash -prefix "$MODEL/modipsl/modeles" \593 -netcdf "$ncdfdir" -hdf5 "$ncdfdir" \594 -MPI "$root_mpi" -arch $arch > xios.log 2>&1595 fi # of case Jean-Zay596 if [[ -f XIOS/lib/libxios.a ]]; then597 echo "XIOS library successfully generated"598 echo install_lmdz.sh XIOS_OK "$(date)"599 fi600 fi601 602 606 #============================================================================ 603 607 veget_version=false 604 if [[ "$veget"!= 'NONE' ]]; then608 if [[ $veget != 'NONE' ]]; then 605 609 cd "$MODEL/modipsl/modeles/ORCHIDEE" 606 610 set +e; svn upgrade; set -e 607 if [[ "$veget"= "CMIP6" ]]; then611 if [[ $veget = "CMIP6" ]]; then 608 612 veget_version=orchidee2.0 609 613 orchidee_rev=6592 … … 652 656 # Pour les experts qui voudraient changer de version d'orchidee. 653 657 # Attention : necessite d'avoir le password pour orchidee 654 655 # Correctif suite debug Jean-Zay656 if [[ -f src_global/time.f90 ]]; then657 sed -i -e 's/CALL tlen2itau/\!CALL tlen2itau/' src_global/time.f90658 fi659 658 ################################################################### 660 659 if [[ "$veget_version" == "false" ]]; then -
BOL/script_install_amaury/install_xios.bash
r4782 r4871 1 #!/bin/bash 2 ######################################################################### 3 # Defaults 4 ######################################################################### 5 hostname=`hostname` 6 install_dir=$(pwd) 7 netcdf_home="/usr/local/netcdf" 8 hdf5_home="/usr/local/hdf5" 9 if [ -d /usr/lib64/openmpi ] ; then 10 mpi_home="/usr/lib64/openmpi" 11 else 12 mpi_home="/usr" 13 fi 14 arch="local" 15 #xios_branch="trunk" 16 xios_branch="2.6" 17 #xios_rev="HEAD" 18 xios_rev="2568" 1 #!/bin/bash 2 set -e -u # exit on most (not all!) error codes, and error on unset variables 19 3 20 ######################################################################### 21 # Options 22 ######################################################################### 23 while (($# > 0)) 24 do 25 case $1 in 26 "-h") cat <<........fin 27 $0 [ -prefix path ] where (path) to install 28 (default: $install_dir) 29 [ -netcdf path ] top directory of the netcdf library 30 (default: $netcdf_home) 31 [ -hdf5 path ] top directory of the hdf5 library 32 (default: $hdf5_home) 33 [ -MPI path ] top directory of the MPI library 34 (default: $mpi_home) 35 [ -branch branch] XIOS branch trunk|2.5|2.6 36 (default: $xios_branch) 37 [ -rev number ] XIOS revision 38 (default: $xios_rev) 39 [ -arch ARCH ] Use ARCH file (provided by XIOS) 40 (default: make/use a local arch file) 41 ........fin 42 exit ;; 43 "-prefix") install_dir=$2 ; shift ; shift ;; 44 "-netcdf") netcdf_home=$2 ; shift ; shift ;; 45 "-hdf5" ) hdf5_home=$2 ; shift ; shift ;; 46 "-MPI") mpi_home=$2 ; shift ; shift ;; 47 "-branch") xios_branch=$2 ; shift ; shift ;; 48 "-rev") xios_rev=$2 ; shift ; shift ;; 49 "-arch") arch=$2 ; shift ; shift ;; 50 *) echo "Error, bad argument $1" ; $0 -h ; exit 51 esac 52 done 4 # Installs xios 5 # Rewritten 02/2024 A. Barral 53 6 54 # Install directory (get full path) 55 mkdir -p $install_dir 56 install_dir=$(cd $install_dir ; pwd -P)7 function read_args { 8 ## Defaults 9 install_dir=$(pwd) 57 10 58 # Download XIOS 59 case $xios_branch in 60 "trunk") 61 xios_http="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk" ;; 62 "2.5") 63 xios_http="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-2.5" ;; 64 "2.6") 65 xios_http="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.6" ;; 66 *) 67 echo "Error, bad argument for -branch ! Did not expect $xios_branch" ; exit ;; 68 esac 11 xios_branch="2.6" 12 xios_rev="2568" 13 arch="local" 14 make_j="8" 15 # Not inputs 16 hdf5_home=$(dirname "$(dirname "$(readlink -f "$(which h5pcc)")")") 17 mpi_home=$(dirname "$(dirname "$(readlink -f "$(which mpif90)")")") 69 18 70 cd $install_dir 71 svn co --revision $xios_rev $xios_http XIOS 19 while (($# > 0)); do 20 case $1 in 21 "-h") cat <<eof 22 $0 [ -prefix path ] where (path) to install (default: $install_dir) 23 [ -branch branch] XIOS branch trunk|2.5|2.6 (default: $xios_branch) 24 [ -rev number ] XIOS revision (default: $xios_rev) 25 [ -arch ARCH ] Use ARCH file (provided by XIOS) (default: make/use a local arch file) 26 [ -make_j N ] Number of procs for compilation 27 eof 28 exit;; 29 "-prefix") install_dir=$2; shift; shift;; 30 "-branch") xios_branch=$2; shift; shift;; 31 "-rev") xios_rev=$2; shift; shift;; 32 "-arch") arch=$2; shift; shift;; 33 "-make_j") make_j=$2; shift; shift;; 34 *) echo "Error, bad argument $1"; $0 -h; exit 35 esac 36 done 37 } 72 38 73 # Make arch files, if necesary: 74 if [ "$arch" = "local" ] ; then 75 cd $install_dir/XIOS/arch 76 # arch-local.env 77 echo 'export MPI_LIB="-L'${mpi_home}'/lib -lmpi"' > arch-local.env 78 echo '' >> arch-local.env 79 echo 'export NETCDFC='${netcdf_home} >> arch-local.env 80 echo 'export NETCDFC_LIB=$NETCDFC/lib' >> arch-local.env 81 echo 'export NETCDFC_INC=$NETCDFC/include' >> arch-local.env 82 echo '' >> arch-local.env 83 echo 'export NETCDFF='${netcdf_home} >> arch-local.env 84 echo 'export NETCDFF_LIB=$NETCDFF/lib' >> arch-local.env 85 echo 'export NETCDFF_INC=$NETCDFF/include' >> arch-local.env 86 echo '' >> arch-local.env 87 echo 'export NETCDFCXX='${netcdf_home} >> arch-local.env 88 echo 'export NETCDFCXX_LIB=$NETCDFCXX/lib' >> arch-local.env 89 echo 'export NETCDFCXX_INC=$NETCDFCXX/include' >> arch-local.env 39 function download_xios { 40 # Install directory (get full path) 41 mkdir -p "$install_dir" 42 install_dir=$(cd "$install_dir" || exit 1; pwd -P) 90 43 91 # arch-local.fcm 92 echo '%CCOMPILER '${mpi_home}'/bin/mpicc' > arch-local.fcm 93 echo '%FCOMPILER '${mpi_home}'/bin/mpif90' >> arch-local.fcm 94 echo '%LINKER '${mpi_home}'/bin/mpif90' >> arch-local.fcm 95 echo '' >> arch-local.fcm 96 if [ ${hostname:0:5} = cicla ] ; then 97 echo '%BASE_CFLAGS -w -ansi' >> arch-local.fcm 98 else 99 echo '%BASE_CFLAGS -w -std=c++11 -D__XIOS_EXCEPTION' >> arch-local.fcm 100 fi 101 echo '%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS' >> arch-local.fcm 102 echo '%DEV_CFLAGS -g -O2' >> arch-local.fcm 103 echo '%DEBUG_CFLAGS -g -DBZ_DEBUG' >> arch-local.fcm 104 echo '' >> arch-local.fcm 105 echo '%BASE_FFLAGS -D__NONE__ -ffree-line-length-none' >> arch-local.fcm 106 echo '%PROD_FFLAGS -O3' >> arch-local.fcm 107 echo '%DEV_FFLAGS -g -O2' >> arch-local.fcm 108 echo '%DEBUG_FFLAGS -g' >> arch-local.fcm 109 echo '' >> arch-local.fcm 110 echo '%BASE_INC -D__NONE__' >> arch-local.fcm 111 echo '%BASE_LD -lstdc++ -Wl,-rpath='${mpi_home}'/lib' >> arch-local.fcm 112 echo '' >> arch-local.fcm 113 echo '%CPP '${mpi_home}'/bin/mpicc -EP' >> arch-local.fcm 114 echo '%FPP cpp -P' >> arch-local.fcm 115 echo '%MAKE make' >> arch-local.fcm 44 local xios_http 45 case $xios_branch in 46 "trunk") xios_http="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk";; 47 "2.5") xios_http="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-2.5";; 48 "2.6") xios_http="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.6";; 49 *) echo "Error, bad argument for -branch ! Did not expect $xios_branch"; exit 1;; 50 esac 116 51 117 # arch-local.path 118 echo 'NETCDF_INCDIR="-I${NETCDFC_INC} -I${NETCDFF_INC} -I${NETCDFCXX_INC} "' > arch-local.path 119 echo 'NETCDF_LIBDIR="-L${NETCDFC_LIB} -L${NETCDFF_LIB} -L${NETCDFCXX_LIB} "' >> arch-local.path 120 echo 'NETCDF_LIB="-lnetcdf -lnetcdff -lnetcdf_c++4"' >> arch-local.path 121 echo 'HDF5_INCDIR="-I'${hdf5_home}'/include"' >> arch-local.path 122 echo 'HDF5_LIBDIR="-L'${hdf5_home}'/lib"' >> arch-local.path 123 echo 'HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz -lcurl"' >> arch-local.path 124 fi 52 cd "$install_dir" || exit 1 53 svn co --revision "$xios_rev" "$xios_http" XIOS 54 } 125 55 126 # make XIOS 127 cd $install_dir/XIOS 128 ./make_xios --arch $arch --job 8 2>&1 | tee make_xios.out 56 function create_local_arch { 57 cd "$install_dir/XIOS/arch" || exit 1 129 58 59 cat <<eof > arch-local.env 60 export MPI_LIB="-L${mpi_home}/lib -lmpi" 61 62 export NETCDFC_INC="\$(nc-config --includedir)" 63 export NETCDFC_LIB="\$(nc-config --libdir)" 64 65 export NETCDFF_INC="\$(nf-config --includedir)" 66 export NETCDFF_LIB="\$(nf-config --prefix)/lib" 67 68 export NETCDFCXX_INC="\$(ncxx4-config --includedir)" 69 export NETCDFCXX_LIB="\$(ncxx4-config --libdir)" 70 eof 71 72 cat <<eof > arch-local.fcm 73 %CCOMPILER "$(which mpicc)" 74 %FCOMPILER "$(which mpif90)" 75 %LINKER "$(which mpif90)" 76 77 %BASE_CFLAGS -w -std=c++11 -D__XIOS_EXCEPTION 78 %PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS 79 %DEV_CFLAGS -g -O2 80 %DEBUG_CFLAGS -g -DBZ_DEBUG 81 82 %BASE_FFLAGS -D__NONE__ -ffree-line-length-none 83 %PROD_FFLAGS -O3 84 %DEV_FFLAGS -g -O2 85 %DEBUG_FFLAGS -g 86 87 %BASE_INC -D__NONE__ 88 %BASE_LD -lstdc++ -Wl,-rpath=${mpi_home}/lib 89 90 %CPP $(which mpicc) -EP 91 %FPP cpp -P 92 %MAKE make 93 eof 94 cat <<eof > arch-local.path 95 NETCDF_INCDIR="-I\${NETCDFC_INC} -I\${NETCDFF_INC} -I\${NETCDFCXX_INC}" 96 NETCDF_LIBDIR="-L\${NETCDFC_LIB} -L\${NETCDFF_LIB} -L\${NETCDFCXX_LIB}" 97 NETCDF_LIB="-lnetcdf -lnetcdff -lnetcdf_c++4" 98 99 HDF5_INCDIR="-I${hdf5_home}/include" 100 HDF5_LIBDIR="-L${hdf5_home}/lib" 101 HDF5_LIB="-lhdf5_hl -lhdf5 -lz -lcurl" 102 eof 103 } 104 105 function make_xios { 106 cd "$install_dir/XIOS" 107 echo "Compiling xios, see $(pwd)/make_xios.out" 108 ./make_xios --arch "$arch" --job "$make_j" >make_xios.out 2>&1 109 } 110 111 read_args "$@" 112 download_xios 113 if [[ $arch = "local" ]]; then create_local_arch; fi 114 make_xios 115
Note: See TracChangeset
for help on using the changeset viewer.