# Introduction # Here we introduce the files of DasPy and how to install the related components # Details # # DasPy Files # 1. Algorithm ------------------------ Folder of LETKF 2. Analysis ------------------------- Folder of online plotting 3. DAS_Data ------------------------- Folder of input/output data 4. DataBase ------------------------- Folder of temporary data 5. Examples ------------------------- Folder of example test data 6. ForcingData ------------------------ Folder of forcing data script 7. ObsModel --------------------------- Folder of observation operator interface 8. SysModel --------------------------- Folder of CLM interface 9. Utilities -------------------------- Folder of useful tools 10. SysModel/CLM/Call_CLM_CESM.py ---- Run CLM 11. ObsModel/CMEM/Call_CMEM.py ------- Run CMEM 12. ObsModel/COSMOS/COSMIC_Py.py ----- Run COSMIC 13. Utilities/Start_PP/start_pp_server.c ----- A simple tool to start ppserver on each node, if mpi4py does not work 14. DAS.sh ------------------------------- Script example to run on HPC PBS 15. DAS.py -------------------------------- Main program 16. DAS_Initialize.py -------------------- Initiate system 17. DAS_Driver.py ----------------------- Main loop for data assimilatoin 18. DAS_Driver_Common.py ----------------- Run CLM, read observation and collect CLM results 19. DAS_Assim.py ----------------------------- Data assimilation modules 20. DAS_Assim_Common.py --------------------- Define the functions for model operator and observation operator 21. DAS_Observation_Operator.py ----------------- Call observation operators 22. DAS_Misc.py ----------------------------------- Plotting 23. DAS_Utilities.py -------------------------------- Useful functions 24. ParFor.py ----------------------------------------- Speedup DasPy with Weave # link mpiexec # 1. ln -s MPI_Path/bin/mpiexec DAS_Depends_Path/bin/mpiexec # Install CLM # 1. Download the source code from: http://www.cesm.ucar.edu/models/cesm1.2/ 2. build clm with the option "./xmlchange -file env\_build.xml -id MPILIB -val "mpi-serial"" 3. copy the cesm.exe as DAS_Depends_Path + "bin/cesm_sp_serial.exe" # Install CMEM # 1. Download the source code from: https://software.ecmwf.int/wiki/display/LDAS/CMEM 2. copy the cmem excutable as DasPy_Path+"ObsModel/CMEM/bin/cmem # Install PDAF Download PDAF from: http://pdaf.awi.de/trac/ cd $HOME_Path/DasPy_Release/Algorithm/PDAF/src/PDAF-D_V1.11/src export PDAF_ARCH=linux_gfortran make clean make -j2 mkdir -p ../lib/serial cp ../lib/libpdaf-d.a ../lib/serial/ cd $HOME_Path/DasPy_Release/Algorithm/PDAF/bin/offline_2D_serial make clean make -j2 # Build DasPy_Components # export HOME_Path="/lustre/jhome7/jicg41/jicg4128" =============start_ppserver 1. cd $HOME_Path/DasPy/Utilities/Start_PP 2. export CC=mpicc 3. make clean 4. make ===============COSMIC 1. cd $HOME_Path/DasPy_Release/ObsModel/COSMOS/src 2. python2.7 -c "import numpy.f2py;numpy.f2py.main()" -c --f90flags="-O3 -ffree-line-length-none -fopenmp" --f77flags="-O3" --fcompiler=gnu95 -L$HOME\_Path/DAS\_Depends/lib -lblas -lgomp -m COSMIC COSMIC.f90 3. cp COSMIC.so ../ ========================== LETKF: 1. cd $HOME_Path/DasPy_Release/Algorithm/DAS 2. python2.7 -c "import numpy.f2py;numpy.f2py.main()" -c --f90flags="-O3 -ffree-line-length-none -fopenmp -m64 -L$HOME\_Path/DAS\_Depends/lib" --f77flags="-O3 -fopenmp -m64" --fcompiler=gnu95 -L$HOME\_Path/DAS\_Depends/lib -lgomp -lblas -m letkf\_common netlib.f netlibblas.f common\_letkf.f90 CALL\_LETKF.f90 # Dependencies # ### ------------------ Python ### * Python 2.7.8 * NumPy 1.9.1 * SciPy 0.15.0 * weave 0.15.0 * Matplotlib 1.4.2 * mpmath 0.18 * numexpr 2.2.2 * netCDF4 1.1.3 * pp 1.6.4 * mpi4py 1.3.1 * futures 2.2.0 sudo dnf install gcc gcc-c++ gcc-gfortran kernel-devel kernel-headers dkms sudo dnf install make cmake-gui htop mosh filezilla sshpass system-config-users nano subversion cvs bzr mercurial git sudo dnf install python-futures python-lxml transfig pstoedit h5py nco netcdf4-python python-pp python-basemap python-dill python-psutil python-pandas python-pip python-cffi numpy numpy-f2py scipy rpy python-matplotlib python-matplotlib-qt4 python-matplotlib-tk python-mpmath sudo dnf install libxml2 libxml2-devel gsl-devel armadillo-devel libpng-devel jasper-devel openjpeg-devel octave-devel R-devel geos-devel gdal gdal-devel proj-static proj-devel proj-epsg hdf5-devel netcdf ncview ncl hdf5 hdf5-static hdf5-devel ncl-devel libtool lapack-static f2c f2c-libs blas-static nasm =====netcdf-4.3.2 tar xvzf netcdf-4.3.3.1.tar.gz cd netcdf-4.3.3.1 make clean CFLAGS="-O3 -I/home/hanxujun/DAS_Depends/include" CPPFLAGS="-O3 -I/home/hanxujun/DAS_Depends/include" LDFLAGS=-L/home/hanxujun/DAS_Depends/lib FFLAGS="-O3" FCFLAGS="-O3" ./configure --prefix=/home/hanxujun/DAS_Depends --enable-static --enable-shared --enable-netcdf4 --enable-largefile --enable-large-file-tests make -j32 make install cd ../ =================netcdf-fortran-4.4 tar xvzf netcdf-fortran-4.4.2.tar.gz cd netcdf-fortran-4.4.2 make clean autoreconf -i -f CFLAGS="-O3 -I/home/hanxujun/DAS_Depends/include" FFLAGS="-O3" FCFLAGS="-O3" LDFLAGS=-L/home/hanxujun/DAS_Depends/lib LIBS="-lhdf5_hl -lhdf5 -lz -lm" ./configure --prefix=/home/hanxujun/DAS_Depends --enable-static --enable-shared --enable-largefile --enable-large-file-tests make -j32 make install cd ../ ### ------------------- R ### * R 3.1.2 * R-Packages: raster,rgdal ### ------------------ Library ### * Blas && Lapack 3.5.0 * HDF5 1.8.12 * netCDF 4.3.2 * netCDF-fortran 4.4.1 * nco 4.4.4 * gsl 1.16