首先百度网盘下载WRF_setup.tar.gz
WRF_setuphttps://pan.baidu.com/s/1_XCx3O5D2ivYdPPYBccD8A?pwd=robi
链接:https://pan.baidu.com/s/1_XCx3O5D2ivYdPPYBccD8A?pwd=robi
提取码:robi
然后解压缩 WRF_setup.tar.gz
tar -zxvf WRF_setup.tar.gz
然后看看anzhuangwrf.sh有没有要改的(这步可省略)
vim anzhuang.sh
然后运行anzhuangwrf.sh
或许要改下权限chmod 775 anzhuangwrf.sh
chmod 775 anzhuangwrf.sh
./anzhuangwrf.sh
最后贴下anzhuangwrf.sh
#!/bin/bash
#purpose: build WRF WPS
#Ma Yubin
#Huan
echo "=============================anzhuang wrf========================================"
rm -r WRF
rm -r WPS
tar -zxvf WPSV4.0.TAR.gz
tar -zxvf WRFV4.0.TAR.gz
}
echo "========================system environment tests================================="
module purge
module load compiler/intel/2021.3.1
module load mpi/intelmpi/2021.3.1
module load mathlib/netcdf/intel/4.4.1
module load mathlib/pnetcdf/intel/1.12.1
#------------------------------------------------
module load mathlib/hdf5/intel/1.8.20
module load mathlib/jasper/intel/1.900.1
module load mathlib/libpng/intel/1.2.12
module load mathlib/zlib/intel/1.2.11
module load mathlib/hdf4/intel/4.2.13
module load apps/anaconda3/5.3.0
#export CC icc
#export CXX icpc
#export FC ifort
#export FCFLAGS -m64
#export F77 ifort
#export FFLAGS -m64
export NETCDF="/public/software/mathlib/libs-intel/netcdf/4.4.1"
testcompiler_gnu(){
echo "==========================================test compiler=========================="
which gfortran
which cpp
which gcc
gcc --version
mkdir TESTS
cp Fortran_C_tests.tar ./TESTS
cd ./TESTS
tar -xf Fortran_C_tests.tar
gfortran TEST_1_fortran_only_fixed.f
./a.out
gfortran TEST_2_fortran_only_free.f90
./a.out
gcc TEST_3_c_only.c
./a.out
gcc -c -m64 TEST_4_fortran+c_c.c
gfortran -c -m64 TEST_4_fortran+c_f.f90
gfortran -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o
./a.out
./TEST_csh.csh
./TEST_perl.pl
./TEST_sh.sh
cd ..
cp Fortran_C_NETCDF_MPI_tests.tar ./TESTS
cd ./TESTS
tar -xf Fortran_C_NETCDF_MPI_tests.tar
echo ${NETCDF}
cp ${NETCDF}/include/netcdf.inc .
gfortran -c 01_fortran+c+netcdf_f.f
gcc -c 01_fortran+c+netcdf_c.c
gfortran 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o -L${NETCDF}/lib -lnetcdff -L${NETCDF}/lib -lnetcdf
./a.out
mpif90 -c 02_fortran+c+netcdf+mpi_f.f
mpicc -c 02_fortran+c+netcdf+mpi_c.c
mpif90 02_fortran+c+netcdf+mpi_f.o \
02_fortran+c+netcdf+mpi_c.o \
-L${NETCDF}/lib -lnetcdff -lnetcdf
mpirun ./a.out
cd ..
}
testcompiler_intel(){
echo "==========================================test compiler=========================="
mkdir TESTS
cp Fortran_C_tests.tar ./TESTS
cd ./TESTS
tar -xf Fortran_C_tests.tar
ifort TEST_1_fortran_only_fixed.f
./a.out
ifort TEST_2_fortran_only_free.f90
./a.out
icc TEST_3_c_only.c
./a.out
icc -c -m64 TEST_4_fortran+c_c.c
ifort -c -m64 TEST_4_fortran+c_f.f90
ifort -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o
./a.out
./TEST_csh.csh
./TEST_perl.pl
./TEST_sh.sh
cd ..
cp Fortran_C_NETCDF_MPI_tests.tar ./TESTS
cd ./TESTS
tar -xf Fortran_C_NETCDF_MPI_tests.tar
echo ${NETCDF}
cp ${NETCDF}/include/netcdf.inc .
ifort -c 01_fortran+c+netcdf_f.f
icc -c 01_fortran+c+netcdf_c.c
ifort 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o -L${NETCDF}/lib -lnetcdff -L${NETCDF}/lib -lnetcdf
./a.out
mpiifort -c 02_fortran+c+netcdf+mpi_f.f
mpiicc -c 02_fortran+c+netcdf+mpi_c.c
mpiifort 02_fortran+c+netcdf+mpi_f.o \
02_fortran+c+netcdf+mpi_c.o \
-L${NETCDF}/lib -lnetcdff -lnetcdf
mpirun ./a.out
cd ..
}
build_wrf(){
echo "====================================Building WRF================================="
pwd
#Please select from among the following Linux x86_64 options:
#
# 1. (serial) 2. (smpar) 3. (dmpar) 4. (dm+sm) PGI (pgf90/gcc)
# 5. (serial) 6. (smpar) 7. (dmpar) 8. (dm+sm) PGI (pgf90/pgcc): SGI MPT
# 9. (serial) 10. (smpar) 11. (dmpar) 12. (dm+sm) PGI (pgf90/gcc): PGI accelerator
# 13. (serial) 14. (smpar) 15. (dmpar) 16. (dm+sm) INTEL (ifort/icc)
# 17. (dm+sm) INTEL (ifort/icc): Xeon Phi (MIC architecture)
# 18. (serial) 19. (smpar) 20. (dmpar) 21. (dm+sm) INTEL (ifort/icc): Xeon (SNB with AVX mods)
# 22. (serial) 23. (smpar) 24. (dmpar) 25. (dm+sm) INTEL (ifort/icc): SGI MPT
# 26. (serial) 27. (smpar) 28. (dmpar) 29. (dm+sm) INTEL (ifort/icc): IBM POE
# 30. (serial) 31. (dmpar) PATHSCALE (pathf90/pathcc)
# 32. (serial) 33. (smpar) 34. (dmpar) 35. (dm+sm) GNU (gfortran/gcc)
# 36. (serial) 37. (smpar) 38. (dmpar) 39. (dm+sm) IBM (xlf90_r/cc_r)
# 40. (serial) 41. (smpar) 42. (dmpar) 43. (dm+sm) PGI (ftn/gcc): Cray XC CLE
# 44. (serial) 45. (smpar) 46. (dmpar) 47. (dm+sm) CRAY CCE (ftn $(NOOMP)/cc): Cray XE and XC
# 48. (serial) 49. (smpar) 50. (dmpar) 51. (dm+sm) INTEL (ftn/icc): Cray XC
# 52. (serial) 53. (smpar) 54. (dmpar) 55. (dm+sm) PGI (pgf90/pgcc)
# 56. (serial) 57. (smpar) 58. (dmpar) 59. (dm+sm) PGI (pgf90/gcc): -f90=pgf90
# 60. (serial) 61. (smpar) 62. (dmpar) 63. (dm+sm) PGI (pgf90/pgcc): -f90=pgf90
# 64. (serial) 65. (smpar) 66. (dmpar) 67. (dm+sm) INTEL (ifort/icc): HSW/BDW
# 68. (serial) 69. (smpar) 70. (dmpar) 71. (dm+sm) INTEL (ifort/icc): KNL MIC
# 72. (serial) 73. (smpar) 74. (dmpar) 75. (dm+sm) FUJITSU (frtpx/fccpx): FX10/FX100 SPARC64 IXfx/Xlfx
cat >xuanxianghao<<EOF
15
EOF
./clean -a
./configure <xuanxianghao
./compile em_real |tee log.compile
ls -ls main/*.exe
cd ..
}
build_wps(){
echo "=======================================Building WPS=============================="
cd WPS
pwd
./clean
#Please select from among the following supported platforms.
# 1. Linux x86_64, gfortran (serial)
# 2. Linux x86_64, gfortran (serial_NO_GRIB2)
# 3. Linux x86_64, gfortran (dmpar)
# 4. Linux x86_64, gfortran (dmpar_NO_GRIB2)
# 5. Linux x86_64, PGI compiler (serial)
# 6. Linux x86_64, PGI compiler (serial_NO_GRIB2)
# 7. Linux x86_64, PGI compiler (dmpar)
# 8. Linux x86_64, PGI compiler (dmpar_NO_GRIB2)
# 9. Linux x86_64, PGI compiler, SGI MPT (serial)
# 10. Linux x86_64, PGI compiler, SGI MPT (serial_NO_GRIB2)
# 11. Linux x86_64, PGI compiler, SGI MPT (dmpar)
# 12. Linux x86_64, PGI compiler, SGI MPT (dmpar_NO_GRIB2)
# 13. Linux x86_64, IA64 and Opteron (serial)
# 14. Linux x86_64, IA64 and Opteron (serial_NO_GRIB2)
# 15. Linux x86_64, IA64 and Opteron (dmpar)
# 16. Linux x86_64, IA64 and Opteron (dmpar_NO_GRIB2)
# 17. Linux x86_64, Intel compiler (serial)
# 18. Linux x86_64, Intel compiler (serial_NO_GRIB2)
# 19. Linux x86_64, Intel compiler (dmpar)
# 20. Linux x86_64, Intel compiler (dmpar_NO_GRIB2)
# 21. Linux x86_64, Intel compiler, SGI MPT (serial)
# 22. Linux x86_64, Intel compiler, SGI MPT (serial_NO_GRIB2)
# 23. Linux x86_64, Intel compiler, SGI MPT (dmpar)
# 24. Linux x86_64, Intel compiler, SGI MPT (dmpar_NO_GRIB2)
# 25. Linux x86_64, Intel compiler, IBM POE (serial)
# 26. Linux x86_64, Intel compiler, IBM POE (serial_NO_GRIB2)
# 27. Linux x86_64, Intel compiler, IBM POE (dmpar)
# 28. Linux x86_64, Intel compiler, IBM POE (dmpar_NO_GRIB2)
# 29. Linux x86_64 g95 compiler (serial)
# 30. Linux x86_64 g95 compiler (serial_NO_GRIB2)
# 31. Linux x86_64 g95 compiler (dmpar)
# 32. Linux x86_64 g95 compiler (dmpar_NO_GRIB2)
# 33. Cray XE/XC CLE/Linux x86_64, Cray compiler (serial)
# 34. Cray XE/XC CLE/Linux x86_64, Cray compiler (serial_NO_GRIB2)
# 35. Cray XE/XC CLE/Linux x86_64, Cray compiler (dmpar)
# 36. Cray XE/XC CLE/Linux x86_64, Cray compiler (dmpar_NO_GRIB2)
# 37. Cray XC CLE/Linux x86_64, Intel compiler (serial)
# 38. Cray XC CLE/Linux x86_64, Intel compiler (serial_NO_GRIB2)
# 39. Cray XC CLE/Linux x86_64, Intel compiler (dmpar)
# 40. Cray XC CLE/Linux x86_64, Intel compiler (dmpar_NO_GRIB2)
cat > xuanxianghao<<eof
19
eof
./configure<xuanxianghao
WRF_DIR="../WRF"
./compile |tee log.compile
}
#===========================================main program================================
init
testcompiler_gnu
testcompiler_intel
build_wrf
build_wps
#=======================================================================================