欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:CESM2.1.3 移植記錄

柚子快報(bào)邀請(qǐng)碼778899分享:CESM2.1.3 移植記錄

http://yzkb.51969.com/

前言

這次是在學(xué)院超算上配置cesm的運(yùn)行環(huán)境,由于有上一次的記錄:CESM移植記錄 可以參考,同時(shí)由于多次安裝相比以前對(duì)cesm需求的環(huán)境又有了更深的認(rèn)識(shí),因此更新一下之前的記錄,補(bǔ)充之前比較模糊的一些細(xì)節(jié)。

這次用到的編譯器的并行運(yùn)算是超算上自帶的,因此直接導(dǎo)入就行,不需要自己安裝。 編譯器:intel編譯器 并行運(yùn)算:mpi

module load compiler/2021.3.0

module load mpi/2021.3.0

安裝包存放路徑是 /share/home/dq060/install_software/install_cesm/ 安裝目錄是 /share/home/dq060/software/libcesm/ 源代碼存放目錄是 /share/home/dq060/model/cesm 其中,/share/home/dq060 是我賬號(hào)的home目錄,請(qǐng)自行進(jìn)行替換。

軟件安裝

注意:在安裝之前可能需要退出anaconda的虛擬環(huán)境,我在安裝時(shí)遇到過(guò)由于(似乎)存在python3的問(wèn)題導(dǎo)致perl的一些模塊和cmake的安裝失敗 另注:以前安裝時(shí)以為git和svn是必須的,因此花了很多時(shí)間安裝svn,但后來(lái)發(fā)現(xiàn)git和svn只是用來(lái)下載cesm的源碼的,如果已經(jīng)有完整源碼了,就無(wú)需安裝這兩個(gè)軟件了,在最后把我下載好的4個(gè)版本的cesm源碼打包分享出來(lái),只要直接解壓就可以用了。

1. perl5

perl5 這次的安裝與之前有較多的補(bǔ)充,為了區(qū)分,把 perl5 的版本升級(jí)成了 5.36.1,安裝包可以自行在GitHub下載,或者用回之前的版本也行,改改腳本里的版本號(hào)就可以了。

01_perl5.sh

export CC=icc

export CXX=icpc

export CPP='icc -E'

export CXXCPP='icpc -E'

export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CPPFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export F77=ifort

export FC=ifort

export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export FCLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

DIR=/share/home/dq060/software/libcesm/perl5

tar -xvf perl-5.36.1.tar.gz

cd perl-5.36.1

./Configure -des -Dusethreads -Dprefix=${DIR}

make

make test

make install

安裝好了之后在 ~/.bashrc 中直接配置包括perl5在內(nèi)的環(huán)境變量,這樣之后安裝完其他軟件之后就無(wú)需重復(fù) source ~/.bashrc 了,環(huán)境變量可參考最后的 env_cesm.sh 。不提前配置是因?yàn)榘惭bperl5時(shí)如果存在 CPATH 變量會(huì)導(dǎo)致循環(huán)include帶來(lái)的異常

# perl5

export PATH=/share/home/dq060/software/libcesm/perl5/bin:$PATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/perl5/lib:$LIBRARY_PATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/perl5/lib:$LD_LIBRARY_PATH

用 perl --version 驗(yàn)證

This is perl 5, version 36, subversion 1 (v5.36.1) built for x86_64-linux-thread-multi

Copyright 1987-2023, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the

GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on

this system using "man perl" or "perldoc perl". If you have access to the

Internet, point your browser at https://www.perl.org/, the Perl Home Page.

相比上次的補(bǔ)充 cesm 運(yùn)行必須的perl模塊有 Alien::LibXML、 Alien::Libxml2、 XML::LibXML,需要提前裝好,否則之后開(kāi)始編譯 cesm 的 case 時(shí),會(huì)報(bào)perl找不到某些模塊的錯(cuò)。 以下過(guò)程需要網(wǎng)絡(luò)連接,不需要網(wǎng)絡(luò)的安裝過(guò)程我自己試了一半就放棄了,太麻煩了

# 以下命令查看安裝了哪些模塊,可用來(lái)前后對(duì)照

# find `perl -e 'print "@INC"'` -name '*.pm' -print

# find `perl -e 'print "@INC"'` -name '*.pm' -print | grep XML

##############能聯(lián)網(wǎng)情況

# 利用cpan直接安裝Alien::LibXML,會(huì)自動(dòng)下載安裝所有依賴(lài)模塊

cpan install Alien::LibXML

cpan install Alien::Libxml2

# XML::LibXML依賴(lài)于 XML::SAX

cpan install XML::SAX

# 手動(dòng)安裝XML::LibXML,因?yàn)槲疫@里35huge_mode的test不通過(guò),通過(guò)修改35huge_mode.t使其跳過(guò)該項(xiàng)測(cè)試,最終編譯結(jié)果不影響使用,或者在make之后直接make install

tar -xvf XML-LibXML-2.0208.tar.gz

cd XML-LibXML-2.0208

perl Makefile.PL

make

# 修改35huge_mode.t

# 把其中

# if (XML::LibXML::LIBXML_VERSION() < 20700) {

# plan skip_all => "XML_PARSE_HUGE option not supported for libxml2 < 2.7.0";

# }

# else {

# plan tests => 5;

# }

# 改為

# plan skip_all => "skip this test";

# 繼續(xù)進(jìn)行test和install

make test

make install

如果不聯(lián)網(wǎng),需要自己在cpan官網(wǎng)下對(duì)應(yīng)模塊的安裝包,再一個(gè)個(gè)手動(dòng)編譯安裝,折騰了一下午,發(fā)現(xiàn)才只裝了一半,而且發(fā)現(xiàn)中途某個(gè)包的 make test 似乎仍然需要聯(lián)網(wǎng),所以直接放棄了,不過(guò)大致需要的前置模塊如下所示,可以參考一下:

##############不能聯(lián)網(wǎng)情況

# 依次安裝

# inc::latest

cd ..

tar -xvf inc-latest-0.500.tar.gz

cd inc-latest-0.500

perl Makefile.PL

make

make test

make install

# MRO::Compat

cd ..

tar -xvf MRO-Compat-0.15.tar.gz

cd MRO-Compat-0.15

perl Makefile.PL

make

make test

make install

# Params::Util

cd ..

tar -xvf Params-Util-1.102.tar.gz

cd Params-Util-1.102

perl Makefile.PL

make

make test

make install

# Sub::Install

cd ..

tar -xvf Sub-Install-0.929.tar.gz

cd Sub-Install-0.929

perl Makefile.PL

make

make test

make install

# Data::OptList

cd ..

tar -xvf Data-OptList-0.114.tar.gz

cd Data-OptList-0.114

perl Makefile.PL

make

make test

make install

# Sub::Exporter

cd ..

tar -xvf Sub-Exporter-0.989.tar.gz

cd Sub-Exporter-0.989

perl Makefile.PL

make

make test

make install

# Capture::Tiny

cd ..

tar -xvf Capture-Tiny-0.48.tar.gz

cd Capture-Tiny-0.48

perl Makefile.PL

make

make test

make install

# Test::FailWarnings

cd ..

tar -xvf Test-FailWarnings-0.008.tar.gz

cd Test-FailWarnings-0.008

perl Makefile.PL

make

make test

make install

# Data::Section

cd ..

tar -xvf Data-Section-0.200008.tar.gz

cd Data-Section-0.200008

perl Makefile.PL

make

make test

make install

# Test::More::UTF8

cd ..

tar -xvf Test-More-UTF8-0.05.tar.gz

cd Test-More-UTF8-0.05

perl Makefile.PL

make

make test

make install

# Test::Warnings

cd ..

tar -xvf Test-Warnings-0.031.tar.gz

cd Test-Warnings-0.031

perl Makefile.PL

make

make test

make install

# Text::Template

cd ..

tar -xvf Text-Template-1.61.tar.gz

cd Text-Template-1.61

perl Makefile.PL

make

make test

make install

# Try::Tiny

cd ..

tar -xvf Try-Tiny-0.31.tar.gz

cd Try-Tiny-0.31

perl Makefile.PL

make

make test

make install

# Software::License

cd ..

tar -xvf Software-License-0.104004.tar.gz

cd Software-License-0.104004

perl Makefile.PL

make

make test

make install

# Module::Build

cd ..

perl Makefile.PL

make

make test

make install

# Importer

cd ..

tar -xvf Importer-0.026.tar.gz

cd Importer-0.026

perl Makefile.PL

make

make test

make install

# Term::Table

cd ..

tar -xvf Term-Table-0.016.tar.gz

cd Term-Table-0.016

perl Makefile.PL

make

make test

make install

# Test2::V0

cd ..

tar -xvf Test2-Suite-0.000155.tar.gz

cd Test2-Suite-0.000155

perl Makefile.PL

make

make test

make install

# Test::Fatal

cd ..

tar -xvf Test-Fatal-0.017.tar.gz

cd Test-Fatal-0.017

perl Makefile.PL

make

make test

make install

# Test::Needs

cd ..

tar -xvf Test-Needs-0.002010.tar.gz

cd Test-Needs-0.002010

perl Makefile.PL

make

make test

make install

# URI::file

cd ..

tar -xvf URI-5.19.tar.gz

cd URI-5.19

perl Makefile.PL

make

make test

make install

# File::chdir

cd ..

tar -xvf File-chdir-0.1011.tar.gz

cd File-chdir-0.1011

perl Makefile.PL

make

make test

make install

# Sort::Versions

tar -xvf Sort-Versions-1.62.tar.gz

cd Sort-Versions-1.62

perl Makefile.PL

make

make test

make install

# Path::Tiny

cd ..

tar -xvf Path-Tiny-0.144.tar.gz

cd Path-Tiny-0.144

perl Makefile.PL

make

make test

make install

# Archive::Extract

cd ..

tar -xvf Archive-Extract-0.88.tar.gz

cd Archive-Extract-0.88

perl Makefile.PL

make

make test

make install

# File::Which

cd ..

tar -xvf File-Which-1.27.tar.gz

cd File-Which-1.27

perl Makefile.PL

make

make test

make install

# FFI::CheckLib

cd ..

tar -xvf FFI-CheckLib-0.31.tar.gz

cd FFI-CheckLib-0.31

perl Makefile.PL

make

make test

make install

# Alien::Base

cd ..

tar -xvf Alien-Build-2.80.tar.gz

cd Alien-Build-2.80

perl Makefile.PL

make

make test

make install

# Shell::Guess

cd ..

tar -xvf Shell-Guess-0.09.tar.gz

cd Shell-Guess-0.09

perl Makefile.PL

make

make test

make install

# Shell::Config::Generate

cd ..

tar -xvf Shell-Config-Generate-0.34.tar.gz

cd Shell-Config-Generate-0.34

perl Makefile.PL

make

make test

make install

# Alien::Base::ModuleBuild

cd ..

tar -xvf Alien-Base-ModuleBuild-1.17.tar.gz

cd Alien-Base-ModuleBuild-1.17

perl Build.PL

./Build

./Build test

./Build install

# Alien:LibXML

tar -xvf Alien-LibXML-0.004.tar.gz

cd Alien-LibXML-0.004

perl Build.PL

./Build # 這一步似乎要聯(lián)網(wǎng)下載libxml2,看看后續(xù)怎么改

./Build test

./Build install

# Alien::Build::Plugin::Download::GitLab

cd ..

tar -xvf Alien-Build-Plugin-Download-GitLab-0.01.tar.gz

cd Alien-Build-Plugin-Download-GitLab-0.01

perl Makefile.PL

make

make test

make install

# Mozilla::CA

cd ..

tar -xvf Mozilla-CA-20221114.tar.gz

cd Mozilla-CA-20221114

perl Makefile.PL

make

make test

make install

# Net::SSLeay

cd ..

tar -xvf Net-SSLeay-1.92.tar.gz

cd Net-SSLeay-1.92

# IO::Socket::SSL

cd ..

tar -xvf IO-Socket-SSL-2.083.tar.gz

cd IO-Socket-SSL-2.083

# Alien::Libxml2

cd ..

tar -xvf Alien-Libxml2-0.19.tar.gz

cd Alien-Libxml2-0.19

# XML::LibXML,修改35huge_mode.t使其跳過(guò)該項(xiàng)測(cè)試

cd ..

tar -xvf XML-LibXML-2.0208.tar.gz

cd XML-LibXML-2.0208

==下面的軟件安裝均和以前一樣,不展開(kāi)了,細(xì)節(jié)可參考 CESM移植記錄 ==

2. cmake

02_cmake.sh

export CC=icc

export CXX=icpc

export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export F77=ifort

export FC=ifort

export F90=ifort

export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CPP='icc -E'

export CXXCPP='icpc -E'

DIR=/share/home/dq060/software/libcesm/cmake

tar -xvf cmake-2.8.12.2.tar.gz

cd cmake-2.8.12.2

./bootstrap --prefix=${DIR}

make

make install

配置cmake環(huán)境變量。

# cmake

export PATH=/share/home/dq060/software/libcesm/cmake/bin:$PATH

用 cmake --version 驗(yàn)證

cmake version 2.8.12.2

4. zlib

04_zlib.sh

export CC=icc

export CXX=icpc

export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export F77=ifort

export FC=ifort

export F90=ifort

export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CPP='icc -E'

export CXXCPP='icpc -E'

DIR=/share/home/dq060/software/libcesm/zlib

tar -xvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure --prefix=${DIR}

make

make check

make install

配置 zlib 環(huán)境變量。

# zlib

export CPATH=/share/home/dq060/software/libcesm/zlib/include:$CPATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/zlib/lib:$LIBRARY_PATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/zlib/lib:$LD_LIBRARY_PATH

5. hdf5

05_hdf5.sh

export CC=mpiicc

export CXX=mpiicpc

export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export F77=mpiifort

export FC=mpiifort

export F90=mpiifort

export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CPP='icc -E'

export CXXCPP='icpc -E'

DIR=/share/home/dq060/software/libcesm/hdf5

tar -xvf hdf5-1.10.4.tar.gz

cd hdf5-1.10.4

./configure --with-zlib=/share/home/dq060/software/libcesm/zlib --prefix=${DIR} --enable-fortran --enable-fortran2003 -enable-parallel --with-pic

make

make check

make install

配置 hdf5 環(huán)境變量。

# hdf5

export PATH=/share/home/dq060/software/libcesm/hdf5/bin:$PATH

export CPATH=/share/home/dq060/software/libcesm/hdf5/include:$CPATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/hdf5/lib:$LD_LIBRARY_PATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/hdf5/lib:$LIBRARY_PATH

6. pnetcdf

06_pnetcdf.sh

export CC=mpiicc

export CXX=mpiicpc

export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel -fPIC'

export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel -fPIC'

export F77=mpiifort

export FC=mpiifort

export F90=mpiifort

export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel -fPIC'

export CPP='mpiicc -E'

export CXXCPP='mpiicpc -E'

DIR=/share/home/dq060/software/libcesm/pnetcdf

tar -xvf pnetcdf-1.12.0.tar.gz

cd pnetcdf-1.12.0

./configure --prefix=${DIR} --enable-relax-coord-bound

make

make check

make install

配置 pnetcdf 環(huán)境變量

# pnetcdf

export PATH=/share/home/dq060/software/libcesm/pnetcdf/bin:$PATH

export CPATH=/share/home/dq060/software/libcesm/pnetcdf/include:$CPATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/pnetcdf/lib:$LD_LIBRARY_PATH

export MANPATH=/share/home/dq060/software/libcesm/pnetcdf/share/man:$MANPATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/pnetcdf/lib:$LIBRARY_PATH

7. netcdf-c

07_netcdf_c.sh

export CC=mpiicc

export CXX=mpiicpc

export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export F77=mpiifort

export FC=mpiifort

export F90=mpiifort

export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CPP='icc -E'

export CXXCPP='icpc -E'

export CPPFLAGS='-I/share/home/dq060/software/libcesm/hdf5/include -I/share/home/dq060/software/libcesm/pnetcdf/include'

export LDFLAGS='-L/share/home/dq060/software/libcesm/hdf5/lib -L/share/home/dq060/software/libcesm/pnetcdf/lib'

DIR=/share/home/dq060/software/libcesm/netcdf

tar -xvf netcdf-c-4.7.4.tar.gz

cd netcdf-c-4.7.4

./configure --prefix=${DIR} --enable-pnetcdf --disable-dap

make

make check

make install

配置 netcdf 環(huán)境變量。

# netcdf

export PATH=/share/home/dq060/software/libcesm/netcdf/bin:$PATH

export CPATH=/share/home/dq060/software/libcesm/netcdf/include:$CPATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/netcdf/lib:$LIBRARY_PATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/netcdf/lib:$LD_LIBRARY_PATH

export MANPATH=/share/home/dq060/software/libcesm/netcdf/share/man:$MANPATH

用 nc-config --all 驗(yàn)證

This netCDF 4.7.4 has been built with the following features:

--cc -> mpiicc

--cflags -> -I/share/home/dq060/software/libcesm/netcdf/include -I/share/home/dq060/software/libcesm/hdf5/include -I/share/home/dq060/software/libcesm/pnetcdf/include

--libs -> -L/share/home/dq060/software/libcesm/netcdf/lib -lnetcdf

--static -> -lpnetcdf -lhdf5_hl -lhdf5 -lm -lz

--has-c++ -> no

--cxx ->

--has-c++4 -> no

--cxx4 ->

--has-fortran -> yes

--fc -> mpiifort

--fflags -> -I/share/home/dq060/software/libcesm/netcdf/include -I/share/home/dq060/software/libcesm/netcdf/include

--flibs -> -L/share/home/dq060/software/libcesm/netcdf/lib -lnetcdff

--has-f90 ->

--has-f03 -> yes

--has-dap -> no

--has-dap2 -> no

--has-dap4 -> no

--has-nc2 -> yes

--has-nc4 -> yes

--has-hdf5 -> yes

--has-hdf4 -> no

--has-logging -> no

--has-pnetcdf -> yes

--has-szlib -> no

--has-cdf5 -> yes

--has-parallel4 -> yes

--has-parallel -> yes

--prefix -> /share/home/dq060/software/libcesm/netcdf

--includedir -> /share/home/dq060/software/libcesm/netcdf/include

--libdir -> /share/home/dq060/software/libcesm/netcdf/lib

--version -> netCDF 4.7.4

8. netcdf-fortran

注意,兩個(gè)要裝在同一目錄下 參數(shù)中除了之前的 hdf5 和 pnetcdf 外,還要帶上上一步的 netcdf-c。

08_netcdf_f.sh

export CC=mpiicc

export CXX=mpiicpc

export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export F77=mpiifort

export FC=mpiifort

export F90=mpiifort

export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CPP='icc -E'

export CXXCPP='icpc -E'

export CFLAGS=$(nc-config --cflags)

export CPPFLAGS='-I/share/home/dq060/software/libcesm/netcdf/include -I/share/home/dq060/software/libcesm/hdf5/include -I/share/home/dq060/software/libcesm/pnetcdf/include'

export LDFLAGS='-L/share/home/dq060/software/libcesm/netcdf/lib -L/share/home/dq060/software/libcesm/hdf5/lib -L/share/home/dq060/software/libcesm/pnetcdf/lib'

DIR=/share/home/dq060/software/libcesm/netcdf

tar -xvf netcdf-fortran-4.5.3.tar.gz

cd netcdf-fortran-4.5.3

./configure --prefix=${DIR} --enable-pnetcdf

make

make check

make install

驗(yàn)證 nf-config --all

This netCDF-Fortran 4.5.3 has been built with the following features:

--cc -> mpiicc

--cflags -> -I/share/home/dq060/software/libcesm/netcdf/include -I/share/home/dq060/software/libcesm/netcdf/include -I/share/home/dq060/software/libcesm/hdf5/include -I/share/home/dq060/software/libcesm/pnetcdf/include

--fc -> mpiifort

--fflags -> -I/share/home/dq060/software/libcesm/netcdf/include -I/share/home/dq060/software/libcesm/netcdf/include

--flibs -> -L/share/home/dq060/software/libcesm/netcdf/lib -lnetcdff

--has-f90 ->

--has-f03 -> yes

--has-nc2 -> yes

--has-nc4 -> yes

--prefix -> /share/home/dq060/software/libcesm/netcdf

--includedir-> /share/home/dq060/software/libcesm/netcdf/include

--version -> netCDF-Fortran 4.5.3

9. lapack blas

這兩個(gè)是線(xiàn)性代數(shù)的計(jì)算包。 blas包含在lapack的安裝包內(nèi),但默認(rèn)不編譯,所以要修改 Makefile 文件讓它編譯。 如下面注釋所示,然后通過(guò) make 安裝,再進(jìn)入到LAPACKE文件夾中再 make 一次,最后把產(chǎn)生的 .h 文件和 .a 文件都放到安裝目錄里面就可以了。

09_lapack_blas.sh

export CC=icc

export CXX=icpc

export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export F77=ifort

export FC=ifort

export F90=ifort

export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'

export CPP='icc -E'

export CXXCPP='icpc -E'

DIR=/share/home/dq060/software/libcesm/lapack

tar -xvf lapack-3.10.1.tar.gz

cd lapack-3.10.1

cp INSTALL/make.inc.ifort make.inc

# 修改Makefile文件使其編譯blas

sed -i '12s/^/#/g' Makefile

sed -i '13s/#//g' Makefile

# /*******************************************************************

# .PHONY: lib

# lib: lapacklib tmglib

# #lib: blaslib variants lapacklib tmglib

# 變成

# .PHONY: lib

# #lib: lapacklib tmglib

# lib: blaslib variants lapacklib tmglib

# *******************************************************************/

make

cd LAPACKE

make

mkdir ${DIR}

mkdir ${DIR}/include

mkdir ${DIR}/lib

cp include/*.h ${DIR}/include/

cd ..

cp *.a ${DIR}/lib/

make

cd LAPACKE

make

mkdir ${DIR}

mkdir ${DIR}/include

mkdir ${DIR}/lib

cp include/*.h ${DIR}/include/

cd ..

cp *.a ${DIR}/lib/

配置環(huán)境變量

# lapack

export CPATH=/share/home/dq060/software/libcesm/lapack/include:$CPATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/lapack/lib:$LD_LIBRARY_PATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/lapack/lib:$LIBRARY_PATH

10. esmf 同以前一樣,不過(guò)因?yàn)閷?duì)比了兩個(gè)版本 esmf 的不同而修改了下安裝路徑,參考了許多帖子之后還是選擇了比較舊的 esmf 7.1.0

10_esmf.sh

ESMF_HOME=/share/home/dq060/software/libcesm/esmf_7_1_0/esmf-ESMF_7_1_0r

export ESMF_DIR=$ESMF_HOME

export ESMF_COMM=intelmpi

export ESMF_COMPILER=intel

export ESMF_ABI=64

export ESMF_INSTALL_PREFIX=/share/home/dq060/software/libcesm/esmf_7_1_0/install

export ESMF_NETCDF_INCLUDE=/share/home/dq060/software/libcesm/netcdf/include

export ESMF_NETCDF_LIBPATH=/share/home/dq060/software/libcesm/netcdf/lib

export ESMF_NETCDF_LIBS="-lnetcdf -lnetcdff"

export ESMF_CCOMPILER="mpiicc -cc=icc"

export ESMF_CXXCOMPILER=mpiicpc

export ESMF_CXXLINKER=mpiicpc

export ESMF_F90COMPILER=mpiifort

export ESMF_F90LINKER=mpiifort

unzip esmf-ESMF_7_1_0r.zip -d /share/home/dq060/software/libcesm/esmf_7_1_0/

cd $ESMF_DIR

make

make check

make install

配置環(huán)境變量

# esmf

export PATH=/share/home/dq060/software/libcesm/esmf_7_1_0/install/bin/binO/Linux.intel.64.intelmpi.default:$PATH

export CPATH=/share/home/dq060/software/libcesm/esmf_7_1_0/install/include:$CPATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/esmf_7_1_0/install/lib/libO/Linux.intel.64.intelmpi.default:$LD_LIBRARY_PATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/esmf_7_1_0/install/lib/libO/Linux.intel.64.intelmpi.default:$LIBRARY_PATH

cesm環(huán)境

我把 cesm 的運(yùn)行環(huán)境的環(huán)境變量放在軟件安裝目錄下的一個(gè)shell腳本里面,這樣只要每次登錄后 source 一下該腳本即可。 位置: /share/home/dq060/software/libcesm/env_cesm.sh

env_cesm.sh

# compiler and mpi

module load compiler/2021.3.0

module load mpi/2021.3.0

# perl5

export PATH=/share/home/dq060/software/libcesm/perl5/bin:$PATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/perl5/lib:$LIBRARY_PATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/perl5/lib:$LD_LIBRARY_PATH

# cmake

export PATH=/share/home/dq060/software/libcesm/cmake/bin:$PATH

# zlib

export CPATH=/share/home/dq060/software/libcesm/zlib/include:$CPATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/zlib/lib:$LIBRARY_PATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/zlib/lib:$LD_LIBRARY_PATH

# hdf5

export PATH=/share/home/dq060/software/libcesm/hdf5/bin:$PATH

export CPATH=/share/home/dq060/software/libcesm/hdf5/include:$CPATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/hdf5/lib:$LD_LIBRARY_PATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/hdf5/lib:$LIBRARY_PATH

# pnetcdf

export PATH=/share/home/dq060/software/libcesm/pnetcdf/bin:$PATH

export CPATH=/share/home/dq060/software/libcesm/pnetcdf/include:$CPATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/pnetcdf/lib:$LD_LIBRARY_PATH

export MANPATH=/share/home/dq060/software/libcesm/pnetcdf/share/man:$MANPATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/pnetcdf/lib:$LIBRARY_PATH

# netcdf

export PATH=/share/home/dq060/software/libcesm/netcdf/bin:$PATH

export CPATH=/share/home/dq060/software/libcesm/netcdf/include:$CPATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/netcdf/lib:$LIBRARY_PATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/netcdf/lib:$LD_LIBRARY_PATH

export MANPATH=/share/home/dq060/software/libcesm/netcdf/share/man:/$MANPATH

# lapack

export CPATH=/share/home/dq060/software/libcesm/lapack/include:$CPATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/lapack/lib:$LD_LIBRARY_PATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/lapack/lib:$LIBRARY_PATH

# esmf

export PATH=/share/home/dq060/software/libcesm/esmf_7_1_0/install/bin/binO/Linux.intel.64.intelmpi.default:$PATH

export CPATH=/share/home/dq060/software/libcesm/esmf_7_1_0/install/include:$CPATH

export LD_LIBRARY_PATH=/share/home/dq060/software/libcesm/esmf_7_1_0/install/lib/libO/Linux.intel.64.intelmpi.default:$LD_LIBRARY_PATH

export LIBRARY_PATH=/share/home/dq060/software/libcesm/esmf_7_1_0/install/lib/libO/Linux.intel.64.intelmpi.default:$LIBRARY_PATH

cesm源代碼移植

源代碼

我目前使用的cesm版本為 2.1.3,這個(gè)是目前比較穩(wěn)定的版本,注意,某些 compset 和 res 的搭配可能在某個(gè)版本上是可以的,但在更新版本中則要加上 --run-unsupported 這個(gè)標(biāo)簽才能創(chuàng)建 case。

源碼在超算上的路徑: /share/home/dq060/model/cesm/cesm_2.1.3 輸入數(shù)據(jù)在超算上的路徑: /share/home/dq060/model/cesm/inputdata cesm輸出在超算上的路徑:/share/home/dq060/model/cesm/scratch

cesm下載好全部組件的源代碼鏈接:

鏈接:https://pan.baidu.com/s/1M6l-trumaqswWw3JwSs3nA?pwd=aqyj

提取碼:aqyj

配置

然后在自己 home 目錄下新建文件夾 .cime ,將以下三個(gè)配置文件放到這個(gè)目錄下,用來(lái)覆蓋cesm原有的配置,配置文件的含義可以參考上一篇博客,這里只指出一些新的修改和細(xì)節(jié)。

config_machines.xml

test

ln9.*

LINUX

intel

intelmpi

none

$ENV{HOME}/model/cesm/scratch

$ENV{HOME}/model/cesm/inputdata

$ENV{HOME}/model/cesm/inputdata/atm/datm7

$ENV{HOME}/model/cesm/scratch/$CASE

$ENV{HOME}/model/cesm/baselines

$ENV{HOME}/model/cesm/cesm_2.1.3/cime/tools/cprnc

make

8

none

ouzhliang@mail2.sysu.edu.cn

48

48

FALSE

mpirun

-n {{ total_tasks }}

256M

-1

其中, 是機(jī)器的名稱(chēng),可以理解為方便模式識(shí)別的id,主要用于創(chuàng)建case時(shí)指定某種配置。

就是模式輸出的數(shù)據(jù)的存放目錄,這里統(tǒng)一將所有輸出放在 $ENV{HOME}/model/cesm/scratch 這個(gè)目錄下,這里的 $ENV{HOME} 是自適應(yīng)的寫(xiě)法,會(huì)根據(jù)自己的用戶(hù)目錄進(jìn)行替換,以前以為是不能這樣用的,但看了別人的配置文件后學(xué)會(huì)了這么寫(xiě),當(dāng)然更簡(jiǎn)單的是直接用絕對(duì)路徑。

就是模式輸入數(shù)據(jù)的存放目錄,這里統(tǒng)一將所有輸入文件放在 $ENV{HOME}/model/cesm/inputdata 方便不同版本的cesm共同調(diào)用。

就是模式最終輸出數(shù)據(jù)的存放目錄,這里統(tǒng)一將所有輸出放在 $ENV{HOME}/model/cesm/scratch/$CASE 中,$CASE 是創(chuàng)建case時(shí)的名字,模式的輸出會(huì)歸檔到每個(gè)case下面。再詳細(xì)點(diǎn)其實(shí)就是,在模式運(yùn)行過(guò)程中的中間輸出會(huì)暫時(shí)存放在該目錄下的 run 文件夾,一旦運(yùn)行完成,就會(huì)把所有輸出分門(mén)別類(lèi)地移動(dòng)到其他文件夾,如 atm 表示大氣模塊相關(guān)的輸出的存放位置; rest 表示模式重啟所需的重啟動(dòng)文件的存放位置。

就是模式在單個(gè)節(jié)點(diǎn)使用的最大核數(shù),按照超算的數(shù)據(jù)填寫(xiě)即可。

config_compilers.xml

-DLINUX

-fopenmp

-O2

--host=Linux

-O2

/share/apps/lico/intel/oneapi/compiler/2021.3.0/linux/bin/intel64/icc

/share/apps/lico/intel/oneapi/compiler/2021.3.0/linux/bin/intel64/icpc

/share/apps/lico/intel/oneapi/compiler/2021.3.0/linux/bin/intel64/ifort

/share/apps/lico/intel/oneapi/mpi/2021.3.0/bin/mpiicc

/share/apps/lico/intel/oneapi/mpi/2021.3.0/bin/mpiicpc

/share/apps/lico/intel/oneapi/mpi/2021.3.0/bin/mpiifort

/share/home/dq060/software/libcesm/esmf_7_1_0/install/lib/libO/Linux.intel.64.intelmpi.default

/share/apps/lico/intel/oneapi/mpi/2021.3.0/bin

/share/home/dq060/software/libcesm/netcdf

/share/home/dq060/software/libcesm/pnetcdf

-L/share/home/dq060/software/libcesm/netcdf/lib -lnetcdf -lnetcdff -L/share/home/dq060/software/libcesm/hdf5/lib -lhdf5 -lhdf5_hl -L/share/home/dq060/software/libcesm/zlib/lib -lz -L/share/home/dq060/software/libcesm/lapack/lib -llapack

其中, 的這些標(biāo)簽分別指各編譯器的執(zhí)行路徑,這里可以直接用命令而不用給出完整路徑,不過(guò)我為了穩(wěn)妥一點(diǎn)還是用完整路徑了。

ESMF_LIBDIR 指 esmf 的動(dòng)態(tài)鏈接庫(kù)的目錄,這個(gè)標(biāo)簽十分重要,錯(cuò)誤的話(huà)會(huì)導(dǎo)致cesm運(yùn)行時(shí)報(bào)錯(cuò)。

里相比上次刪掉了 -mkl 因?yàn)榘l(fā)現(xiàn)超算上的intel編譯器似乎沒(méi)有 mkl 這個(gè)功能(我也不是很動(dòng)這個(gè)),報(bào)錯(cuò)了好幾次,所以直接刪掉不添加了。

注意:以上 等標(biāo)簽不要分行寫(xiě),即,不要寫(xiě)成

/share/apps/lico/intel/oneapi/compiler/2021.3.0/linux/bin/intel64/icc

不然會(huì)在編譯過(guò)程中會(huì)報(bào)錯(cuò)在make文件里發(fā)現(xiàn)了不合適的分隔符,原因就是這里的換行符也會(huì)被直接傳進(jìn)去make文件里

config_batchs.xml 自己用命令提交超算作業(yè),所以這里設(shè)置為空白。

結(jié)語(yǔ)

因?yàn)樽罱谂?WACCM-X 的原因,重裝了cesm很多次來(lái)排查問(wèn)題,所以安裝基本上能碰到的坑都踩了一遍了,這次也正好記錄下來(lái)供大家參考一下。csdn的私信我不是經(jīng)??矗绻闹杏绣e(cuò)誤的地方或者有寫(xiě)不清楚的地方的話(huà),可以發(fā)郵件給我大家一起討論~ 我的郵箱:ouzhliang@mail2.sysu.edu.cn

柚子快報(bào)邀請(qǐng)碼778899分享:CESM2.1.3 移植記錄

http://yzkb.51969.com/

參考文章

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀(guān)點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19559065.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪(fǎng)問(wèn)

文章目錄