Changes between Version 1 and Version 2 of WikiCompilation
- Timestamp:
- Jul 9, 2014, 3:34:35 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiCompilation
v1 v2 2 2 3 3 1.- Extraction of the source code: 4 $ svn co http://svn.lmd.jussieu.fr/LMDZ_WRF LMDZ_WRF4 {{{$ svn co http://svn.lmd.jussieu.fr/LMDZ_WRF LMDZ_WRF}}} 5 5 6 1.- Copy (not int the repository folder...) folder 'WRFV3'to the desired spatial resolution (F77 legacy). As example one for 80x90x397 $ cp -R WRFV3 ${WORKDIR}/WRFV3_80x90x396 1.- Copy (not int the repository folder...) folder `WRFV3` to the desired spatial resolution (F77 legacy). As example one for 80x90x39 7 {{{$ cp -R WRFV3 ${WORKDIR}/WRFV3_80x90x39}}} 8 8 9 1.- Go to the ${WORKDIR}and compile there10 $ cd ${WORKDIR}/WRFV3_80x90x399 1.- Go to the `${WORKDIR}` and compile there 10 {{{$ cd ${WORKDIR}/WRFV3_80x90x39}}} 11 11 12 1.- Define domain size for LMDZ editing file lmdz/dimensions.h(see documentation for more details)13 $ cat lmdz/dimensions.h12 1.- Define domain size for LMDZ editing file `lmdz/dimensions.h` (see documentation for more details) 13 {{{$ cat lmdz/dimensions.h 14 14 INTEGER iim,jjm,llm,ndm,wiim,wjjm,wbdym 15 15 16 PARAMETER (iim= 1, jjm=7031, llm=38,ndm=1,wiim=79,wjjm=89,wbdym=5) 16 PARAMETER (iim= 1, jjm=7031, llm=38,ndm=1,wiim=79,wjjm=89,wbdym=5)}}} 17 17 18 jjm = (dimx-1) * (dimy -1) 19 llm = (dimz - 1) 20 wiim = dimx - 1 21 wjjm = dimy - 1 22 wbdym = 5 (up to now, mandatory to run WRF with 5 grid points in the sponge zone) 18 jjm = (dimx-1) * (dimy -1) [[br]] 19 llm = (dimz - 1) [[br]] 20 wiim = dimx - 1 [[br]] 21 wjjm = dimy - 1 [[br]] 22 wbdym = 5 (up to now, mandatory to run WRF with 5 grid points in the sponge zone) [[br]] 23 23 24 1. run script 'tools/prepare_compilation.bash'('-h', for help. copy netCDF libraries and other staff not automatized)25 $ ./prepare_compilation.bash [WRF_LMDZsrc] [NETCDFhome] ${WORKDIR}/WRFV3_80x90x3924 1. run script `tools/prepare_compilation.bash` ('-h', for help. copy netCDF libraries and other staff not automatized) 25 {{{$ ./prepare_compilation.bash [WRF_LMDZsrc] [NETCDFhome] ${WORKDIR}/WRFV3_80x90x39}}} 26 26 27 27 1. prepare compilation (ready for 'lmd' machines in serial) if not, edit 28 1. $ ./configure 29 1. add pre-compiler flag' -DLMDZ after -DNETCDF (inside configure.wrf) 30 1. modify 'lmdz/Makefile with that values from the 'configure.wrf' 28 1. `$ ./configure ` 29 1. add pre-compiler flag `-DLMDZ` after `-DNETCDF` (inside `configure.wrf`) 30 1. modify `lmdz/Makefile` with that values from the `configure.wrf` 31 31 32 1. prepare compilation modifying Registry files (already done, have a look just in case): 32 1. $ ls -lrta Registry/Registry.EM 33 Registry/Registry.EM -> Registry.EM.LMDZ 34 1. $ ls -lrta Registry/registry.dimspec -> registry.dimspec.lmdz 33 1. `$ ls -lrta Registry/Registry.EM` 34 {{{Registry/Registry.EM -> Registry.EM.LMDZ}}} 35 1. $ `ls -lrta Registry/registry.dimspec` 36 {{{Registry/registry.dimspec -> registry.dimspec.lmdz}}} 35 37 36 38 1. Compile as usual 37 $ compile em_real >& compile.log39 {{{$ compile em_real >& compile.log}}} 38 40 39 41 1. Compile manually a lmdz subroutine (not working, not knowing why). Example with gfortran serial in lmdz machines 40 $ cd lmdz42 {{{$ cd lmdz 41 43 $ gfortran -O3 -ftree-vectorize -ftree-loop-linear -funroll-loops -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4 -fconvert=big-endian -frecord-marker=4 -O3 -ftree-vectorize -ftree-loop-linear -funroll-loops -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4 -g -O0 -fbacktrace -Wall -fbounds-check -c -L/u/lflmd/bin/gcc_netcdf-4.3.0/lib -lnetcdf -lnetcdff -I/u/lflmd/bin/gcc_netcdf-4.3.0/include lmdz_wrf_variables_mod.f90 42 $ cd .. 44 $ cd ..}}} 43 45 44 1. run script for second time 'tools/prepare_compilation.bash'45 $ ./prepare_compilation.bash [WRF_LMDZsrc] [NETCDFhome] ${WORKDIR}/WRFV3_80x90x3946 1. run script for second time `tools/prepare_compilation.bash` 47 {{{$ ./prepare_compilation.bash [WRF_LMDZsrc] [NETCDFhome] ${WORKDIR}/WRFV3_80x90x39}}} 46 48 47 49 1. Recompile as usual 48 $ compile em_real >& compile.log50 {{{$ compile em_real >& compile.log}}} 49 51 50 52 1. Checking compilation (empty outputs) 51 $ cat -n compile.log | grep Error52 $ cat -n compile.log | grep Erreur(just in case you are in a French speaking computer)53 * `$ cat -n compile.log | grep Error` 54 $ `cat -n compile.log | grep Erreur` (just in case you are in a French speaking computer) 53 55 54 56 1. Running simulation 55 1. Run all the steps 'WPS' and 'real.exe'as usual56 1. folder 'WRFV3/run'is not completed (no binaries in repository!), thus get a copy of the right WRF version and use the original source57 1. Edit and modify 'namelist.input' and all the LMDZ *def files provided in 'run' folder: 'config.def', 'gcm.def', 'physiq.def', 'run.def', 'traceur.def'57 1. Run all the steps `WPS` and `real.exe` as usual 58 1. folder `WRFV3/run` is not completed (no binaries in repository!), thus get a copy of the right WRF version and use the original source 59 1. Edit and modify `namelist.input` and all the LMDZ *def files provided in `WRF/run` folder: `config.def`, `gcm.def`, `physiq.def`, `run.def`, `traceur.def` 58 60 59 61 1. You're done, Have fun!