Skip to content

Commit

Permalink
commit offline programs and scripts needed for MRI-4DVAR
Browse files Browse the repository at this point in the history
	new file:   var/mri4dvar/Makefile
	new file:   var/mri4dvar/README.Multi_inc
	new file:   var/mri4dvar/da_bdy.f90
	new file:   var/mri4dvar/da_bilin.f90
	new file:   var/mri4dvar/da_thin.f90
	new file:   var/mri4dvar/da_vp_bilin.f90
	new file:   var/mri4dvar/da_vp_split.f90
	new file:   var/mri4dvar/nc_increment.ncl
	new file:   var/mri4dvar/nc_vpglobal.ncl
	new file:   var/mri4dvar/nc_vphires.ncl
	new file:   var/mri4dvar/nc_vpinput.ncl
	new file:   var/mri4dvar/nc_vplocal.ncl
	new file:   var/mri4dvar/rsl_lite.h
	new file:   var/mri4dvar/run_mri3d4dvar.csh_lsf
	new file:   var/mri4dvar/run_mri3d4dvar.csh_pbs
	new file:   var/mri4dvar/task_for_point.c
	new file:   var/mri4dvar/wraper_mri3d4dvar.csh
  • Loading branch information
liujake committed Jul 12, 2017
1 parent 96fb5f3 commit 5e94060
Show file tree
Hide file tree
Showing 17 changed files with 4,282 additions and 0 deletions.
42 changes: 42 additions & 0 deletions var/mri4dvar/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
all: da_thin.exe da_bilin.exe da_bdy.exe da_vp_bilin.exe da_vp_split.exe

include ../../configure.wrf
FCOPTION=$(FCFLAGS) $(PROMOTION) $(FCSUFFIX)
CCOPTION=$(CFLAGS)
LIB_EXTERNAL=-L${NETCDFPATH}/lib -lnetcdf -lnetcdff

da_thin.exe: da_thin.o
$(SFC) -o $@ da_thin.o ${FCOPTION} $(LIB_EXTERNAL)

da_thin.o: da_thin.f90
$(SFC) -c ${FCOPTION} -I$(NETCDFPATH)/include $< -o $@

da_bilin.exe: da_bilin.o
$(SFC) -o $@ ${FCOPTION} da_bilin.o $(LIB_EXTERNAL)

da_bilin.o: da_bilin.f90
$(SFC) -c ${FCOPTION} -I$(NETCDFPATH)/include $< -o $@

da_vp_bilin.exe: da_vp_bilin.o
$(SFC) -o $@ ${FCOPTION} da_vp_bilin.o

da_vp_bilin.o: da_vp_bilin.f90
$(SFC) -c ${FCOPTION} $< -o $@

da_bdy.exe: da_bdy.o
$(SFC) -o $@ ${FCOPTION} da_bdy.o $(LIB_EXTERNAL)

da_bdy.o: da_bdy.f90
$(SFC) -c ${FCOPTION} -I$(NETCDFPATH)/include $< -o $@

task_for_point.o: task_for_point.c
$(DM_CC) -c ${CCOPTION} $< -o $@

da_vp_split.exe: da_vp_split.o task_for_point.o
$(DM_FC) -o $@ ${FCOPTION} da_vp_split.o task_for_point.o

da_vp_split.o: da_vp_split.f90
$(DM_FC) -c ${FCOPTION} $< -o $@

clean:
rm -rf *.o da_thin.exe da_bilin.exe da_bdy.exe da_vp_bilin.exe da_vp_split.exe
86 changes: 86 additions & 0 deletions var/mri4dvar/README.Multi_inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
1. How to build the 'tools'

Set 'NETCDF' to your netcdf path and 'SFC' to the same Fortran 90 compiler
which used to build the NETCDF lib

For csh, tcsh
setenv NETCDF /your/netcdf/path
setenv SFC pgf90
For bash, ksh
export NETCDF=/your/netcdf/path
export SFC=pgf90

then run 'make' to build the tools

notes: It depends on how NETCDF was build, '-lcurl' may need to be removed
or the path of libcurl need to be specified.

2. Domain size requirment

Only WRF input files at high resolution are required to run multi-inc 4DVAR.
WRF input files at low reselution are thinned from those at high resolution.
This requires that grid number at high/low reselutions to satify:
( n - 1 ) mod m = 0
where n is the grid number of high resolution in x or y direction, m is the
grid number of low resolution in x or y direction.

The ratio of the high/low resolution must be odd, the default ration is 1:3.

3. First guess files

Multi-incremental 4DVAR run needs 2 time-level first guess files (fg & fg02),

fg is at the analysis time

fg02 is at the end of the analysis time window, or the 2nd time level of boundary
if boundary interval is less then analysis time window

4. BE
Multi-incremental 4DVAR run only needs the low resolution BE

5. How the wrapper script works

What does this wrapper script CAN NOT DO?

This wrapper script DOES NOT DO these

link/copy any run-time files which needed by 4DVAR run
generate/prepare namelist.input for 4DVAR run
update boundary condition

What does this wrapper CAN DO?

This wrapper script DOES these

generate low resolution fg & bdy by using the high resolution fg & fg02
switch da_wrfvar.exe between stage1 & stage2
amend namelist.input for appropriate stage
interpolate low resolution incremental to high resolution

This wrapper script supposes these are done

1) EVERYTHING IS OK FOR A STANDARD 4DVAR RUN under the run direcotry,
such as be.dat, namelist.input, *.tbl, fg, fg02, wrfbdy_d01, da_wrfvar.exe,
da_update_bc, ob*, etc.

2) Environment variables 'MULTI_INC_TOOLS' points to the location of these
tools

da_bdy.exe
da_bilin.exe
da_thin.exe

3) Environment variables 'RUN_CMD' is already set to specific job submit command
instead of the default "mpirun -np 16 "

4) namelist.input is already for a standard 4DVAR RUN (in high resolution)

If everything is ready to go, just link/copy the wrapper script to the run
directory, call this wrapper script instead of da_wrfvar.exe for the
Multi-incremental 4DVAR run.

6. Platform

All the commands involved by this script are GNU/Linux commands on CentOS box.
If involved this script other than CentOS, commands may not run as your expect,
double check it before using.
Loading

0 comments on commit 5e94060

Please sign in to comment.