Version 23 (modified by 10 years ago) (diff) | ,
---|
Compilation instructions
- Extraction of the source code:
$ svn co http://svn.lmd.jussieu.fr/LMDZ_WRF/trunk LMDZ_WRF
- Copy (not int the repository folder...) folder
WRFV3
to the desired spatial resolution (F77 legacy). As example one for 80x90x39. There are two possible ways:- check out in ${WORKDIR} only the WRFV3 folder from the repository and make a local copy of the file
dimensions.orig.h
:$ svn co http://svn.lmd.jussieu.fr/LMDZ_WRF/trunk/WRFV3 ${WORKDIR}/WRFV3_80x90x39 $ cp ${WORKDIR}/WRFV3_80x90x39/lmdz/dimensions.orig.h ${WORKDIR}/WRFV3_80x90x39/lmdz/dimensions.h
- Make a simbolic link in ${WORKDIR} and make a local copy of the file
dimensions.orig.h
:$ ln -s LMDZ_WRF/WRFV3 ${WORKDIR}/WRFV3_80x90x39 $ cd ${WORKDIR}/WRFV3_80x90x39 $ rm lmdz/dimension.h $ cp LMDZ_WRF/WRFV3/lmdz/dimensions.orig.h ${WORKDIR}/WRFV3_80x90x39/lmdz/dimensions.h
- check out in ${WORKDIR} only the WRFV3 folder from the repository and make a local copy of the file
- Go to the
${WORKDIR}
and compile there$ cd ${WORKDIR}/WRFV3_80x90x39
- Define domain size for LMDZ editing file
lmdz/dimensions.h
(see documentation for more details)$ cat lmdz/dimensions.h INTEGER iim,jjm,llm,ndm,wiim,wjjm,wbdym PARAMETER (iim= 1, jjm=7031, llm=38,ndm=1,wiim=79,wjjm=89,wbdym=5)
jjm = (dimx-1) * (dimy -1)
llm = (dimz - 1)
wiim = dimx - 1
wjjm = dimy - 1
wbdym = 5 (up to now, mandatory to run WRF with 5 grid points in the sponge zone)
- run script
tools/prepare_compilation.bash
('-h', for help. copy netCDF libraries and other staff not automatized)$ ./prepare_compilation.bash [WRF_LMDZsrc] [NETCDFhome] ${WORKDIR}/WRFV3_80x90x39
- prepare compilation (ready for 'lmd' machines in serial,
$cp configure.serial_lmdz2wrf.lmd.wrf configure.wrf
) if not, edit$ ./configure
- add pre-compiler flag
-DLMDZ
after-DNETCDF
(insideconfigure.wrf
) - modify
lmdz/Makefile
with that values from theconfigure.wrf
- prepare compilation modifying Registry files (already done, have a look just in case):
$ ls -lrta Registry/Registry.EM
Registry/Registry.EM -> Registry.EM.LMDZ
- $
ls -lrta Registry/registry.dimspec
Registry/registry.dimspec -> registry.dimspec.lmdz
- Compile as usual
$ export WRFIO_NCD_LARGE_FILE_SUPPORT=1 $ compile em_real >& compile.log
- Compile manually a lmdz subroutine (not working, not knowing why). Example with gfortran serial in lmdz machines
$ cd lmdz $ 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 $ cd ..
- run script for second time
tools/prepare_compilation.bash
$ ./prepare_compilation.bash [WRF_LMDZsrc] [NETCDFhome] ${WORKDIR}/WRFV3_80x90x39
- Recompile as usual
$ compile em_real >& compile.log
- Checking compilation (empty outputs)
$ cat -n compile.log | grep Error
$ cat -n compile.log | grep Erreur
(just in case you are in a French speaking computer)
- Running simulation
- Run all the steps
WPS
andreal.exe
as usual - folder
WRFV3/run
is not completed (no binaries in repository!), thus get a copy of the right WRF version and use the original source ( here WRFV3.3_run.tar.gz a compressed copy of the folder for WRFV3.3) - Make a local copy of
namelist.input.orig
asnamelist.input
and modify it - Add all the LMDZ *def files provided in
WRF/run
folder:config.def
,gcm.def
,physiq.def
,run.def
,traceur.def
- Run all the steps
- You're done, Have fun!
Attachments (2)
- WRFV3.3_run.tar.gz (21.9 MB) - added by 10 years ago.
-
documentation_LMDZ+WRFmeas.pdf (129.4 KB) - added by 10 years ago.
Document to run LMDZ+WRF with the WRFmeas modifications