1 | **** Coupling WRF and LMDZ with the WRFmeas modifications and checking outputs |
---|
2 | * L.Fita, Laboratoire de Meteorologie Dynamique, CNRS, UPMC-Jussieu, Paris, FRANCE |
---|
3 | * July 2014 |
---|
4 | |
---|
5 | * More information in: |
---|
6 | * http://www.lmd.jussieu.fr/~lflmd/WRF_LMDZ/index.html |
---|
7 | * http://web.lmd.jussieu.fr/trac-LMDZ_WRF |
---|
8 | * http://www.lmd.jussieu.fr/~lflmd/WRFmeas/index.html |
---|
9 | |
---|
10 | *** Compilation instructions *** |
---|
11 | |
---|
12 | 1.- Extraction of the source code: |
---|
13 | $ svn co http://svn.lmd.jussieu.fr/LMDZ_WRF/branches/LMDZ_WRFmeas_develop LMDZ_WRFmeas_develop |
---|
14 | |
---|
15 | 2.- Copy (not int the repository folder...) folder 'WRFV3' to the desired spatial resolution (F77 legacy). As example one for 80x90x39 |
---|
16 | $ cp -R WRFV3 ${WORKDIR}/WRFV3_80x90x39 |
---|
17 | |
---|
18 | 3.- Go to the ${WORKDIR} and compile there |
---|
19 | $ cd ${WORKDIR}/WRFV3_80x90x39 |
---|
20 | |
---|
21 | 4.- Define domain size for LMDZ editing file lmdz/dimensions.h (see documentation for more details) |
---|
22 | $ cat lmdz/dimensions.h |
---|
23 | INTEGER iim,jjm,llm,ndm,wiim,wjjm,wbdym |
---|
24 | |
---|
25 | PARAMETER (iim= 1, jjm=7031, llm=38,ndm=1,wiim=79,wjjm=89,wbdym=5) |
---|
26 | |
---|
27 | jjm = (dimx-1) * (dimy -1) |
---|
28 | llm = (dimz - 1) |
---|
29 | wiim = dimx - 1 |
---|
30 | wjjm = dimy - 1 |
---|
31 | wbdym = 5 (up to now, mandatory to run WRF with 5 grid points in the sponge zone) |
---|
32 | |
---|
33 | 5.- run script 'tools/prepare_compilation.bash' ('-h', for help. copy netCDF libraries and other staff not automatized) |
---|
34 | $ ./prepare_compilation.bash [WRF_LMDZsrc] [NETCDFhome] ${WORKDIR}/WRFV3_80x90x39 |
---|
35 | |
---|
36 | 6.1- prepare compilation (ready for 'lmd' machines in serial, 'cp configure.serial_lmdz2wrf.lmd_WRFmeas.wrf configure.wrf') if not, edit |
---|
37 | 6.1.a: $ ./configure |
---|
38 | 6.1.b: add pre-compiler flags '-DLMDZ' and '-DWRFMEAS' after '-DNETCDF' (inside configure.wrf) |
---|
39 | 6.1.c: modify 'lmdz/Makefile with that values from the 'configure.wrf' |
---|
40 | 6.2- prepare compilation modifying Registry files (already done, have a look just in case): |
---|
41 | 6.2.a $ ls -lrta Registry/Registry.EM |
---|
42 | Registry/Registry.EM -> Registry.EM.LMDZ_WRFmeas |
---|
43 | 6.2.b $ ls -lrta Registry/registry.dimspec -> registry.dimspec.lmdz_WRFmeas |
---|
44 | |
---|
45 | 7.- Compile as usual |
---|
46 | $ compile em_real >& compile.log |
---|
47 | |
---|
48 | 8.- Compile manually a lmdz subroutine (not working, not knowing why). Example with gfortran serial in lmdz machines |
---|
49 | $ cd lmdz |
---|
50 | $ 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 |
---|
51 | $ cd .. |
---|
52 | |
---|
53 | 9.- run script for second time 'tools/prepare_compilation.bash' |
---|
54 | $ ./prepare_compilation.bash [WRF_LMDZsrc] [NETCDFhome] ${WORKDIR}/WRFV3_80x90x39 |
---|
55 | |
---|
56 | 10.- Recompile as usual |
---|
57 | $ compile em_real >& compile.log |
---|
58 | |
---|
59 | 11.- Checking compilation (empty outputs) |
---|
60 | $ cat -n compile.log | grep Error |
---|
61 | $ cat -n compile.log | grep Erreur (just in case you are in a French speaking computer) |
---|
62 | |
---|
63 | 12.- Running simulation |
---|
64 | 11.a: Run all the steps 'WPS' and 'real.exe' as usual |
---|
65 | 11.b: folder 'WRFV3/run' is not completed (no binaries in repository!), thus get a copy of the right WRF version and use the original source |
---|
66 | 11.c: 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' |
---|
67 | |
---|
68 | 12.- You're done, Have fun! |
---|