diff --git a/Registry/registry.var b/Registry/registry.var
index e3c6c9cfa3..498c1f4f5a 100644
--- a/Registry/registry.var
+++ b/Registry/registry.var
@@ -176,6 +176,12 @@ rconfig real rfmin namelist,wrfvar4 1 0.0 - "min
rconfig integer rf_noice namelist,wrfvar4 1 0 - "disable ice phace in H" "" ""
rconfig real radar_rf_rscl namelist,wrfvar4 1 1.0 - "weight of rf" "" ""
rconfig real radar_rv_rscl namelist,wrfvar4 1 1.0 - "weight of rv" "" ""
+rconfig logical use_lightningobs namelist,wrfvar4 1 .false. - "use_lightningobs" "" ""
+rconfig logical use_lightning_w namelist,wrfvar4 1 .false. - "use_lightning_w" "" ""
+rconfig logical use_lightning_qv namelist,wrfvar4 1 .false. - "use_lightning_qv" "" ""
+rconfig logical use_lightning_div namelist,wrfvar4 1 .false. - "use_lightning_div" "" ""
+rconfig real min_flashrate namelist,wrfvar4 1 2.0 - "min_flashrate" "" ""
+rconfig real lightning_min_rh namelist,wrfvar4 1 85. - "lightning_min_rh" "" ""
rconfig logical use_rainobs namelist,wrfvar4 1 .false. - "use_rainobs" "" ""
rconfig logical use_hirs2obs namelist,wrfvar4 1 .false. - "use_hirs2obs" "" ""
rconfig logical use_hirs3obs namelist,wrfvar4 1 .false. - "use_hirs3obs" "" ""
@@ -229,6 +235,9 @@ rconfig real max_error_buv namelist,wrfvar5 1 500.0 - "max
rconfig real max_error_bt namelist,wrfvar5 1 500.0 - "max_error_bt" "" ""
rconfig real max_error_bq namelist,wrfvar5 1 500.0 - "max_error_bq" "" ""
rconfig real max_error_slp namelist,wrfvar5 1 500.0 - "max_error_slp" "" ""
+rconfig real max_error_lda_w namelist,wrfvar5 1 5.0 - "max_error_lda_w" "" ""
+rconfig real max_error_lda_div namelist,wrfvar5 1 5.0 - "max_error_lda_div" "" ""
+rconfig real max_error_lda_qv namelist,wrfvar5 1 5.0 - "max_error_lda_qv" "" ""
rconfig logical check_buddy namelist,wrfvar5 1 .false. - "check_buddy" "" ""
rconfig logical put_rand_seed namelist,wrfvar5 1 .false. - "put_rand_seed" "" ""
rconfig logical omb_set_rand namelist,wrfvar5 1 .false. - "omb_set_rand" "" ""
diff --git a/arch/archive_configure.defaults b/arch/archive_configure.defaults
new file mode 100644
index 0000000000..8d4dfb7d6d
--- /dev/null
+++ b/arch/archive_configure.defaults
@@ -0,0 +1,11294 @@
+#
+# WARNING
+#
+# THIS IS THE OLD V2 CONFIGURE DEFAULTS FILE, KEPT AROUND FOR REFERENCE
+# BUT IS NOT USED OR MAINTAINED AT ALL IN V3. MOST OF THE COMMON SETTINGS
+# HAVE BEEN MOVED TO THE NEW V3 CONFIGURATION MECHANISM AND
+# FILE: configure_new.defaults
+# SEVERAL OTHER SETS OF OPTIONS HAVE BEEN PRESERVED BUT MOVED INTO THE
+# FILE: configure_old.defaults.
+#
+##########################################################
+#ARCH SGI 32 bit machine IRIX
+
+FC = f90
+SFC = $(FC)
+LD = f90
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+FCDEBUG = # -g
+FCBASEOPTS = -freeform -I. -w
+FCFLAGS = $(FCBASEOPTS)
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS =
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DLIMIT_ARGS $(DA_ARCHFLAGS)
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = echo
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the SGI Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH FC="$(FC) $(PROMOTION) -freeform -I." RANLIB="$(RANLIB)" CPP="$(CPP)" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" RANLIB="$(RANLIB)" CPP="$(CPP)" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_configure.o : module_configure.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_configure.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+
+###########################################################
+#ARCH SGI 32 bit machine, sycamore IRIX
+
+FC = f90
+SFC = $(FC)
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+FCDEBUG = # -g
+FCBASEOPTS = -freeform -I. -w
+FCFLAGS = -freeform -I. -w
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS =
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem \
+ -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -I$(WRF_SRC_ROOT_DIR)/inc
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DLIMIT_ARGS
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = echo
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the SGI Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH FC="$(FC) $(PROMOTION) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_configure.o : module_configure.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_configure.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH SGI 64 bit machine IRIX64 (single-threaded, no nesting)
+
+FC = f90
+SFC = $(FC)
+LD = f90
+CC = cc
+SCC = $(CC)
+CFLAGS = -64 -DLANDREAD_STUB -DNCARIBM_NOC99
+FCOPTIM = -O3
+RWORDSIZE = CONFIGURE_RWORDSIZE
+FCDEBUG = # -g
+FCBASEOPTS = -freeform -I. -64 -cpp -OPT:Olimit=5269 $(FCDEBUG) -w
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+PROMOTION = -r$(RWORDSIZE) -i4
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DINTIO -DLIMIT_ARGS -DLANDREAD_STUB
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) -64 -OPT:Olimit=5269 CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = echo
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the SGI Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH FC="$(FC) $(PROMOTION) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" RANLIB="$(RANLIB)" CPP="$(CPP)" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+module_configure.o : module_configure.F
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) -freeform -I. -64 -cpp -OPT:Olimit=5269 -w $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH SGI O2K IRIX
+
+FC = f90 -n32 -mips4 -w
+SFC = $(FC)
+LD = f90 -n32 -mips4 -w
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -n32 -mips4
+FCDEBUG = # -g
+FCBASEOPTS = -freeform -I. -w
+FCFLAGS = -freeform -I. -O3 -OPT:roundoff=3:IEEE_arithmetic=3 -OPT:fold_arith_limit=2001
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share \
+ -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+AR = ar ru
+M4 = m4 -B14000
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -C -P $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+RANLIB = echo
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the SGI Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_configure.o : module_configure.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_configure.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH SGI 64 bit machine IRIX64 (OpenMP, no nesting)
+
+OMP = -mp
+OMPCPP = -D_OPENMP
+FC = f90
+SFC = $(FC)
+LD = f90
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -64 -DLANDREAD_STUB -DNCARIBM_NOC99
+FCOPTIM = -O3
+FCDEBUG = # -g
+FCBASEOPTS = -freeform -I. -64 -cpp -OPT:Olimit=5269 $(FCDEBUG) -w
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DINTIO -DLIMIT_ARGS -DLANDREAD_STUB
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) -64 -OPT:Olimit=5269 CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = echo
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the SGI Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" RANLIB="$(RANLIB)" CPP="$(CPP)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_configure.o : module_configure.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_configure.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH Sun SunOS (single-threaded, no nesting)
+#
+FC = f95
+SFC = $(FC)
+LD = f95
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+PROMOTION = -xtypemap=real:$(RSIZEBITS),integer:32
+CFLAGS = -DNCARIBM_NOC99
+FCOPTIM = -O2 # -O4 -xlibmopt
+FCDEBUG = #-g
+FCBASEOPTS = -fnonstd -free -xpp=cpp $(FCDEBUG) -w
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem \
+ -M$(WRF_SRC_ROOT_DIR)/external/io_netcdf -M$(WRF_SRC_ROOT_DIR)/external/io_int -M$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -M$(WRF_SRC_ROOT_DIR)/frame -M$(WRF_SRC_ROOT_DIR)/share -M$(WRF_SRC_ROOT_DIR)/phys -M$(WRF_SRC_ROOT_DIR)/inc -M$(WRF_SRC_ROOT_DIR)/chem \
+ -M$(WRF_SRC_ROOT_DIR)/dyn_em
+ARCHFLAGS = $(COREDEFS) -DINTIO -DGRIB1 CONFIGURE_GRIB2_FLAG -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+#CPP = /opt/SUNWspro/bin/fpp
+CPP = /usr/ccs/lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the Sun Fortran compiler complains about long source lines, ####
+#### usually due to cpp translating __FILE__ to a full pathname. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCBASEOPTS) " )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCBASEOPTS) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" FC="$(SFC) $(PROMOTION) $(FCBASEOPTS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+solve_interface.o : solve_interface.F
+ $(RM) $@
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.F > $*.f90
+ $(FC) -c $(FCBASEOPTS) -I. $(PROMOTION) $(MODULE_DIRS) $*.f90
+
+# compile these without high optimization to speed compile
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+wrf_bdyin.o : wrf_bdyin.F
+wrf_bdyout.o : wrf_bdyout.F
+wrf_histin.o : wrf_histin.F
+wrf_histout.o : wrf_histout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_inputout.o : wrf_inputout.F
+wrf_restartin.o : wrf_restartin.F
+wrf_restartout.o : wrf_restartout.F
+module_configure.o : module_configure.F
+
+module_configure.o \
+shift_domain_em.o \
+wrf_bdyin.o wrf_bdyout.o \
+wrf_histin.o wrf_histout.o \
+wrf_inputin.o wrf_inputout.o \
+wrf_restartin.o wrf_restartout.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o mediation_interp_domain.o \
+mediation_force_domain.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH Sun SunOS SM (OpenMP, no nesting)
+#
+OMP = -mp=openmp -explicitpar -stackvar
+OMPCPP = -D_OPENMP
+FC = f95
+SFC = $(FC)
+LD = f95
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+PROMOTION = -xtypemap=real:$(RSIZEBITS),integer:32
+CFLAGS = -DNCARIBM_NOC99
+FCOPTIM = -O3 -xlibmopt
+FCDEBUG = #-g
+FCBASEOPTS = -fnonstd -free -xpp=cpp $(FCDEBUG) $(OMP) -w
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem \
+ -M$(WRF_SRC_ROOT_DIR)/external/io_netcdf -M$(WRF_SRC_ROOT_DIR)/external/io_int -M$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -M$(WRF_SRC_ROOT_DIR)/frame -M$(WRF_SRC_ROOT_DIR)/share -M$(WRF_SRC_ROOT_DIR)/phys -M$(WRF_SRC_ROOT_DIR)/inc -M$(WRF_SRC_ROOT_DIR)/chem \
+ -M$(WRF_SRC_ROOT_DIR)/dyn_em
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+#CPP = /opt/SUNWspro/bin/fpp
+CPP = /usr/ccs/lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the Sun Fortran compiler complains about long source lines, ####
+#### usually due to cpp translating __FILE__ to a full pathname. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCBASEOPTS) " )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCBASEOPTS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCBASEOPTS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" FC="$(SFC) $(PROMOTION) $(FCBASEOPTS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+solve_interface.o : solve_interface.F
+ $(RM) $@
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.F > $*.f90
+ $(FC) -c $(FCBASEOPTS) -I. $(PROMOTION) $(MODULE_DIRS) $*.f90
+
+# compile these without high optimization to speed compile
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH AIX (single-threaded, no nesting)
+#
+FC = xlf90_r
+SFC = $(FC)
+LD = xlf90_r
+CC = cc_r
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -DNCARIBM_NOC99
+FCOPTIM = -O2 -qarch=auto
+#FCOPTIM = -O3 -qhot
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -qspill=20000 $(FCDEBUG) -qmaxmem=32767 -w #-qflttrap=zerodivide:invalid:enable -qsigtrap
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+FCSUFFIX = -qsuffix=f=f90
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS = -lC
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS -DNATIVE_MASSV
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -lmass -lmassv \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+wrf_bdyout.o : wrf_bdyout.F
+wrf_bdyin.o : wrf_bdyin.F
+wrf_restartout.o : wrf_restartout.F
+wrf_restartin.o : wrf_restartin.F
+wrf_inputin.o : wrf_inputin.F
+wrf_inputout.o : wrf_inputout.F
+wrf_histin.o : wrf_histin.F
+wrf_histout.o : wrf_histout.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+module_configure.o : module_configure.F
+solve_interface.o : solve_interface.F
+solve_em.o : solve_em.F
+solve_nmm.o : solve_nmm.F
+module_integrate.o : module_integrate.F
+
+wrf_bdyout.o wrf_bdyin.o \
+wrf_restartout.o wrf_restartin.o wrf_inputin.o wrf_inputout.o wrf_histin.o wrf_histout.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o \
+mediation_integrate.o \
+mediation_interp_domain.o \
+module_configure.o \
+solve_interface.o \
+shift_domain_em.o \
+solve_em.o \
+solve_nmm.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90
+
+# to prevent having to call our service representative
+mediation_feedback_domain.o \
+mediation_force_domain.o start_domain.o module_integrate.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -g $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt $*.f90
+
+###########################################################
+#ARCH AIX (single-threaded, nesting, RSL_LITE w/o MPI)
+#
+FC = xlf90_r
+SFC = $(FC)
+LD = xlf90_r
+CC = cc_r
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -DNCARIBM_NOC99 -DSTUBMPI
+FCOPTIM = -O2 -qarch=auto
+#FCOPTIM = -O3 -qhot
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -qspill=20000 $(FCDEBUG) -qmaxmem=32767 -w -DSTUBMPI #-qflttrap=zerodivide:invalid:enable -qsigtrap
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+FCSUFFIX = -qsuffix=f=f90
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS = -lC
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS -DNATIVE_MASSV
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -lmass -lmassv \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC) $(CFLAGS)" FC="$(FC) $(FCFLAGS) $(PROMOTION) " MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization to speed compile
+wrf_bdyout.o : wrf_bdyout.F
+wrf_bdyin.o : wrf_bdyin.F
+wrf_restartout.o : wrf_restartout.F
+wrf_restartin.o : wrf_restartin.F
+wrf_inputin.o : wrf_inputin.F
+wrf_inputout.o : wrf_inputout.F
+wrf_histin.o : wrf_histin.F
+wrf_histout.o : wrf_histout.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+module_configure.o : module_configure.F
+solve_interface.o : solve_interface.F
+solve_em.o : solve_em.F
+solve_nmm.o : solve_nmm.F
+module_integrate.o : module_integrate.F
+
+wrf_bdyout.o wrf_bdyin.o \
+wrf_restartout.o wrf_restartin.o wrf_inputin.o wrf_inputout.o wrf_histin.o wrf_histout.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o \
+mediation_integrate.o \
+mediation_interp_domain.o \
+module_configure.o \
+solve_interface.o \
+shift_domain_em.o \
+solve_em.o \
+solve_nmm.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90
+
+# to prevent having to call our service representative
+mediation_feedback_domain.o \
+mediation_force_domain.o start_domain.o module_integrate.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -g $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt $*.f90
+
+###########################################################
+#ARCH AIX SM (OpenMP, no nesting)
+#
+OMP = -qsmp=noauto:noopt
+OMPCPP = -D_OPENMP
+FC = xlf90_r
+SFC = $(FC)
+LD = xlf90_r
+CC = cc_r
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -DNCARIBM_NOC99
+FCOPTIM = -O2 -qarch=auto
+#FCOPTIM = -O3 -qhot
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -w -qspill=20000 $(FCDEBUG) -qmaxmem=32767 #-qflttrap=zerodivide:invalid:enable -qsigtrap
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+FCSUFFIX = -qsuffix=f=f90
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS = -lC
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS -DNATIVE_MASSV
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -lmass -lmassv -lxlsmp \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+module_sm.o : module_sm.F
+module_tiles.o : module_tiles.F
+solve_em.o : solve_em.F
+solve_exp.o : solve_exp.F
+convert_nmm.o : convert_nmm.F
+
+module_sm.o module_tiles.o solve_em.o solve_exp.o convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(OMP) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt $*.f90
+
+# Compiled WITHOUT ANY SMP, needed Mar 2005
+module_domain.o : module_domain.F
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt $*.f90
+
+# compile these without high optimization to speed compile
+wrf_bdyout.o : wrf_bdyout.F
+wrf_bdyin.o : wrf_bdyin.F
+wrf_restartout.o : wrf_restartout.F
+wrf_restartin.o : wrf_restartin.F
+wrf_inputin.o : wrf_inputin.F
+wrf_inputout.o : wrf_inputout.F
+wrf_histin.o : wrf_histin.F
+wrf_histout.o : wrf_histout.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+module_configure.o : module_configure.F
+solve_interface.o : solve_interface.F
+module_integrate.o : module_integrate.F
+
+wrf_bdyout.o wrf_bdyin.o \
+wrf_restartout.o wrf_restartin.o wrf_inputin.o wrf_inputout.o wrf_histin.o wrf_histout.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o \
+mediation_integrate.o \
+mediation_interp_domain.o \
+module_configure.o \
+solve_interface.o \
+shift_domain_em.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90
+
+###########################################################
+#ARCH AIX SM (OpenMP, nesting, RSL_LITE w/o MPI)
+#
+OMP = -qsmp=noauto:noopt
+OMPCPP = -D_OPENMP
+FC = xlf90_r
+SFC = $(FC)
+LD = xlf90_r
+CC = cc_r
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -DNCARIBM_NOC99 -DSTUBMPI
+FCOPTIM = -O2 -qarch=auto
+#FCOPTIM = -O3 -qhot
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -w -qspill=20000 $(FCDEBUG) -qmaxmem=32767 -DSTUBMPI #-qflttrap=zerodivide:invalid:enable -qsigtrap
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+FCSUFFIX = -qsuffix=f=f90
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS = -lC
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS -DNATIVE_MASSV
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -lmass -lmassv -lxlsmp \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC) $(CFLAGS)" FC="$(FC) $(FCFLAGS) $(PROMOTION) " MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+module_sm.o : module_sm.F
+module_tiles.o : module_tiles.F
+solve_em.o : solve_em.F
+solve_exp.o : solve_exp.F
+convert_nmm.o : convert_nmm.F
+
+module_sm.o module_tiles.o solve_em.o solve_exp.o convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(OMP) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt $*.f90
+
+# Compiled WITHOUT ANY SMP, needed Mar 2005
+module_domain.o : module_domain.F
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt $*.f90
+
+# compile these without high optimization to speed compile
+wrf_bdyout.o : wrf_bdyout.F
+wrf_bdyin.o : wrf_bdyin.F
+wrf_restartout.o : wrf_restartout.F
+wrf_restartin.o : wrf_restartin.F
+wrf_inputin.o : wrf_inputin.F
+wrf_inputout.o : wrf_inputout.F
+wrf_histin.o : wrf_histin.F
+wrf_histout.o : wrf_histout.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+module_configure.o : module_configure.F
+solve_interface.o : solve_interface.F
+module_integrate.o : module_integrate.F
+
+wrf_bdyout.o wrf_bdyin.o \
+wrf_restartout.o wrf_restartin.o wrf_inputin.o wrf_inputout.o wrf_histin.o wrf_histout.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o \
+mediation_integrate.o \
+mediation_interp_domain.o \
+module_configure.o \
+solve_interface.o \
+shift_domain_em.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90
+
+###########################################################
+#ARCH AIX DM-Parallel (RSL_LITE, IBM-MPI, Allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+SFC = xlf90_r
+SCC = cc_r
+FC = mpxlf90_r
+LD = mpxlf90_r
+CC = mpcc_r
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -DNCARIBM_NOC99
+FCOPTIM = -O2 -qarch=auto
+#FCOPTIM = -O3 -qhot
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -w -qspill=20000 $(FCDEBUG) -qmaxmem=32767 #-qflttrap=zerodivide:invalid:enable -qsigtrap
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+FCSUFFIX = -qsuffix=f=f90
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS = -lC
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_pnetcdf \
+ -I$(WRF_SRC_ROOT_DIR)/external/io_int $(ESMF_IO_INC) \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc $(ESMF_MOD_INC)
+ARCHFLAGS = $(COREDEFS) -DRSL_LITE -DDM_PARALLEL -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) \
+ $(DA_ARCHFLAGS) \
+ -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG CONFIGURE_PNETCDF_FLAG \
+ -DTRIEDNTRUE -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DLIMIT_ARGS -DNATIVE_MASSV -DNMM_NEST=$(WRF_NMM_NEST) $(ESMF_IO_DEFS)
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH CONFIGURE_PNETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite -lmass -lmassv \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o $(ESMF_IO_LIB)
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+MAX_PROC = 1024
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+PNETCDFPATH = CONFIGURE_PNETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF CONFIGURE_WRFIO_PNF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F $(ESMF_TARGET) fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_pnf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_pnetcdf ; make NETCDFPATH=CONFIGURE_PNETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CFLAGS="$(CFLAGS)" CC="$(CC)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization
+wrf_bdyout.o : wrf_bdyout.F
+wrf_bdyin.o : wrf_bdyin.F
+wrf_restartout.o : wrf_restartout.F
+wrf_restartin.o : wrf_restartin.F
+wrf_inputin.o : wrf_inputin.F
+wrf_inputout.o : wrf_inputout.F
+wrf_histin.o : wrf_histin.F
+wrf_histout.o : wrf_histout.F
+module_configure.o : module_configure.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+solve_em.o : solve_em.F
+solve_nmm.o : solve_nmm.F
+
+wrf_bdyout.o wrf_bdyin.o \
+wrf_restartout.o wrf_restartin.o wrf_inputin.o wrf_inputout.o wrf_histin.o wrf_histout.o \
+module_configure.o module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o \
+mediation_force_domain.o \
+mediation_integrate.o \
+mediation_interp_domain.o \
+mediation_feedback_domain.o \
+solve_interface.o \
+shift_domain_em.o \
+solve_em.o \
+solve_nmm.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt $*.f90
+
+###########################################################
+#ARCH AIX DM-Parallel (RSL_LITE, IBM-MPI, Allows nesting )(PARALLEL HDF5)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+SFC = xlf90_r
+SCC = cc_r
+FC = mpxlf90_r
+LD = mpxlf90_r
+CC = mpcc_r
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -DNCARIBM_NOC99
+FCOPTIM = -O2 -qarch=auto
+#FCOPTIM = -O3 -qhot
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -w -qspill=20000 $(FCDEBUG) -qmaxmem=-1 #-qflttrap=zerodivide:invalid:enable -qsigtrap
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+FCSUFFIX = -qsuffix=f=f90
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS = -lC
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_phdf5 -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+ARCHFLAGS = $(COREDEFS) -DRSL_LITE -DDM_PARALLEL -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) \
+ $(DA_ARCHFLAGS) \
+ -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG CONFIGURE_PHDF5_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DLIMIT_ARGS -DNATIVE_MASSV
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH CONFIGURE_PHDF5_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite -lmass -lmassv \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+MAX_PROC = 1024
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 CONFIGURE_WRFIO_PHDF5 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_phdf5 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_phdf5 ; make PHDF5PATH=CONFIGURE_PHDF5_PATH FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qfree=F90 -qzerosize" ; /bin/cp wrf_io_flags.h wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization
+wrf_bdyout.o : wrf_bdyout.F
+wrf_bdyin.o : wrf_bdyin.F
+wrf_restartout.o : wrf_restartout.F
+wrf_restartin.o : wrf_restartin.F
+wrf_inputin.o : wrf_inputin.F
+wrf_inputout.o : wrf_inputout.F
+wrf_histin.o : wrf_histin.F
+wrf_histout.o : wrf_histout.F
+module_configure.o : module_configure.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+solve_em.o : solve_em.F
+solve_nmm.o : solve_nmm.F
+
+wrf_bdyout.o wrf_bdyin.o \
+wrf_restartout.o wrf_restartin.o wrf_inputin.o wrf_inputout.o wrf_histin.o wrf_histout.o \
+module_configure.o module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o \
+mediation_force_domain.o \
+mediation_integrate.o \
+mediation_interp_domain.o \
+mediation_feedback_domain.o \
+solve_interface.o \
+shift_domain_em.o \
+solve_em.o \
+solve_nmm.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt $*.f90
+
+###########################################################
+#ARCH AIX DM-Parallel (RSL_LITE, IBM-MPI, MCEL) May 2003, EXPERIMENTAL
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+SFC = xlf90_r
+SCC = cc_r
+FC = mpxlf90_r
+LD = mpCC_r
+CC = mpcc_r
+RWORDSIZE = CONFIGURE_RWORDSIZE
+MCELHOME = /home/bluesky/bettenc/disttest
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -DNCARIBM_NOC99
+FCOPTIM = -O2 -qarch=auto
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -w -qspill=20000 $(FCDEBUG) -qmaxmem=32767 #-qflttrap=zerodivide:invalid:enable -qsigtrap
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS = -lC
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+ARCHFLAGS = -DRSL_LITE -DDM_PARALLEL -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) \
+ $(DA_ARCHFLAGS) \
+ -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG -DTRIEDNTRUE -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DMCELIO -DLIMIT_ARGS \
+ -DNATIVE_MASSV
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite -lmass -lmassv -lxlsmp \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_mcel -lwrfio_mcel \
+-L$(MCELHOME)/MCELSystem/MCEL -lMCEL \
+-L$(MCELHOME)/lib -lomniORB4 \
+-lomnithread -lomniDynamic4 -lnetcdf_c++ -lnetcdf -lxlf90 -lxlopt \
+ -lxlf -lxlomp_ser -lm -lc -lpthread \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+MAX_PROC = 1024
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int wrfio_mcel gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( cat $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c > $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( cat module_dm_warning $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F > module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+wrfio_mcel :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_mcel ; \
+ make CC="$(CC)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -I$(WRF_SRC_ROOT_DIR)/inc -I../io_netcdf -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share \
+ -I$(MCELHOME)/MCELSystem/MCEL -qfree=f90" all )
+
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" FC="$(SFC) $(PROMOTION) $(FCFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization
+module_configure.o : module_configure.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+solve_em.o : solve_em.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o \
+module_configure.o \
+mediation_force_domain.o \
+mediation_integrate.o \
+mediation_interp_domain.o \
+mediation_feedback_domain.o \
+solve_interface.o \
+shift_domain_em.o \
+solve_em.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -qnoopt $*.f
+
+###########################################################
+#ARCH Linux ppc64 BG (Blue Gene, RSL_LITE, IBM-MPI)
+#
+# from sheeba
+BGL_SYS = /bgl/BlueLight/ppcfloor/bglsys
+MPI_INC = -I$(BGL_SYS)/include
+MPI_LIB = -L$(BGL_SYS)/lib -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts
+TRACE_LIB = -L/contrib/bgl/mpi_trace -lmpitrace_c
+
+SFC = blrts_xlf90
+SCC = blrts_xlc
+DMPARALLEL = 1
+FC = $(SFC)
+LD = $(FC)
+CC = $(SCC)
+
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -DNCARIBM_NOC99 $(MPI_INC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -DLANDREAD_STUB -DDM_PARALLEL
+FCOPTIM = -O2 -qarch=440
+FCDEBUG = # -qnoopt -qfullpath -qarch=440
+
+FCBASEOPTS = -qspill=20000 $(FCDEBUG) -qmaxmem=64000 $(MPI_INC) -w #-qflttrap=zerodivide:invalid:enable -qsigtrap
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_pnetcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+
+ARCHFLAGS = $(COREDEFS) -DDM_PARALLEL -DRSL_LITE -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG CONFIGURE_PNETCDF_FLAG \
+ -DLIMIT_ARGS -DNATIVE_MASSV -DLANDREAD_STUB
+
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH CONFIGURE_PNETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite -L/bgl/local/lib -lmass -lmassv \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L/home/michalak/fftpack5 -lfftpack \
+ $(TRACE_LIB) $(MPI_LIB)
+
+LDFLAGS = -Wl,--allow-multiple-definition -qstatic
+ENVCOMPDEFS =
+WRF_CHEM = 0
+CPP = /opt/ibmcmp/xlf/9.1/exe/cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DF90_STANDALONE -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+#### this is a hand installed version of m4 on frost.ucar.edu
+#### a copy is available at http://www.mmm.ucar.edu/wrf/WG2/BG/m4
+M4 = /home/janicec/m4 -B 12000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+PNETCDFPATH = CONFIGURE_PNETCDF_PATH
+CC_TOOLS = cc
+WRF_CONVERT = 0
+
+externals : wrf_ioapi_includes $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a CONFIGURE_WRFIO_NF CONFIGURE_WRFIO_PNF wrfio_int module_dm.F esmf_time gen_comms.c fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH="$(NETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_pnf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_pnetcdf ; make NETCDFPATH=CONFIGURE_PNETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(MPI_INC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CFLAGS="$(CFLAGS)" CC="$(CC)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+solve_interface.o : solve_interface.F
+ $(RM) $@
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.F > $*.f90
+ $(FC) -c -qfree=f90 -qspillsize=32767 -I. $(PROMOTION) $(MODULE_DIRS) $*.f90
+
+# compile these without high optimization to speed compile
+wrf_bdyout.o : wrf_bdyout.F
+wrf_bdyin.o : wrf_bdyin.F
+wrf_restartout.o : wrf_restartout.F
+wrf_restartin.o : wrf_restartin.F
+wrf_inputin.o : wrf_inputin.F
+wrf_inputout.o : wrf_inputout.F
+wrf_histin.o : wrf_histin.F
+wrf_histout.o : wrf_histout.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+module_configure.o : module_configure.F
+solve_em.o : solve_em.F
+start_em.o : start_em.F
+
+wrf_bdyout.o wrf_bdyin.o \
+wrf_restartout.o wrf_restartin.o wrf_inputin.o wrf_inputout.o wrf_histin.o wrf_histout.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o \
+mediation_integrate.o \
+mediation_interp_domain.o \
+module_configure.o \
+solve_em.o \
+start_em.o \
+shift_domain_em.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+# to prevent having to call our service representative
+mediation_feedback_domain.o \
+mediation_force_domain.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -g $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -qnoopt $*.f90
+
+###########################################################
+#ARCH Compaq OSF1 alpha (single-threaded, no nesting)
+#
+OMP =
+OMPCPP =
+FC = f90
+SFC = $(FC)
+LD = f90
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+ARCHFLAGS = $(COREDEFS) CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ $(DA_ARCHFLAGS) \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ -DLIMIT_ARGS -DFLOATSAFE
+PROMOTION = -real_size $(RSIZEBITS) -integer_size `expr 4 \* 8`
+CFLAGS = $(ARCHFLAGS)
+FCOPTIM = -fast -O4
+FCDEBUG = # -g
+FCDEBUG_ESMF = # -O0
+FCBASEOPTS = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG)
+FCBASEOPTS_ESMF = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG_ESMF)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+FCFLAGS_ESMF = $(FCOPTIM) $(FCBASEOPTS_ESMF) $(OMP)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share
+LDFLAGS = $(FCOPTIM) $(OMP) -automatic -convert big_endian $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P
+POUND_DEF = -DDEC_ALPHA -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCFLAGS_ESMF)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+nest_init_utils.o : nest_init_utils.F
+module_optional_si_input.o : module_optional_si_input.F
+
+nest_init_utils.o module_optional_si_input.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) -w -convert big_endian -automatic -cpp -free -I. -arch host $(MODULE_DIRS) $*.f90
+
+# compile these without high optimization to speed compile
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_interp_domain.o \
+mediation_force_domain.o \
+mediation_feedback_domain.o \
+module_initialize_real.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
+
+mediation_integrate.o : mediation_integrate.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+mediation_wrfmain.o : mediation_wrfmain.F
+solve_em.o : solve_em.F
+
+mediation_integrate.o module_dm.o module_comm_dm.o mediation_wrfmain.o solve_em.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS_ESMF) $(MODULE_DIRS) -O0 $*.f90
+
+###########################################################
+#ARCH Compaq OSF1 alpha SM (OpenMP, no nesting)
+#
+OMP = -omp
+OMPCPP = -D_OPENMP
+FC = f90
+SFC = $(FC)
+LD = f90
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+ARCHFLAGS = $(COREDEFS) CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ $(DA_ARCHFLAGS) \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ -DLIMIT_ARGS -DFLOATSAFE
+PROMOTION = -real_size $(RSIZEBITS) -integer_size `expr 4 \* 8`
+CFLAGS = $(ARCHFLAGS)
+FCOPTIM = -fast -O4
+FCDEBUG = # -g
+FCDEBUG_ESMF = # -O0
+FCREAL8OMP = -align records -align dcommons -granularity quadword
+FCBASEOPTS = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG) $(FCREAL8OMP)
+FCBASEOPTS_ESMF = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG_ESMF) $(FCREAL8OMP)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+FCFLAGS_ESMF = $(FCOPTIM) $(FCBASEOPTS_ESMF) $(OMP)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share
+LDFLAGS = $(FCOPTIM) $(OMP) -automatic -convert big_endian $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P
+POUND_DEF = -DDEC_ALPHA -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCREAL8OMP) -convert big_endian -automatic -cpp -free -w" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCREAL8OMP) -convert big_endian -automatic -cpp -free -w " archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCREAL8OMP) -convert big_endian -automatic -cpp -free -w " archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCFLAGS_ESMF)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+nest_init_utils.o : nest_init_utils.F
+module_optional_si_input.o : module_optional_si_input.F
+
+nest_init_utils.o module_optional_si_input.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) -w -convert big_endian -automatic -cpp -free -I. -arch host $(MODULE_DIRS) $*.f90
+
+# compile these without high optimization to speed compile
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_interp_domain.o \
+mediation_force_domain.o \
+mediation_feedback_domain.o \
+module_initialize_real.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
+
+mediation_integrate.o : mediation_integrate.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+mediation_wrfmain.o : mediation_wrfmain.F
+solve_em.o : solve_em.F
+
+mediation_integrate.o module_dm.o module_comm_dm.o mediation_wrfmain.o solve_em.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS_ESMF) $(MODULE_DIRS) -O0 $*.f90
+
+###########################################################
+#ARCH Compaq OSF1 alpha DM-Parallel (RSL_LITE, MPICH, allows ARW and NMM nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+FC = mpif90
+SFC = f90
+LD = mpif90
+CC = mpicc
+SCC = cc
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+ARCHFLAGS = $(COREDEFS) -DNETCDF -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ $(DA_ARCHFLAGS) \
+ -DDM_PARALLEL -DRSL_LITE \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ -DLIMIT_ARGS -DFLOATSAFE \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC)
+PROMOTION = -real_size $(RSIZEBITS) -integer_size `expr 4 \* 8`
+CFLAGS = $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -fast -O4
+FCDEBUG = #-g
+FCDEBUG_ESMF = # -O0
+FCBASEOPTS = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG)
+FCBASEOPTS_ESMF = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG_ESMF)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+FCFLAGS_ESMF = $(FCOPTIM) $(FCBASEOPTS_ESMF) $(OMP)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share
+LDFLAGS = $(FCOPTIM) -automatic -convert big_endian $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P
+POUND_DEF = -DDEC_ALPHA -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+MAX_PROC = 1024
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCFLAGS_ESMF)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; \
+ make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+nest_init_utils.o : nest_init_utils.F
+module_optional_si_input.o : module_optional_si_input.F
+module_IGWAVE_ADJUST.o : module_IGWAVE_ADJUST.F
+
+nest_init_utils.o module_optional_si_input.o module_IGWAVE_ADJUST.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) -w -convert big_endian -automatic -cpp -free -I. -arch host $(MODULE_DIRS) $*.f90
+
+# compile these without high optimization to speed compile
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+start_domain.o : start_domain.F
+start_domain_nmm.o : start_domain_nmm.F
+module_configure.o : module_configure.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_interp_domain.o \
+mediation_force_domain.o \
+mediation_feedback_domain.o \
+module_initialize_real.o start_domain.o start_domain_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
+
+mediation_integrate.o : mediation_integrate.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+mediation_wrfmain.o : mediation_wrfmain.F
+solve_em.o : solve_em.F
+
+mediation_integrate.o module_dm.o module_comm_dm.o mediation_wrfmain.o solve_em.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS_ESMF) $(MODULE_DIRS) -O0 $*.f90
+
+###########################################################
+#ARCH Compaq OSF1 alpha DM/SM (BUILD FOR AUTODOC ONLY -- DO NOT USE TO COMPILE CODE)
+#
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+FC = echo # mpif90
+SFC = echo # mpif90
+LD = echo # mpif90
+CC = echo # mpicc
+SCC = echo # cc
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+ARCHFLAGS = $(COREDEFS) -DAUTODOC_BUILD CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DWRF_RSL_IO \
+ $(DA_ARCHFLAGS) \
+ -DDM_PARALLEL="'DM_PARALLEL'" -DRSL_LITE="'RSL_LITE'" \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ -DLIMIT_ARGS -DFLOATSAFE \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -DMOVE_NESTS
+PROMOTION = -real_size $(RSIZEBITS) -integer_size `expr 4 \* 8`
+CFLAGS = $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -fast -O4
+FCDEBUG = # -g
+FCDEBUG_ESMF = # -O0
+FCBASEOPTS = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG)
+FCBASEOPTS_ESMF = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG_ESMF)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+FCFLAGS_ESMF = $(FCOPTIM) $(FCBASEOPTS_ESMF) $(OMP)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) -automatic -convert big_endian $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P
+POUND_DEF = -DDEC_ALPHA -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+MAX_PROC = 1024
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int $(WRF_SRC_ROOT_DIR)/external/RSL/librsl_lite.a gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCFLAGS_ESMF)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL/RSL/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; \
+ make CC="$(CC)" FC="$(FC) $(PROMOTION)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) all )
+
+# compile these without high optimization to speed compile
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+module_initialize_real.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
+
+mediation_integrate.o : mediation_integrate.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+mediation_wrfmain.o : mediation_wrfmain.F
+solve_em.o : solve_em.F
+
+mediation_integrate.o module_dm.o module_comm_dm.o mediation_wrfmain.o solve_em.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS_ESMF) $(MODULE_DIRS) -O0 $*.f90
+
+###########################################################
+#ARCH Compaq OSF1 alpha DM-Parallel (RSL_LITE, MPICH, allows ARW and NMM nesting, UNOPT shift_domain)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+FC = mpif90
+SFC = f90
+LD = mpif90
+CC = mpicc
+SCC = cc
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+ARCHFLAGS = $(COREDEFS) -DNETCDF -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ $(DA_ARCHFLAGS) \
+ -DDM_PARALLEL -DRSL_LITE \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ -DLIMIT_ARGS -DFLOATSAFE \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC)
+PROMOTION = -real_size $(RSIZEBITS) -integer_size `expr 4 \* 8`
+CFLAGS = $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -fast -O4
+FCDEBUG = #-g
+FCDEBUG_ESMF = # -O0
+FCBASEOPTS = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG)
+FCBASEOPTS_ESMF = -w -convert big_endian -automatic -cpp -free -I. -arch host $(FCDEBUG_ESMF)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+FCFLAGS_ESMF = $(FCOPTIM) $(FCBASEOPTS_ESMF) $(OMP)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share
+LDFLAGS = $(FCOPTIM) -automatic -convert big_endian $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P
+POUND_DEF = -DDEC_ALPHA -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+MAX_PROC = 1024
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make IO_GRIB_SHARE_DIR="$(WRF_SRC_ROOT_DIR)/external/io_grib_share/" CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -convert big_endian -automatic -cpp -free -w " archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCFLAGS_ESMF)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; \
+ make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+nest_init_utils.o : nest_init_utils.F
+module_optional_si_input.o : module_optional_si_input.F
+module_IGWAVE_ADJUST.o : module_IGWAVE_ADJUST.F
+
+nest_init_utils.o module_optional_si_input.o module_IGWAVE_ADJUST.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) -w -convert big_endian -automatic -cpp -free -I. -arch host $(MODULE_DIRS) $*.f90
+
+# compile these without high optimization to speed compile
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+start_domain.o : start_domain.F
+start_domain_nmm.o : start_domain_nmm.F
+module_configure.o : module_configure.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+shift_domain_em.o : shift_domain_em.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_interp_domain.o \
+mediation_force_domain.o \
+mediation_feedback_domain.o \
+shift_domain_em.o \
+module_initialize_real.o start_domain.o start_domain_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
+
+mediation_integrate.o : mediation_integrate.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+mediation_wrfmain.o : mediation_wrfmain.F
+solve_em.o : solve_em.F
+
+mediation_integrate.o module_dm.o module_comm_dm.o mediation_wrfmain.o solve_em.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS_ESMF) $(MODULE_DIRS) -O0 $*.f90
+
+###########################################################
+#ARCH Alpha Linux alpha DM (single-threaded, no nesting)
+#
+FC = fort
+SFC = $(FC)
+LD = fort
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DF2CSTYLE
+FCOPTIM = -fast -O4
+FCDEBUG = # -g
+FCBASENOINL = -convert big_endian -O1 -automatic -cpp -free -I. -arch host $(FCDEBUG)
+FCBASEOPTS = -w -convert big_endian -automatic -cpp -free -I. \
+ -arch host $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) -automatic -convert big_endian CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DDEC_ALPHA -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -traditional $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCBASENOINL) -w" TRADFLAG="-traditional" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASENOINL) -w" \
+ TRADFLAG="-traditional" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASENOINL) -w" \
+ TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASENOINL) -w" \
+ TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASENOINL) -w" \
+ TRADFLAG="-traditional" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASENOINL) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH Alpha Linux alpha SM (DOES NOT WORK ON JET! No nesting)
+#
+FC = fort
+SFC = $(FC)
+LD = fort
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DF2CSTYLE
+FCOPTIM = -fast -O4
+FCDEBUG = # -g
+FCBASENOINL = -convert big_endian -O1 -automatic -cpp -free -I. -arch host $(FCDEBUG)
+FCBASEOPTS = -w -convert big_endian -automatic -cpp -free -I. \
+ -arch host $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) -automatic -convert big_endian CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DDEC_ALPHA -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -traditional -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ /bin/cp module_dm_warning module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCBASENOINL) -w" TRADFLAG="-traditional" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASENOINL) -w" \
+ TRADFLAG="-traditional" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASENOINL) -w" \
+ TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASENOINL) -w" \
+ TRADFLAG="-traditional" archive )
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASENOINL) -w" \
+ TRADFLAG="-traditional" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASENOINL) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH VPP UNIX_System_V F300 5000
+#
+FC = frt
+SFC = $(FC)
+LD = frt
+CC = vcc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS =
+FCFLAGS = -Free -X9 -Am
+FCFLAGS = -Free -X9 -Sw -Wv,-Of,-te,-ilfunc,-noalias,-m3,-P255 -Oe,-P -Kfast -Am
+FCDEBUG = # -g
+FCBASEOPTS = $(FCFLAGS)
+ARCHFLAGS = $(COREDEFS) CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share
+LDFLAGS = -Wl,-P -J CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+LDFLAGS = -J CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P
+POUND_DEF = -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) -Free -X9" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) -Free -X9" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) -Free -X9" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -Free -X9" archive )
+
+###########################################################
+#ARCH Cray
+#
+FC = f90
+SFC = $(FC)
+CC = cc
+SCC = $(CC)
+NATIVE_RWORDSIZE = 8
+RWORDSIZE = CONFIGURE_RWORDSIZE
+# does this PROMOTION flag work on Cray?
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS =
+FCFLAGS = -f free -N 255 -I.
+FCDEBUG = # -g
+FCBASEOPTS = $(FCFLAGS)
+ARCHFLAGS = $(COREDEFS) -DCRAY CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DIWORDSIZE=8 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=8 \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /opt/ctl/bin/cpp
+POUND_DEF = -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+#LIB = CONFIGURE_NETCDF_LIB_PATH
+LIB = $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCFLAGS)" archive )
+
+solve_interface.o : solve_interface.F
+ $(RM) $@
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.F > $*.f90
+ $(FC) -c -O 0 $(PROMOTION) $(FCFLAGS) $*.f90
+
+###########################################################
+#ARCH PC Linux i486 i586 i686, PGI compiler (Single-threaded, no nesting)
+#
+FC = pgf90
+LD = pgf90
+CC = gcc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+SFC = $(FC)
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS =
+FCOPTIM = -O2 # -fast
+FCDEBUG = #-g
+FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+#FCBASEOPTS = -w -byteswapio -Mfree -Mipa=fast,inline,safe $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) -byteswapio CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+
+###########################################################
+#ARCH PC Linux i486 i586 i686, PGI compiler SM-Parallel (OpenMP, no nesting)
+#
+OMP = -mp
+OMPCPP = -D_OPENMP
+FC = pgf90
+LD = pgf90
+CC = gcc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+SFC = $(FC)
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS =
+FCOPTIM = -O2 # -fast
+FCDEBUG = #-g
+#FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = $(OMPCPP) -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+
+###########################################################
+#ARCH PC Linux i486 i586 i686, PGI compiler DM-Parallel (RSL_LITE, MPICH, Allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = mpif90 -f90=pgf90
+LD = mpif90 -f90=pgf90
+CC = mpicc -cc=gcc
+SCC = gcc
+SFC = pgf90
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+#FCOPTIM = -fastsse
+FCOPTIM = -O2 # -fast
+FCDEBUG = #-g
+#FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
+#Options for Debian Sarge systems
+#FCBASEOPTS = -w -byteswapio -Mfree -Mipa=fast,inline,safe $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS -DNMM_NEST=$(WRF_NMM_NEST)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -byteswapio $(FCFLAGS) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" FC="$(FC) $(FCFLAGS) $(PROMOTION) -byteswapio" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+
+###########################################################
+#ARCH PC Linux x86_64 (IA64 and Opteron), gfortran compiler 4.3.0 or higher (single threaded)
+#
+#
+OMP =
+OMPCPP =
+FC = gfortran
+LD = $(FC)
+CC = gcc
+SCC = gcc
+CC_TOOLS = $(SCC)
+SFC = gfortran
+RWORDSIZE = $(NATIVE_RWORDSIZE)
+FCOPTIM = -O3
+CFLAGS = -w -O3 -c -DLANDREAD_STUB
+FCDEBUG = # -O0 -g
+FCBASEOPTS = -fconvert=big-endian -frecord-marker=4 -I. $(FCDEBUG) -ffree-form
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DLIMIT_ARGS -DLANDREAD_STUB
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
+ -I../external -I../frame -I../share -I../phys -I../inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH $(OMP) \
+ -L../external/fftpack/fftpack5 -lfftpack \
+ -L../external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L../external/io_grib_share -lio_grib_share \
+ -L../external/io_int -lwrfio_int \
+ ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(OMP)
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL_LITE -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -G
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrfio_nf wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd ../external/io_netcdf ; \
+ make NETCDFPATH=/home/michalak/netcdf CPP="$(CPP)" FC="$(FC) -I../.. $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../../inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd ../external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd ../external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd ../external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd ../external/io_grib2 ; \
+ make CC="$(CC) " CPP="$(CPP) " RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd ../external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd ../external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+module_dm.o : module_dm.F
+solve_em.o : solve_em.F
+start_em.o : start_em.F
+
+solve_em.o \
+start_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) -O0 $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH PC Linux x86_64 (IA64 and Opteron), gfortran compiler 4.3.0 or higher (MPICH, RSL_LITE)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+MAX_PROC = 1024
+MPI_HOME = $(MPICH)
+FC = $(MPI_HOME)/bin/mpif90 -f90=gfortran
+LD = $(FC)
+CC = $(MPI_HOME)/bin/mpicc -cc=gcc
+SCC = gcc
+CC_TOOLS = $(SCC)
+SFC = gfortran
+RWORDSIZE = $(NATIVE_RWORDSIZE)
+FCOPTIM = -O3
+CFLAGS = -w -O3 -c -DDM_PARALLEL -I../external/RSL_LITE -DLANDREAD_STUB
+FCDEBUG = # -O0 -g
+FCBASEOPTS = -fconvert=big-endian -frecord-marker=4 -I. $(FCDEBUG) -ffree-form
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DLIMIT_ARGS -DLANDREAD_STUB
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
+ -I../external -I../frame -I../share -I../phys -I../inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L../external/RSL_LITE -lrsl_lite $(OMP) \
+ -L../external/fftpack/fftpack5 -lfftpack \
+ -L../external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L../external/io_grib_share -lio_grib_share \
+ -L../external/io_int -lwrfio_int \
+ ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(OMP)
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL_LITE -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -G
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrfio_nf ../external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 esmf_time fftpack
+
+gen_comms.c : ../external/RSL_LITE/gen_comms.c
+ ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
+ cat ../external/RSL_LITE/gen_comms.c >> ../tools/gen_comms.c )
+
+module_dm.F : ../external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat ../external/RSL_LITE/module_dm.F >> module_dm.F )
+
+../external/RSL_LITE/librsl_lite.a :
+ ( cd ../external/RSL_LITE ; make CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I../../.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd ../external/io_netcdf ; \
+ make NETCDFPATH=/home/michalak/netcdf CPP="$(CPP)" FC="$(FC) -I../.. $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../../inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd ../external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd ../external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd ../external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd ../external/io_grib2 ; \
+ make CC="$(CC) " CPP="$(CPP) " RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd ../external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd ../external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+module_dm.o : module_dm.F
+solve_em.o : solve_em.F
+start_em.o : start_em.F
+
+solve_em.o \
+start_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) -O0 $(MODULE_DIRS) $*.f90
+
+############################################################
+
+# These sub-directory builds are identical across all architectures
+wrfio_esmf :
+ ( cd ../external/io_esmf ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) $(ESMF_MOD_INC)" RANLIB="$(RANLIB)" CPP="$(CPP) $(POUND_DEF) " )
+
+
+#
+# Macros, these should be generic for all machines
+
+LN = ln -sf
+MAKE = make -i -r
+RM = rm -f
+
+# There is probably no reason to modify these rules
+
+wrf_ioapi_includes :
+ ( cd ../external/ioapi_share ; \
+ $(MAKE) NATIVE_RWORDSIZE="$(NATIVE_RWORDSIZE)" RWORDSIZE="$(RWORDSIZE)" )
+
+.F.i:
+ $(RM) $@
+ $(CPP) -I../inc $(CPPFLAGS) $*.F > $@
+ mv $*.i $(DEVTOP)/pick/$*.f90
+ cp $*.F $(DEVTOP)/pick
+
+.F.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -o $@ -c $(FCFLAGS) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 10 ; $(FC) -c $(FCFLAGS) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 10 ; $(FC) -c $(FCFLAGS) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90 ; \
+#PGI fi
+
+.F.f90:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I../inc $(CPPFLAGS) $*.b > $@
+ $(RM) $*.b
+
+.f90.o:
+ $(RM) $@
+ $(FC) -o $@ -c $(FCFLAGS) $(PROMOTION) $(FCSUFFIX) $*.f90
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 10 ; $(FC) -c $(FCFLAGS) $(PROMOTION) $(FCSUFFIX) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 10 ; $(FC) -c $(FCFLAGS) $(PROMOTION) $(FCSUFFIX) $*.f90 ; \
+#PGI fi
+
+.c.o:
+ $(RM) $@
+ $(CC) -o $@ -c $(CFLAGS) $*.c
+
+###########################################################
+#ARCH PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher (Single-threaded, no nesting)
+# Note that for 5.1.x comment out -Mpia=fast
+#
+FC = pgf90
+LD = pgf90
+CC = gcc
+SCC = $(CC)
+SFC = $(FC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DLANDREAD_STUB
+FCOPTIM = -fastsse #-Mipa=fast
+FCDEBUG = #-g
+#FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DLIMIT_ARGS -DLANDREAD_STUB
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH PC Linux x86_64 (IA64 and Opteron), PGI 5.2 or higher DM-Parallel (RSL_LITE, MPICH, Allows nesting)
+# Note that for 5.1.x comment out -Mpia=fast
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = mpif90
+LD = mpif90
+CC = mpicc
+SCC = gcc
+SFC = pgf90
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE \
+ -DLANDREAD_STUB
+FCOPTIM = -fastsse #-Mipa=fast
+FCDEBUG = #-g
+FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
+ $(DA_ARCHFLAGS) \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS -DLANDREAD_STUB -DNMM_NEST=$(WRF_NMM_NEST)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -byteswapio CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -byteswapio" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH Intel Itanium2 ia64 madison Linux (e.g. mpp2 at PNNL) , efc71 compiler DM-Parallel (RSL_LITE, MPICH, Allows nesting )
+# Notes for running on PNNL cluster:
+#
+# 1. source /home/oehmen/.mycshrc
+# 2. source /home/mscf/intel7.1/compiler70/ia64/bin/efcvars.csh
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+MAX_PROC = 2000
+FC = mpif90
+LD = mpif90
+CC = mpicc
+SCC = gcc
+SFC = efc
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DDM_PARALLEL -w -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) \
+ -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -size_lp64 -I/usr/lib/mpi/mpi_intel/include
+FCOPTIM = -O2 -ftz
+FCDEBUG = #-g
+FCBASEOPTS = $(FCDEBUG) -w -FR -I$(INCLUDE) -cm
+FCNOOPTS = -O0 $(FCDEBUG) -FR -I$(INCLUDE) -w -cm
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP) -size_lp64
+ARCHFLAGS = $(COREDEFS) -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DGRIB1 CONFIGURE_GRIB2_FLAG -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem \
+ -I/usr/lib/mpi/mpi_intel/include
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) -LCONFIGURE_NETCDF_PATH/lib -lnetcdf -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -lmpifarg -lmpi -lelan -lintrins -lPEPCF90 -limf -lguide -lunwind -lpthread -L/opt/mlib/lib/linux -lveclib8
+LDFLAGS = $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -traditional -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) \
+ -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) $(ARCHFLAGS) $(COREDEFS) $(OMPCPP) -I$(INCLUDE) \
+ -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -EP `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = ecc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='mpicc -w -I.' \
+ FC="$(FC) $(PROMOTION) $(FCFLAGS) -cm -w " MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCNOOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH titan.ncsa.uiuc.edu specific Intel Itanium2 ia64 mckinley Linux, efc compiler DM-Parallel (RSL_LITE, VMI, allows ARW and NMM nesting)
+#
+# Consider 'setenv F_UFMTENDIAN big' in your run scripts for big-endian output
+# Note hard-coded paths to Mark Straka's accounts and ecc6 libs
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 256
+FC = efc -I.. -I/usr/local/vmi/mpich/include
+LD = efc
+CC = ecc -I. -I/usr/local/vmi/mpich/include
+SCC = $(CC)
+SFC = efc
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE \
+-DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -size_lp64
+FCOPTIM = -O3 -ftz
+FCDEBUG = #-g
+FCBASEOPTS = $(FCDEBUG) -w -FR -I$(INCLUDE) -I. -cm
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP) -size_lp64
+ARCHFLAGS = $(COREDEFS) -DRSL_LITE -DDM_PARALLEL \
+-DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 -DNETCDF \
+$(DA_ARCHFLAGS) \
+-DGRIB1 CONFIGURE_GRIB2_FLAG
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+-I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -Vaxlib -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) -L/u/ncsa/straka/AUGUST.test/WRFV1/netcdfintel7/lib -lnetcdf -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+-L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+$(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L/usr/local/vmi/mpich/lib/ecc6 -lmpich -lfmpich -lvmi -ldl -lpthread -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -traditional -I$(LIBINCLUDE) -C -P $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = ecc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) -Vaxlib -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS) -w" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) -Vaxlib -I/usr/local/vmi/mpich/include $(FCDEBUG) $(FCFLAGS) -w" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -Vaxlib -I/usr/local/vmi/mpich/include $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" RANLIB="$(RANLIB)" FC="$(SFC) $(PROMOTION) -Vaxlib -I/usr/local/vmi/mpich/include $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" RANLIB="$(RANLIB)" FC="$(SFC) $(PROMOTION) -Vaxlib -I/usr/local/vmi/mpich/include $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='ecc -Vaxlib -I. -cm -w -I/usr/local/vmi/mpich/include' \
+ FC="$(FC) $(PROMOTION) $(FCFLAGS) -cm -w -Vaxlib -I$(WRF_SRC_ROOT_DIR)/.. " MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH AMD x86_64 Intel xeon i686 ia32 Xeon Linux, ifort compiler (single-threaded, no nesting)
+#
+OMP =
+OMPCPP =
+FC = ifort
+CC = gcc
+SCC = $(CC)
+SFC = $(FC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+PROMOTION = -real_size $(RSIZEBITS)
+FCDEBUG = # -g
+FCBASEOPTS = -w -FR -cm -I. -Vaxlib -convert big_endian -mp
+FCOPTIM = -O2
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+CFLAGS = -w
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+ARCHFLAGS = $(COREDEFS) -DLIMIT_ARGS -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) \
+ $(DA_ARCHFLAGS) \
+ -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG
+LD = $(FC)
+LDFLAGS = $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -traditional
+POUND_DEF = $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM \
+ -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -FR -I. -w" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+start_domain.o : start_domain.F
+wrf_bdyin.o : wrf_bdyin.F
+wrf_bdyout.o : wrf_bdyout.F
+wrf_histin.o : wrf_histin.F
+wrf_histout.o : wrf_histout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_inputout.o : wrf_inputout.F
+wrf_restartin.o : wrf_restartin.F
+wrf_restartout.o : wrf_restartout.F
+
+wrf_bdyin.o wrf_bdyout.o \
+wrf_histin.o wrf_histout.o \
+wrf_inputin.o wrf_inputout.o \
+wrf_restartin.o wrf_restartout.o \
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(OMP) $*.f90
+
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+module_configure.o : module_configure.F
+
+module_configure.o \
+module_dm.o module_comm_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(OMP) -g -O0 $*.f90
+
+###########################################################
+#ARCH AMD x86_64 Intel xeon i686 ia32 Xeon Linux, ifort compiler (OpenMP)
+#
+# Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option
+# has been identified to produce wrong results occationally.
+#
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+FC = ifort
+LD = ifort
+CC = gcc
+SCC = $(CC)
+SFC = $(FC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+PROMOTION = -real_size $(RSIZEBITS)
+CFLAGS =
+FCOPTIM = -O3 # -xW
+FCDEBUG = #-g
+FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -mp
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -traditional
+POUND_DEF = $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+solve_em.o : solve_em.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+
+solve_interface.o \
+solve_em.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_initialize_real.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(OMP) $(MODULE_DIRS) $*.f90
+
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+module_configure.o : module_configure.F
+
+module_configure.o \
+module_dm.o module_comm_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -g -O0 $*.f90
+
+###########################################################
+#ARCH AMD x86_64 Intel xeon i686 ia32 Xeon Linux, ifort+gcc compiler DM-Parallel (RSL_LITE, MPICH)
+#
+# Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option
+# has been identified to produce wrong results occationally.
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = mpif90 -f90=ifort
+LD = mpif90 -f90=ifort
+CC = mpicc -cc=gcc
+SCC = gcc
+SFC = ifort
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+PROMOTION = -real_size $(RSIZEBITS)
+FCOPTIM = -O3 # -xW
+FCDEBUG = #-g
+FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -mp
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DMPI \
+ -DLIMIT_ARGS
+CFLAGS = -w -DDM_PARALLEL $(ARCHFLAGS) \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) -convert big_endian CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = gcc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; \
+ make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+start_domain.o : start_domain.F
+solve_em.o : solve_em.F
+start_em.o : start_em.F
+mediation_integrate.o : mediation_integrate.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_initialize_real.o start_domain.o solve_em.o start_em.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+module_configure.o : module_configure.F
+
+module_configure.o \
+module_dm.o module_comm_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -g -O0 $*.f90
+
+###########################################################
+
+#ARCH NEC SUPER-UX SX-6 (serial)
+
+#***** some sx f90 compiler options***********
+# -V : version # of f90 command to stderr
+#-EP : activate cpp preprocessor to perform conditional compiling: output as i.[filename]
+#-Ep: activate cpp preprocessor to perfomr conditional compiling
+ #****However, cpp also activated by using .F or .F90 suffixes...
+# -Wf: specifies option string of the f90/sx detailed options
+#-g: debug info generated in object file for dbx symbolic debugging
+# -ew : all numbers size=8bytes
+#-eW: 4 bytes
+# -float0: default and only -float(number) option for sx6
+# -USX: unname the prev. defined reserved symbol SX of the preprocessor
+ # -U overrides -D, so '-USX -D$(RUNTIMESYSTEM)' might be redundant
+# -p: object file in execution format corresp. to 'prof' command be generated
+# -f4: input source program is described in F90 standard free format
+# -w: only syntax diagnostic messages at the fatal level are output
+# -C: specifies compile mode
+# ssafe: only safe optimization in scalar mode (minimize side effects of
+# opt. no loop unrolling, etc
+# -init : init stack and heap areas
+# -L fmtlist summary stdout: formatted list, transformation lists, summary list are output to stdout
+
+RUNTIME_SYSTEM = sx
+MPP_TARGET = $(RUNTIME_SYSTEM)
+FC = f90
+SFC = $(FC)
+CC = cc
+SCC = $(CC)
+LD = $(FC)
+NATIVE_RWORDSIZE = 8
+RWORDSIZE = CONFIGURE_RWORDSIZE
+ARCHFLAGS = $(COREDEFS) -DNETCDF -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DWRF_RSL_IO -DIWORDSIZE=8 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=8 -DLIMIT_ARGS -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) $(DA_ARCHFLAGS)
+PROMOTION =
+CFLAGS = $(ARCHFLAGS)
+
+FCFLAGS = -w -Ep -C ssafe \
+ -sx6 -USX -ew -D$(RUNTIME_SYSTEM) -I$(LIBINCLUDE) -I$(WRF_SRC_ROOT_DIR)/inc -f4
+ # -Wf"-init stack=zero heap=zero"
+ # -Wf"-L transform fmtlist summary stdout" -g
+FCDEBUG = # -g
+FCBASEOPTS = $(FCFLAGS) -w
+
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int \
+ -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/usr/local/netcdf/current/lib -lnetcdf -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o
+
+#-lmpi for 4byte storage, -lmpiw for 8 byte storage
+#LDOPTIONS = -lmpiw -ew
+CPP = /lib/cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF) $(ARCHFLAGS)
+
+MAX_PROC = 8
+MAKE = make -i -r
+AWK = awk
+SED = sed
+CAT = cat
+CUT = cut
+EXPAND = expand
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = ar ru
+NETCDFPATH = /usr/local/netcdf/current
+CC_TOOLS = $(CC)
+ARCH_OBJS = milliclock.o
+ASSUME_HOMOGENEOUS_ENVIRONMENT = 1
+FLIC_MACROS = LMvpp.m4 -B 14000
+VECTOR = 1
+
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int esmf_time module_dm.F fftpack
+
+module_dm.F:
+ ( /sbin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=/usr/local/netcdf/current FC="$(FC) $(PROMOTION) $(FCFLAGS)" )
+
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCFLAGS)" archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ;\
+ make FC="$(FC) $(PROMOTION) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) $(CPPFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_configure.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCFLAGS) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH SGI Altix, Intel Itanium2 ia64 Linux, ifort+icc 9.x,10.x DM-Parallel (SGI MPI, OpenMP, RSL_LITE, allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+#
+# Hybrid OpenMP+MPI configurations might be helpfull to improve scaling for multicore architecures
+# and reasonably large workloads (i.e. for CONUT12km hybrid configurations are not likely to give any
+# performance improvements).
+#
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+#
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = /usr
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -openmp
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -ftz -align all -FR -convert big_endian \
+ -fno-alias -tpp2 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L/usr/lib -lmpi -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH SGI Altix, Intel Itanium2 ia64 Linux, ifort+icc 9.x,10.x DM-Parallel (SGI MPI, RSL_LITE, allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+#
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+#
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = /usr
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -ftz -align all -FR -convert big_endian \
+ -fno-alias -tpp2 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L/usr/lib -lmpi -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH SGI Altix/Generic Intel Itanium2 ia64 Linux, ifort+icc 9.x,10.x SM-Parallel (OpenMP, no nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+#
+# Hybrid OpenMP+MPI configurations might be helpfull to improve scaling for multicore architecures
+# and reasonably large workloads (i.e. for CONUT12km hybrid configurations are not likely to give any
+# performance improvements).
+#
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+#
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL =
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME =
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -openmp
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -ftz -align all -FR -convert big_endian \
+ -fno-alias -tpp2 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ CONFIGURE_NETCDF_LIB_PATH \
+ \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -C -P \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH SGI Altix/Generic Intel Itanium2 ia64 Linux, ifort+icc 9.x,10.x Sequential (no nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+#
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+#
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL =
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME =
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -ftz -align all -FR -convert big_endian \
+ -fno-alias -tpp2 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ CONFIGURE_NETCDF_LIB_PATH \
+ \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -C -P \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH SGI Altix, Dual-Core Intel Itanium2 Processor 9000 Sequence ia64 Linux, ifort+icc 9.x,10.x DM-Parallel (SGI MPI, OpenMP, RSL_LITE, allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+#
+# Hybrid OpenMP+MPI configurations might be helpfull to improve scaling for multicore architecures
+# and reasonably large workloads (i.e. for CONUT12km hybrid configurations are not likely to give any
+# performance improvements).
+#
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+#
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = /usr
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -openmp
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -ftz -align all -FR -convert big_endian \
+ -fno-alias -mtune=itanium2-p9000 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L/usr/lib -lmpi -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# OpenMP workaround for solve_em.F
+# This should be fixed in newer versions of Intel Fortran Compiler (somewhere after 9.1.041).
+# You can check if you really need this workaround by building without the following rule
+# and making sure that output of "nm solve_em.o | grep kmp" contains kmpc_fork_call.
+solve_em.o : solve_em.F
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) $(OMP) -O0 -override-limits $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH SGI Altix, Dual-Core Intel Itanium2 Processor 9000 Sequence ia64 Linux, ifort+icc 9.x,10.x DM-Parallel (SGI MPI, RSL_LITE, allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+#
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+#
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = /usr
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -ftz -align all -FR -convert big_endian \
+ -fno-alias -mtune=itanium2-p9000 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L/usr/lib -lmpi -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH SGI Altix/Generic Dual-Core Intel Itanium2 Processor 9000 Sequence ia64 Linux, ifort+icc 9.x,10.x SM-Parallel (OpenMP, no nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+#
+# Hybrid OpenMP+MPI configurations might be helpfull to improve scaling for multicore architecures
+# and reasonably large workloads (i.e. for CONUT12km hybrid configurations are not likely to give any
+# performance improvements).
+#
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+#
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL =
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME =
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -openmp
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -ftz -align all -FR -convert big_endian \
+ -fno-alias -mtune=itanium2-p9000 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ CONFIGURE_NETCDF_LIB_PATH \
+ \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -C -P \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# OpenMP workaround for solve_em.F
+# This should be fixed in newer versions of Intel Fortran Compiler (somewhere after 9.1.041).
+# You can check if you really need this workaround by building without the following rule
+# and making sure that output of "nm solve_em.o | grep kmp" contains kmpc_fork_call.
+solve_em.o : solve_em.F
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) $(OMP) -O0 -override-limits $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH SGI Altix/Generic Dual-Core Intel Itanium2 Processor 9000 Sequence ia64 Linux, ifort+icc 9.x,10.x Sequential (no nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+#
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+#
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL =
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME =
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -ftz -align all -FR -convert big_endian \
+ -fno-alias -mtune=itanium2-p9000 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ CONFIGURE_NETCDF_LIB_PATH \
+ \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -C -P \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+
+###########################################################
+#ARCH UNICOS/mp machine crayx1 (RSL_LITE, MPI, MSP mode)
+#
+# Cray X1 (RSL_LITE, MPI, MSP mode)
+# For CSD mode set numtiles=4 in &domains section
+# in namelist.input for best MSP efficiency.
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = ftn
+SFC = $(FC)
+LD = ftn
+CC = cc
+SCC = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script converts !$OMP directives to !csd$ directives ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/cray_csd.sed
+
+## Use these for X1 cross compiler to build Registry
+##X1_CROSS_COMP = "gcc"
+##X1_CROSS_CFLG = ""
+## Use these for X1 native (trigger) compiler
+X1_CROSS_COMP = "cc"
+X1_CROSS_CFLG = "-hcommand"
+CC_TOOLS = $(X1_CROSS_COMP) $(X1_CROSS_CFLG)
+
+RWORDSIZE = CONFIGURE_RWORDSIZE
+FCDEBUG = # -g
+FCBASEOPTS = -f free -N 255 -I. -x omp -dy
+FCFLAGS_LOWOPT = $(FCBASEOPTS) -O1
+FCFLAGS = $(FCBASEOPTS) -Ofp3 -O3 -Ogen_private_callee
+#if using 64bit precision
+#PROMOTION = -sreal64 -dp -sinteger32
+CFLAGS = -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -DMAXDOM_MAKE=$(MAX_DOMAINS) \
+ -DMAXPROC_MAKE=$(MAX_PROC) -DDM_PARALLEL -UCRAY -DLANDREAD_STUB -Dcrayx1
+
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/inc \
+ -p./ -p$(WRF_SRC_ROOT_DIR)/external/io_netcdf -p$(WRF_SRC_ROOT_DIR)/external/io_int -p$(WRF_SRC_ROOT_DIR)/frame \
+ -p$(WRF_SRC_ROOT_DIR)/frame -p$(WRF_SRC_ROOT_DIR)/share -p$(WRF_SRC_ROOT_DIR)/phys -p$(WRF_SRC_ROOT_DIR)/chem \
+ -p$(WRF_SRC_ROOT_DIR)/dyn_em -p $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90
+ARCHFLAGS = $(COREDEFS) -DRSL_LITE -DDM_PARALLEL -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) \
+ -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS -Dcrayx1
+
+PERL = perl
+REGISTRY = Registry
+
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time -lmalloc
+
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+LDFLAGS =
+
+CPP = cpp -C -P -Dcrayx1
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) #
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = echo
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP) -Dcrayx1" FC="$(FC) $(PROMOTION) -f free -N 255 " )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) -f free -N 255" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP) -Dcrayx1" FC="$(FC) $(PROMOTION) -f free -N 255" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC) -UCRAY" CPP="$(CPP) -Dcrayx1" RANLIB="$(RANLIB)" \
+ FC="$(FC) $(PROMOTION) -f free -N 255" archive )
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) -UCRAY" CPP="$(CPP) CONFIGURE_GRIB2_INC -Dcrayx1" RM="$(RM)" RANLIB="$(RANLIB)" \
+ FC="$(SFC) $(PROMOTION) -f free -N 255" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) -f free -N 255" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CFLAGS="$(CFLAGS)" CC="$(CC)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" \
+ MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+convert_nmm.o : convert_nmm.F
+module_configure.o : module_configure.F
+solve_em.o : solve_em.F
+solve_interface.o : solve_interface.F
+wrf_restartout.o : wrf_restartout.F
+wrf_restartin.o : wrf_restartin.F
+input_wrf.o : input_wrf.F
+output_wrf.o : output_wrf.F
+
+module_io_mm5.o module_si_io.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o \
+mediation_interp_domain.o \
+mediation_force_domain.o \
+module_configure.o solve_em.o \
+input_wrf.o output_wrf.o \
+solve_interface.o wrf_restartout.o wrf_restartin.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCFLAGS_LOWOPT) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH HP-UX PA8600 32bit (single-threaded, no nesting)
+#
+OMP =
+OMPCPP =
+FC = f90
+SFC = $(FC)
+LD = f90
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+ARCHFLAGS = $(COREDEFS) CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DLIMIT_ARGS -DFLOATSAFE \
+ $(DA_ARCHFLAGS) \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = $(ARCHFLAGS) +DS2.0a -DNOUNDERSCORE
+FCOPTIM = +O3 +DA2.0N +DS2.0a +Odataprefetch +Olibcalls +DO11.0EP9806 +noppu \
+ +save +fastallocatable +Ofltacc +extend_source +source=free +FPD
+FCDEBUG = # -g
+FCBASEOPTS = +U77 +source=free -I. +DS2.0a +noppu +Onoopenmp $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = echo
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) " )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" RANLIB="$(RANLIB)" \
+ FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " archive )
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC)" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" \
+ FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+mediation_integrate.o : mediation_integrate.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_configure.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o mediation_integrate.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCFLAGS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH HP-UX Itanium2 (single-threaded, no nesting)
+#
+OMP =
+OMPCPP =
+FC = f90
+SFC = $(FC)
+LD = f90
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+ARCHFLAGS = $(COREDEFS) CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DLIMIT_ARGS -DFLOATSAFE \
+ $(DA_ARCHFLAGS) \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = $(ARCHFLAGS) +DSitanium2 -DNOUNDERSCORE
+FCOPTIM = +O3 +Odataprefetch +Olibcalls +DO11.23 +noppu \
+ +save +fastallocatable +Ofltacc +extend_source +source=free +FPD
+FCDEBUG = # -g
+FCBASEOPTS = +U77 +source=free -I. +DSitanium2 +noppu +Onoopenmp $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = echo
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) " )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" RANLIB="$(RANLIB)" \
+ FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " archive )
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC)" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" \
+ FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+mediation_integrate.o : mediation_integrate.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_configure.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o mediation_integrate.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCFLAGS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH HP-UX PA8600 32bit (openmp, no nesting)
+#
+OMP = +Oopenmp
+OMPCPP = -D_OPENMP
+FC = f90
+SFC = $(FC)
+LD = f90
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+ARCHFLAGS = $(COREDEFS) CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DLIMIT_ARGS -DFLOATSAFE \
+ $(DA_ARCHFLAGS) \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = $(ARCHFLAGS) +DS2.0a -DNOUNDERSCORE
+FCOPTIM = +O3 +DA2.0N +DS2.0a +Odataprefetch +Olibcalls +DO11.0EP9806 +noppu \
+ +save +fastallocatable +Ofltacc +extend_source +source=free +FPD
+FCDEBUG = # -g
+FCBASEOPTS = +U77 +source=free -I. +DS2.0a $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCOPTIM) $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B14000
+RANLIB = echo
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) " )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" RANLIB="$(RANLIB)" \
+ FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " archive )
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC)" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" \
+ FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc " archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+mediation_integrate.o : mediation_integrate.F
+start_domain.o : start_domain.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_configure.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o mediation_integrate.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCFLAGS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH Darwin (single-threaded, xlf, no nesting)
+#
+# Using -qfloat=nomaf option can result in identical results with
+# non-optimized and optimized results (suggested by Fovell of UCLA)
+# One may turn on by uncommenting it in FCOPTIM line
+#
+FC = xlf90_r
+SFC = $(FC)
+LD = xlf90_r
+#CC = cc_r
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -DLANDREAD_STUB -I /usr/include/sys -DMACOS
+FCOPTIM = -O3 -qarch=auto #-qfloat=nomaf
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -qsave $(FCDEBUG) -qmaxmem=32767 -qspillsize=32767 -w
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+FCSUFFIX = -qsuffix=f=f90
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS -DLANDREAD_STUB -DMAC_KLUDGE
+# -DLIMIT_ARGS -DNATIVE_MASSV -DMACOS
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+#LIB = CONFIGURE_NETCDF_LIB_PATH -lmass -lmassv
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+
+LDFLAGS = -Wl,-stack_size,10000000,-stack_addr,0xc0000000 CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+#CPP = /opt/ibmcmp/xlf/8.1/exe/cpp -C -P
+CPP = /usr/bin/cpp -C -P -xassembler-with-cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+solve_interface.o : solve_interface.F
+ $(RM) $@
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.F > $*.f90
+ $(FC) -c -qfree=f90 -qspillsize=32767 -I. $(PROMOTION) $(MODULE_DIRS) $(FCSUFFIX) $*.f90
+
+# compile these without high optimization to speed compile
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+solve_em.o : solve_em.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+module_configure.o : module_configure.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o \
+shift_domain_em.o \
+mediation_interp_domain.o \
+module_configure.o \
+solve_em.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90
+
+###########################################################
+#ARCH Darwin (OpenMP, xlf, no nesting)
+#
+# Using -qfloat=nomaf option can result in identical results with
+# non-optimized and optimized results (suggested by Fovell of UCLA)
+# One may turn on by uncommenting it in FCOPTIM line
+#
+OMP = -qsmp=noauto
+OMPCPP = -D_OPENMP
+FC = xlf90_r
+SFC = $(FC)
+LD = xlf90_r
+CC = cc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -DLANDREAD_STUB -I /usr/include/sys -DMACOS
+FCOPTIM = -O2 -qarch=auto -qunroll=yes #-qfloat=nomaf
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -w -qsave $(FCDEBUG) -qmaxmem=32767 -qspillsize=32767 #-qflttrap=zerodivide:invalid:enable -qsigtrap
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+FCSUFFIX = -qsuffix=f=f90
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS -DLANDREAD_STUB -DMACOS -DMAC_KLUDGE
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -lxlsmp \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(OMP) -Wl,-stack_size,10000000,-stack_addr,0xc0000000 CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P -xassembler-with-cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(OMPCPP) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+
+module_configure.o : module_configure.F
+module_domain.o : module_domain.F
+module_sm.o : module_sm.F
+module_tiles.o : module_tiles.F
+solve_em.o : solve_em.F
+solve_exp.o : solve_exp.F
+convert_nmm.o : convert_nmm.F
+
+module_configure.o module_sm.o module_tiles.o solve_em.o solve_exp.o convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -g $(PROMOTION) $(OMP) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt -qnohot $*.f90
+
+module_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F90 > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -g $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) -qnoopt -qnohot $*.f90
+
+###########################################################
+#ARCH Darwin (OpenMP, pgf90, no nesting)
+#
+# Using -qfloat=nomaf option can result in identical results with
+# non-optimized and optimized results (suggested by Fovell of UCLA)
+# One may turn on by uncommenting it in FCOPTIM line
+#
+OMP = -mp
+OMPCPP = -D_OPENMP
+FC = pgf90
+LD = pgf90
+CC = pgcc
+SCC = $(CC)
+SFC = $(FC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DMACOS
+FCOPTIM = -O2 # -fast
+FCDEBUG = #-g
+#FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DMACOS \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P -xassembler-with-cpp
+POUND_DEF = $(OMPCPP) -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(OMP) $*.f90
+
+###########################################################
+#ARCH Darwin (ifort, single-threaded, no nesting)
+#
+# Using -qfloat=nomaf option can result in identical results with
+# non-optimized and optimized results (suggested by Fovell of UCLA)
+# One may turn on by uncommenting it in FCOPTIM line
+#
+OMP =
+OMPCPP =
+FC = ifort
+LD = ifort
+CC = gcc
+SCC = $(CC)
+SFC = $(FC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+PROMOTION = -real_size $(RSIZEBITS)
+CFLAGS = -DMACOS
+FCOPTIM = -O3 # -fast
+FCDEBUG = #-g
+FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -mp
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DMACOS \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS -i-static -static-libcxa
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P -xassembler-with-cpp
+POUND_DEF = $(OMPCPP) -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(OMP) $*.f90
+
+
+###########################################################
+#ARCH Darwin (ifort, single-threaded, nesting, RSL_LITE w/o MPI)
+#
+# Using -qfloat=nomaf option can result in identical results with
+# non-optimized and optimized results (suggested by Fovell of UCLA)
+# One may turn on by uncommenting it in FCOPTIM line
+#
+OMP =
+OMPCPP =
+FC = ifort
+LD = ifort
+CC = gcc
+SCC = $(CC)
+SFC = $(FC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+PROMOTION = -real_size $(RSIZEBITS)
+CFLAGS = -DMACOS -DSTUBMPI
+FCOPTIM = -O3 # -fast
+FCDEBUG = #-g
+FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -mp -DSTUBMPI
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DMACOS \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS -i-static -static-libcxa
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P -xassembler-with-cpp
+POUND_DEF = $(OMPCPP) -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC) $(CFLAGS)" FC="$(FC) $(FCFLAGS) $(PROMOTION) -byteswapio" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(OMP) $*.f90
+
+###########################################################
+#ARCH Darwin (OpenMP, ifort, no nesting)
+#
+# Using -qfloat=nomaf option can result in identical results with
+# non-optimized and optimized results (suggested by Fovell of UCLA)
+# One may turn on by uncommenting it in FCOPTIM line
+#
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+FC = ifort
+LD = ifort
+CC = gcc
+SCC = $(CC)
+SFC = $(FC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+RSIZEBITS = `expr $(RWORDSIZE) \* 8`
+PROMOTION = -real_size $(RSIZEBITS)
+CFLAGS = -DMACOS
+FCOPTIM = -O3 # -fast
+FCDEBUG = #-g
+FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -mp
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG -DMACOS \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS -i-static -static-libcxa
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P -xassembler-with-cpp
+POUND_DEF = $(OMPCPP) -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(OMP) $*.f90
+
+###########################################################
+#ARCH Darwin (RSL_LITE, pgf90, OpenMP, allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+OMP = -mp
+OMPCPP = -D_OPENMP
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = mpif90 -f90=pgf90
+LD = mpif90 -f90=pgf90
+CC = mpicc -cc=pgcc
+SCC = pgcc
+SFC = pgf90
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -DMACOS
+#FCOPTIM = -fastsse
+FCOPTIM = -O2 # -fast
+FCDEBUG = #-g
+#FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
+#Options for Debian Sarge systems
+#FCBASEOPTS = -w -byteswapio -Mfree -Mipa=fast,inline,safe $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL -DMACOS \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS -DNMM_NEST=$(WRF_NMM_NEST)
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite $(OMP) \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -byteswapio $(FCFLAGS) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P -xassembler-with-cpp
+POUND_DEF = $(OMPCPP) -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC) $(CFLAGS)" FC="$(FC) $(FCFLAGS) $(PROMOTION) -byteswapio" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(OMP) $*.f90
+
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+#PGI if [ ! -e $@ ] ; then \
+#PGI sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+#PGI fi
+
+###########################################################
+#ARCH Darwin (single-threaded, no nesting, USES: gcc-3.3, xlf cpp, SystemStubs)
+#
+# Using -qfloat=nomaf option can result in identical results with
+# non-optimized and optimized results (suggested by Fovell of UCLA)
+# One may turn on by uncommenting it in FCOPTIM line
+#
+FC = xlf90_r
+SFC = $(FC)
+LD = xlf90_r
+#CC = cc_r
+CC = gcc-3.3
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
+CFLAGS = -DNOUNDERSCORE -DLANDREAD_STUB -I /usr/include/sys -DMACOS
+FCOPTIM = -O3 -qarch=auto #-qfloat=nomaf
+FCDEBUG = # -qnoopt -qfullpath
+FCBASEOPTS = -qsave $(FCDEBUG) -qmaxmem=32767 -qspillsize=32767 -w
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+FCSUFFIX = -qsuffix=f=f90
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG \
+ -DLIMIT_ARGS -DLANDREAD_STUB -DMAC_KLUDGE
+# -DLIMIT_ARGS -DNATIVE_MASSV -DMACOS
+PERL = CONFIGURE_PERL_PATH
+REGISTRY = Registry
+#LIB = CONFIGURE_NETCDF_LIB_PATH -lmass -lmassv
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+
+LDFLAGS = -Wl,-stack_size,10000000,-stack_addr,0xc0000000 CONFIGURE_LDFLAGS -L/usr/lib -lSystemStubs
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /opt/ibmcmp/xlf/8.1/exe/cpp -C -P
+#CPP = /usr/bin/cpp -C -P -xassembler-with-cpp
+POUND_DEF = -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC -qcpluscmt" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCSUFFIX) -qarch=auto -qzerosize" FREE="" FIXED="-qfixed" archive)
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+solve_interface.o : solve_interface.F
+ $(RM) $@
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.F > $*.f90
+ $(FC) -c -qfree=f90 -qspillsize=32767 -I. $(PROMOTION) $(MODULE_DIRS) $(FCSUFFIX) $*.f90
+
+# compile these without high optimization to speed compile
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+solve_em.o : solve_em.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+convert_nmm.o : convert_nmm.F
+module_configure.o : module_configure.F
+
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_initialize_real.o module_dm.o module_comm_dm.o \
+shift_domain_em.o \
+mediation_interp_domain.o \
+module_configure.o \
+solve_em.o \
+convert_nmm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90
+
+###########################################################
+#ARCH Darwin g95 (Single-threaded, no nesting)
+#
+FC = g95
+LD = g95
+CC = gcc -DMACOS -DF2CSTYLE
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+SFC = $(FC)
+# g95 does not like -r4. if you want promotion to -r8 add it to PROMOTION below
+#PROMOTION = -r$(RWORDSIZE) -i4
+PROMOTION = -i4
+CFLAGS =
+FCOPTIM = -O2 # -fast
+FCDEBUG = #-g -O0
+FCBASEOPTS = -Wno=101,139,155,158 -fendian=big -ffree-form -ffree-line-length-huge $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ -DNETCDF -DGRIB1 -DLIMIT_ARGS -DG95 -DMACOS -DF2CSTYLE
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -fmod=$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS)
+ENVCOMPDEFS =
+WRF_CHEM = 0
+CPP = /usr/bin/cpp -C -P -traditional
+POUND_DEF = $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes wrfio_nf wrfio_grib_share wrfio_grib1 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) " RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-ffixed-form" archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH Darwin g95 compiler DM-Parallel (RSL_LITE, MPICH, Allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = mpif90 -f90=g95
+LD = mpif90 -f90=g95
+CC = mpicc -cc=gcc -DMACOS -DF2CSTYLE
+SCC = gcc -DMACOS -DF2CSTYLE
+SFC = g95
+RWORDSIZE = CONFIGURE_RWORDSIZE
+# g95 does not like -r4. if you want promotion to -r8 add it to PROMOTION below
+#PROMOTION = -r$(RWORDSIZE) -i4
+PROMOTION = -i4
+CFLAGS = -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -O2 # -fast
+FCDEBUG = #-g -O0
+FCBASEOPTS = -Wno=101,139,155,158 -ffree-line-length-huge -fendian=big -ffree-form $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS -DNMM_NEST=$(WRF_NMM_NEST) -DG95 -DMACOS -DF2CSTYLE
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -fmod=$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /usr/bin/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-ffixed-form" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" FC="$(FC) $(FCFLAGS) $(PROMOTION)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH PC Linux x86_64 (IA64 and Opteron), PathScale 2.1 or higher (Single-threaded, no nesting)
+#
+FC = pathf90
+LD = pathf90
+CC = pathcc
+SCC = $(CC)
+NATIVE_RWORDSIZE= 4
+RWORDSIZE = CONFIGURE_RWORDSIZE
+SFC = $(FC)
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS =
+FCOPTIM = -O3 -OPT:Ofast:Olimit=5000
+FCDEBUG = #-g
+FCBASEOPTS = -w -byteswapio -freeform -fno-second-underscore $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) -byteswapio CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w -fno-second-underscore" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" archive )
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_fddaobs_rtfdda.o : module_fddaobs_rtfdda.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_configure.o \
+module_fddaobs_rtfdda.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH PC Linux x86_64 (IA64 and Opteron), PathScale 2.1 or higher DM-Parallel (RSL_LITE, PathScale MPICH, No periodic LBCs)
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = mpif90 -f90=pathf90
+LD = mpif90 -f90=pathf90
+CC = mpicc -cc=pathcc
+SCC = pathcc
+SFC = pathf90
+NATIVE_RWORDSIZE= 4
+RWORDSIZE = CONFIGURE_RWORDSIZE
+CFLAGS = -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -O3 -OPT:Ofast:Olimit=5000
+FCDEBUG = #-g
+FCBASEOPTS = -w -byteswapio -freeform -fno-second-underscore $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DINTIO -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+EXTRAMODULES =
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -byteswapio
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = pathcc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+#io_flags:
+# ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; make flags_only ; \
+# /bin/cp wrf_io_flags.h wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+# /bin/cp wrf_io_flags.h wrf_status_codes.h ../io_phdf5 )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC)" TRADFLAG="-traditional" \
+ FFLAGS='$(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/inc -ICONFIGURE_NETCDF_PATH/include -w -fno-second-underscore' RANLIB=$(RANLIB) )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" TRADFLAG="-traditional" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" archive )
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" FC="$(SFC) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" RANLIB=$(RANLIB) archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC)" CPP="$(CPP) CONFIGURE_GRIB2_INC" FC="$(SFC) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" RM="$(RM)" RANLIB=$(RANLIB) archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" FC="$(SFC) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" RANLIB=$(RANLIB) all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCBASEOPTS) " CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" FC='mpif90 $(FCFLAGS) -byteswapio' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_fddaobs_rtfdda.o : module_fddaobs_rtfdda.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_configure.o \
+module_fddaobs_rtfdda.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH Cray XT3 Catamount/Linux x86_64 (Opteron), PGI 5.2 or higher DM-Parallel (RSL_LITE, MPICH, Allows nesting)
+# Note that for 5.1.x comment out -Mpia=fast
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = ftn
+LD = ftn
+CC = gcc -DMPI2_SUPPORT
+SCC = gcc
+SFC = mpif90
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+CFLAGS = -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE \
+ -DLANDREAD_STUB -DXT3_Catamount -I$(MPICH_DIR)/include
+FCOPTIM = -O3 -fastsse #-Mipa=fast
+FCDEBUG = #-g
+#FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS -DLANDREAD_STUB -DXT3_Catamount
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+# add this to LIB to use XT3 iobuf library after loading iobuf module, also requires
+# properly built netCDF library that includes iobuf
+# $(IOBUF_POST_LINK_OPTS)
+LDFLAGS = -byteswapio CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = gcc
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC) $(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -byteswapio" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+solve_em.o : solve_em.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+solve_em.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH NEC SX-8, NEC SX cross compiler DM-Parallel (RSL_LITE, Allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = sxmpif90
+LD = sxmpif90
+CC = sxmpic++
+SCC = sxmpic++
+SFC = sxmpif90
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION =
+CFLAGS = -DNCARIBM_NOC99 -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM =
+FCDEBUG = #-g
+#FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+FCBASEOPTS = -f4 -Wf,-P i $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 -DINTIO -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time -L$(SX_BASE_CPLUS)/lib -lcpp
+LDFLAGS = $(FCFLAGS) -Wl,-h nodefs CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF) -DNEC
+AR_BASE = sxar
+AR = $(AR_BASE) ru
+M4 = m4 -B 14000
+RANLIB = sxar rs
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib1 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" AR="$(AR_BASE)" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" AR="$(AR_BASE)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" AR="$(AR_BASE)" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" AR="$(AR_BASE)" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" AR="$(AR_BASE)" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" AR="$(AR_BASE)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" FC="$(FC) $(PROMOTION)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST AR="$(AR_BASE)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+# if [ ! -e $@ ] ; then \
+# sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+# fi
+# if [ ! -e $@ ] ; then \
+# sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+# fi
+# if [ ! -e $@ ] ; then \
+# sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
+# fi
+
+
+###########################################################
+#ARCH CYGWIN_NT-5.1 Cygwin i486 i586 i686, g95 compiler (Single-threaded, no nesting)
+#
+FC = g95
+LD = g95
+CC = gcc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+SFC = $(FC)
+# g95 does not like -r8. if you want -r8, just add it to PROMOTION below
+#PROMOTION = -r$(RWORDSIZE) -i4
+PROMOTION = -i4
+CFLAGS =
+FCOPTIM = -O2
+FCDEBUG = #-g
+FCBASEOPTS = -Wno=101,139,155,158 -fno-second-underscore -fendian=big -ffree-form $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DLIMIT_ARGS -DG95
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -fmod=$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = cpp -C -P -traditional
+POUND_DEF = $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-ffixed-form" archive )
+
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH PC Linux i486 i586 i686, g95 compiler (Single-threaded, no nesting)
+#
+FC = g95
+LD = g95
+CC = gcc
+SCC = $(CC)
+RWORDSIZE = CONFIGURE_RWORDSIZE
+SFC = $(FC)
+# g95 does not like -r4. if you want promotion to -r8 add it to PROMOTION below
+#PROMOTION = -r$(RWORDSIZE) -i4
+PROMOTION = -i4
+CFLAGS =
+FCOPTIM = -O2 # -fast
+FCDEBUG = #-g -O0
+FCBASEOPTS = -Wno=101,139,155,158 -fno-second-underscore -fendian=big -ffree-form -ffree-line-length-huge $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
+ -DLIMIT_ARGS -DG95
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -fmod=$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = $(CC)
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-ffixed-form" archive )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
+ TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+###########################################################
+#ARCH PC Linux i486 i586 i686, g95 compiler DM-Parallel (RSL_LITE, MPICH, Allows nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = mpif90 -f90=g95
+LD = mpif90 -f90=g95
+CC = mpicc -cc=gcc
+SCC = gcc
+SFC = g95
+RWORDSIZE = CONFIGURE_RWORDSIZE
+# g95 does not like -r4. if you want promotion to -r8 add it to PROMOTION below
+#PROMOTION = -r$(RWORDSIZE) -i4
+PROMOTION = -i4
+CFLAGS = -DDM_PARALLEL \
+ -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -O2 # -fast
+FCDEBUG = #-g -O0
+FCBASEOPTS = -Wno=101,139,155,158 -fno-second-underscore -fendian=big -ffree-form -ffree-line-length-huge $(FCDEBUG) # -Mlfs
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS -DNMM_NEST=$(WRF_NMM_NEST) -DG95
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -fmod=$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = CONFIGURE_NETCDF_LIB_PATH -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = $(FCFLAGS) CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar ru
+M4 = m4 -B 14000
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+
+#### Override default sed command and script for Fortran source files ####
+#### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
+#### because the Fortran compiler complains about long source lines. ####
+SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/no_file_line.sed
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-ffixed-form" archive)
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" FC="$(FC) $(FCFLAGS) $(PROMOTION)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+module_configure.o \
+mediation_integrate.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+
+###########################################################
+#ARCH PC Interix x86_64 (IA64 and Opteron), PGI 5.2 or higher DM-Parallel (RSL_LITE, MPICH, Allows nesting)
+# Note that for 5.1.x comment out -Mpia=fast
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+DMPARALLEL = 1
+MAX_PROC = 1024
+FC = pgf90.exe
+LD = $(FC)
+CC = pgcc.exe
+CC = cc
+SCC = $(CC)
+SFC = $(FC)
+
+MPdir = /dev/fs/C/Program Files/Microsoft Compute Cluster Pack
+MPinc = -I'$(MPdir)'/Include
+MSMPdir = 'C:\Program Files\Microsoft Compute Cluster Pack'
+MSMPinc = /I'C:\Program Files\Microsoft Compute Cluster Pack\Include'
+MSMPlib = 'C:\Program Files\Microsoft Compute Cluster Pack\Lib\AMD64\msmpi.lib'
+
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = -r$(RWORDSIZE) -i4
+
+CFLAGS = -DLANDREAD_STUB -DMEMCPY_FOR_BCOPY -DMS_SUA -DDM_PARALLEL \
+ -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE $(MPinc) #-X /MD
+FCOPTIM = -fastsse #-Mipa=fast
+FCDEBUG = #-g
+#FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
+FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(MPinc)
+
+ARCHFLAGS = $(COREDEFS) \
+ -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
+ $(DA_ARCHFLAGS) \
+ -DNETCDF -DINTIO \
+ -DNO_NAMELIST_PRINT \
+ -DLIMIT_ARGS -DLANDREAD_STUB -DNMM_NEST=$(WRF_NMM_NEST) -DMEMCPY_FOR_BCOPY
+
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -module $(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc -I$(WRF_SRC_ROOT_DIR)/chem
+PERL = perl
+REGISTRY = Registry
+
+LIB = CONFIGURE_NETCDF_LIB_PATH \
+ $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5/libfftpack.a \
+ $(WRF_SRC_ROOT_DIR)/external/io_int/libwrfio_int.a \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90/libesmf_time.a \
+ $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a $(MSMPlib) \
+ "c:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\AMD64\bufferoverflowu.lib"
+
+LDFLAGS = -byteswapio CONFIGURE_LDFLAGS
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P $(ENVCOMPDEFS) $(POUND_DEF)
+AR = ar r
+M4 = NA
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+CC_TOOLS = cc
+LIBWRFLIB = libwrflib.a
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make LIBS="libwrfio_nf.a 'CONFIGURE_NETCDF_PATH' 'c:\Program Files\Microsoft Platform SDK\Lib\AMD64\bufferoverflowu.lib'" \
+ NETCDFPATH=CONFIGURE_NETCDF_PATH \
+ RANLIB="$(RANLIB)" CPP="$(CPP) -DMS_SUA" \
+ CPP1="$(CPP) -DMS_SUA" \
+ FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
+
+wrfio_grib_share :
+
+wrfio_grib1 :
+
+wrfio_grib2 :
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; \
+ /bin/sed -e '/MPI_ADDRESS_KIND=4/d' -e '/DEC\$$/d' '$(MPdir)'/Include/mpif.h > mpif.h ; \
+ make CPP="$(CPP) $(CPPFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -byteswapio" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+# compile these without high optimization to speed compile
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_mm5.o : module_io_mm5.F
+module_si_io.o : module_si_io.F
+module_io_wrf.o : module_io_wrf.F
+module_domain.o : module_domain.F
+module_start.o : module_start.F
+module_initialize.o : module_initialize.F
+module_initialize_b_wave.o : module_initialize_b_wave.F
+module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
+module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
+module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
+module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
+module_initialize_real.o : module_initialize_real.F
+module_dm.o : module_dm.F
+module_comm_dm.o : module_comm_dm.F
+start_domain.o : start_domain.F
+mediation_integrate.o : mediation_integrate.F
+module_configure.o : module_configure.F
+
+solve_interface.o \
+shift_domain_em.o \
+module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
+module_start.o module_initialize.o module_initialize_b_wave.o \
+module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
+module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
+mediation_integrate.o \
+module_configure.o \
+module_initialize_real.o module_dm.o module_comm_dm.o start_domain.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -o $*.o -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+module_io.o : module_io.F
+module_dm.o : module_dm.F
+
+module_io.o module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ /bin/sed -e '/MPI_ADDRESS_KIND=4/d' -e '/DEC\$$/d' '$(MPdir)'/Include/mpif.h > mpif.h
+ $(FC) -o $*.o -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH Generic Intel Itanium2 ia64 Linux, ifort+icc 9.x,10.x DM-Parallel (MPICH, OpenMP, RSL_LITE)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = $(MPICH)
+FC = $(MPI_HOME)/bin/mpif90 -f90=ifort
+LD = $(FC)
+CC = $(MPI_HOME)/bin/mpicc -cc=icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -openmp
+FCOPTIM = -O3 -unroll0
+FCDEBUG = # -O0 -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias -tpp2 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -O0 -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH Generic Intel Itanium2 ia64 Linux, ifort+icc 9.x,10.x DM-Parallel (MPICH, RSL_LITE)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = $(MPICH)
+FC = $(MPI_HOME)/bin/mpif90 -f90=ifort
+LD = $(FC)
+CC = $(MPI_HOME)/bin/mpicc -cc=icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -O3 -unroll0
+FCDEBUG = # -O0 -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias -tpp2 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip -O0 $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH Dual-Core Intel Itanium2 Processor 9000 Sequence ia64 Linux, ifort+icc 9.x,10.x DM-Parallel (MPICH, OpenMP, RSL_LITE)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = $(MPICH)
+FC = $(MPI_HOME)/bin/mpif90 -f90=ifort
+LD = $(FC)
+CC = $(MPI_HOME)/bin/mpicc -cc=icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -openmp
+FCOPTIM = -O3 -unroll0
+FCDEBUG = # -O0 -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias -mtune=itanium2-p9000 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# OpenMP workaround for solve_em.F
+# This should be fixed in newer versions of Intel Fortran Compiler (somewhere after 9.1.041).
+# You can check if you really need this workaround by building without the following rule
+# and making sure that output of "nm solve_em.o | grep kmp" contains kmpc_fork_call.
+solve_em.o : solve_em.F
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) $(OMP) -O0 -override-limits $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH Dual-Core Intel Itanium2 Processor 9000 Sequence ia64 Linux, ifort+icc 9.x,10.x DM-Parallel (MPICH, RSL_LITE)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+# To improve performance on Itanium2 architecture you might want to use '-IPF-fp-relaxed' flag, which enables
+# use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt,
+# and enables the performance of more aggressive floating-point transformations, which may affect accuracy.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = $(MPICH)
+FC = $(MPI_HOME)/bin/mpif90 -f90=ifort
+LD = $(FC)
+CC = $(MPI_HOME)/bin/mpicc -cc=icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -O3 -unroll0
+FCDEBUG = # -O0 -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias -mtune=itanium2-p9000 \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH Generic Intel 64 x86_64 Linux, ifort+icc 9.x,10.x DM-Parallel (MPICH, OpenMP, RSL_LITE)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin64/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin64/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = $(MPICH)
+FC = $(MPI_HOME)/bin/mpif90 -f90=ifort
+LD = $(FC)
+CC = $(MPI_HOME)/bin/mpicc -cc=icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -openmp
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+solve_em.o : solve_em.F
+module_dm.o : module_dm.F
+
+solve_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) $(OMP) -O0 $(MODULE_DIRS) -mP2OPT_vec_xform_level=103 $*.f90
+
+############################################################
+#ARCH Z Generic Intel 64 x86_64 Linux, ifort+icc 9.x,10.x DM-Parallel (MPICH, RSL_LITE)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin64/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin64/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = $(MPICH)
+FC = $(MPI_HOME)/bin/mpif90 -f90=ifort
+LD = $(FC)
+CC = $(MPI_HOME)/bin/mpicc -cc=icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+module_dm.o : module_dm.F
+solve_em.o : solve_em.F
+
+solve_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) -O0 $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH Generic Intel 64 x86_64 Linux, ifort+icc 9.x,10.x SM-Parallel (OpenMP, no nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin64/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin64/mpiicc -nocompchk
+
+DMPARALLEL =
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME =
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -openmp
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -C -P \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+solve_em.o : solve_em.F
+module_dm.o : module_dm.F
+
+solve_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) $(OMP) -O0 $(MODULE_DIRS) -mP2OPT_vec_xform_level=103 $*.f90
+
+############################################################
+#ARCH Generic Intel 64 x86_64 Linux, ifort+icc 9.x,10.x Sequential (no nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin64/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin64/mpiicc -nocompchk
+
+DMPARALLEL =
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME =
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c
+FCOPTIM = -O3
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -C -P \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+module_dm.o : module_dm.F
+solve_em.o : solve_em.F
+
+solve_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) -O0 $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH Intel Core 2 Duo/Quad (Intel 64) x86_64 Linux, ifort+icc 9.x,10.x DM-Parallel (MPICH, OpenMP, RSL_LITE)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin64/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin64/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = $(MPICH)
+FC = $(MPI_HOME)/bin/mpif90 -f90=ifort
+LD = $(FC)
+CC = $(MPI_HOME)/bin/mpicc -cc=icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -openmp
+FCOPTIM = -O3 -xT
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+solve_em.o : solve_em.F
+module_dm.o : module_dm.F
+
+solve_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) $(OMP) -O0 $(MODULE_DIRS) -mP2OPT_vec_xform_level=103 $*.f90
+
+############################################################
+#ARCH Intel Core 2 Duo/Quad (Intel 64) x86_64 Linux, ifort+icc 9.x,10.x DM-Parallel (MPICH, RSL_LITE)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin64/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin64/mpiicc -nocompchk
+
+DMPARALLEL = 1
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME = $(MPICH)
+FC = $(MPI_HOME)/bin/mpif90 -f90=ifort
+LD = $(FC)
+CC = $(MPI_HOME)/bin/mpicc -cc=icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -DDM_PARALLEL -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE
+FCOPTIM = -O3 -xT
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DRSL_LITE -DDM_PARALLEL \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -I$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -C -P `cat $(WRF_SRC_ROOT_DIR)/inc/dm_comm_cpp_flags` \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : CONFIGURE_WRFIO_NF $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms.c wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+gen_comms.c : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c
+ ( /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
+
+module_dm.F : $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F )
+
+$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CPP="$(CPP) $(CPPFLAGS)" CC='$(CC) -I. $(CFLAGS) -DMPI2_SUPPORT -I$(MPI_HOME)/include '\
+ FC='$(FC) $(FCFLAGS) -I$(WRF_SRC_ROOT_DIR)/.. ' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+module_dm.o : module_dm.F
+solve_em.o : solve_em.F
+
+solve_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) -O0 $(MODULE_DIRS) $*.f90
+
+############################################################
+#ARCH Intel Core 2 Duo/Quad (Intel 64) x86_64 Linux, ifort+icc 9.x,10.x SM-Parallel (OpenMP, no nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin64/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin64/mpiicc -nocompchk
+
+DMPARALLEL =
+OMP = -openmp -fpp -auto
+OMPCPP = -D_OPENMP
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME =
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c -openmp
+FCOPTIM = -O3 -xT
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -C -P \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+solve_em.o : solve_em.F
+module_dm.o : module_dm.F
+
+solve_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) $(OMP) -O0 $(MODULE_DIRS) -mP2OPT_vec_xform_level=103 $*.f90
+
+############################################################
+#ARCH Intel Core 2 Duo/Quad (Intel 64) x86_64 Linux, ifort+icc 9.x,10.x Sequential (no nesting)
+#
+# Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
+# for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
+#
+# By default, some files are compiled without optimizations to speed up compilation. Removing
+# respective makefile rules in the end of this file will result in longer compilation time, and, possibly
+# Out Of Memory messages, but might produce binaries which are substantially faster.
+#
+# If you got Out Of Memory message, there are several options:
+# 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
+# 2. Remove any debugging flags (-g, -check, -traceback).
+# 3. Force the problematic file to be compiled with less optimizations (see examples at the end of this file), try
+# -no-ip compiler flag.
+#
+# This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
+# consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
+# Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
+# the gradual underflow mode. It may improve performance if the denormal values are not critical to the
+# behavior of your workload.
+
+# If you have Intel MPI installed and wish to use instead, make the
+# following changes to settings below:
+# FC = $(MPI_HOME)/bin64/mpiifort -nocompchk
+# CC = $(MPI_HOME)/bin64/mpiicc -nocompchk
+
+DMPARALLEL =
+OMP =
+OMPCPP =
+INCLUDE = $(WRF_SRC_ROOT_DIR)/external/io_netcdf/
+MAX_PROC = 1024
+MPI_HOME =
+FC = ifort
+LD = $(FC)
+CC = icc
+SCC = icc
+CC_TOOLS = $(SCC)
+SFC = ifort
+CFLAGS = -w -O3 -ip -c
+FCOPTIM = -O3 -xT
+FCDEBUG = # -g -traceback
+FCBASEOPTS = -align all -FR -convert big_endian \
+ -fno-alias -fno-fnalias \
+ -I$(INCLUDE) -I. -fp-model precise $(FCDEBUG)
+FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
+ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO \
+ -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNETCDF \
+ $(DA_ARCHFLAGS) \
+ -DLIMIT_ARGS
+# machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
+ESMF_LIB_FLAGS =
+ESMF_IO_LIB = ESMFIOLIB
+ESMF_IO_LIB_EXT = ESMFIOEXTLIB
+INCLUDE_MODULES = -I$(WRF_SRC_ROOT_DIR)/main -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf -I$(WRF_SRC_ROOT_DIR)/external/io_int -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 \
+ -I$(WRF_SRC_ROOT_DIR)/external -I$(WRF_SRC_ROOT_DIR)/frame -I$(WRF_SRC_ROOT_DIR)/share -I$(WRF_SRC_ROOT_DIR)/phys -I$(WRF_SRC_ROOT_DIR)/inc
+PERL = perl
+REGISTRY = Registry
+LIB = -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf $(OMP) \
+ CONFIGURE_NETCDF_LIB_PATH \
+ \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib1 -lio_grib1 \
+ CONFIGURE_GRIB2_LIB \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_grib_share -lio_grib_share \
+ -L$(WRF_SRC_ROOT_DIR)/external/io_int -lwrfio_int \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o \
+ -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
+ -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
+LDFLAGS = -O3 -ip $(OMP) CONFIGURE_LDFLAGS
+CPP = /lib/cpp -C -P -traditional
+POUND_DEF = -DNO_RRTM_PHYSICS -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
+CPPFLAGS = -I$(LIBINCLUDE) -C -P -traditional $(COREDEFS) $(ARCHFLAGS) $(OMPCPP) \
+ -I$(INCLUDE) -C -P \
+ $(POUND_DEF) $(COREDEFS)
+AR = ar ru
+M4 = m4
+RANLIB = ranlib
+NETCDFPATH = CONFIGURE_NETCDF_PATH
+
+externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_int module_dm.F wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 esmf_time fftpack
+
+module_dm.F :
+ ( /bin/cp module_dm_warning module_dm.F ; \
+ cat module_dm_stubs.F >> module_dm.F )
+
+wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make NETCDFPATH=CONFIGURE_NETCDF_PATH CPP="$(CPP)" FC="$(FC) -I$(WRF_SRC_ROOT_DIR) $(FCFLAGS)" \
+ TRADFLAG="-traditional" RANLIB="$(RANLIB)" ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h $(WRF_SRC_ROOT_DIR)/inc ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../ioapi_share/wrf_status_codes.h ../io_phdf5 ; \
+ /bin/cp ../ioapi_share/wrf_io_flags.h ../io_quilt )
+
+wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ SFC="$(SFC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" \
+ ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" all )
+
+wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make CC="$(CC)" CFLAGS="$(CFLAGS)" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive)
+
+wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make CC="$(CC)" CPP="$(CPP)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make CC="$(CC) CONFIGURE_GRIB2_INC" CPP="$(CPP) CONFIGURE_GRIB2_INC" RM="$(RM)" TRADFLAG="-traditional" RANLIB="$(RANLIB)" \
+ FREE="-FR" FIXED="-FI" \
+ FC="$(FC) -I$(MPI_HOME)/include $(FCDEBUG) $(FCFLAGS)" archive )
+
+esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+ make FC="$(FC) $(FCDEBUG) $(FCFLAGS)" CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(POUND_DEF)" )
+
+fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+ make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" )
+
+# Compile these without high optimization and no interprocedural
+# optimizations to speed compile. Commenting them out may result
+# in longer compilation time, but might produce substantialy faster
+# binaries.
+mediation_integrate.o : mediation_integrate.F
+mediation_interp_domain.o : mediation_interp_domain.F
+mediation_feedback_domain.o : mediation_feedback_domain.F
+wrf_auxinput1out.o : wrf_auxinput1out.F
+wrf_histout.o : wrf_histout.F
+wrf_restartout.o : wrf_restartout.F
+wrf_inputin.o : wrf_inputin.F
+wrf_auxinput1in.o : wrf_auxinput1in.F
+wrf_histin.o : wrf_histin.F
+wrf_restartin.o : wrf_restartin.F
+module_initialize_real.o: module_initialize_real.F
+solve_interface.o : solve_interface.F
+shift_domain_em.o : shift_domain_em.F
+module_io_wrf.o : module_io_wrf.F
+module_dm.o : module_dm.F
+module_domain.o : module_domain.F
+start_domain.o : start_domain.F
+mediation_force_domain.o : mediation_force_domain.F
+module_configure.o : module_configure.F
+
+mediation_integrate.o mediation_interp_domain.o mediation_feedback_domain.o \
+module_configure.o \
+wrf_auxinput1out.o wrf_histout.o wrf_restartout.o wrf_inputin.o \
+wrf_auxinput1in.o wrf_histin.o wrf_restartin.o module_initialize_real.o \
+module_domain.o module_dm.o module_io_wrf.o start_domain.o solve_interface.o \
+shift_domain_em.o \
+mediation_force_domain.o:
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c -no-ip $(FCBASEOPTS) $(FCDEBUG) $(MODULE_DIRS) $*.f90
+
+# Force even lower optimization level for these files to decrease
+# compilation time and lower memory demands
+module_dm.o : module_dm.F
+solve_em.o : solve_em.F
+
+solve_em.o \
+module_dm.o :
+ $(RM) $@
+ $(SED_FTN) $*.F > $*.b
+ $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b > $*.f90
+ $(RM) $*.b
+ $(FC) -c $(FCBASEOPTS) $(FCDEBUG) -O0 $(MODULE_DIRS) $*.f90
+
+##################################################################
+#ARCH NULL
diff --git a/frame/module_driver_constants.F b/frame/module_driver_constants.F
index c8a36cf0e6..6c7d797d1a 100644
--- a/frame/module_driver_constants.F
+++ b/frame/module_driver_constants.F
@@ -85,9 +85,9 @@ MODULE module_driver_constants
! The maximum number of obs indexes (for conventional DA obs)
#if (WRF_CHEM == 1)
- INTEGER , PARAMETER :: num_ob_indexes = 30
+ INTEGER , PARAMETER :: num_ob_indexes = 31
#else
- INTEGER , PARAMETER :: num_ob_indexes = 29
+ INTEGER , PARAMETER :: num_ob_indexes = 30
#endif
diff --git a/var/build/LICENSE b/var/build/LICENSE
new file mode 120000
index 0000000000..b916dd28ca
--- /dev/null
+++ b/var/build/LICENSE
@@ -0,0 +1 @@
+../../external/esmf_time_f90/LICENSE
\ No newline at end of file
diff --git a/var/build/Makefile b/var/build/Makefile
new file mode 120000
index 0000000000..32a5d891c3
--- /dev/null
+++ b/var/build/Makefile
@@ -0,0 +1 @@
+../../external/esmf_time_f90/Makefile
\ No newline at end of file
diff --git a/var/build/da.make b/var/build/da.make
index 0ee2c483df..6770f48734 100644
--- a/var/build/da.make
+++ b/var/build/da.make
@@ -29,6 +29,7 @@ WRFVAR_OBJS = \
da_pilot.o \
da_radar.o \
da_rain.o \
+ da_lightning.o \
da_gpspw.o \
da_gpsref.o \
da_gpseph.o \
diff --git a/var/build/depend.txt b/var/build/depend.txt
index 8b90b55d4b..59e626f662 100644
--- a/var/build/depend.txt
+++ b/var/build/depend.txt
@@ -111,7 +111,7 @@ da_bogus.o : da_bogus.f90 da_calculate_grady_bogus.inc da_get_innov_vector_bogus
da_buoy.o : da_buoy.f90 da_calculate_grady_buoy.inc da_get_innov_vector_buoy.inc da_check_max_iv_buoy.inc da_transform_xtoy_buoy_adj.inc da_transform_xtoy_buoy.inc da_print_stats_buoy.inc da_oi_stats_buoy.inc da_residual_buoy.inc da_jo_and_grady_buoy.inc da_ao_stats_buoy.inc da_tracing.o da_tools.o da_statistics.o da_physics.o da_grid_definitions.o da_par_util.o da_par_util1.o da_interpolation.o da_define_structures.o da_control.o module_domain.o
da_control.o : da_control.f90 module_driver_constants.o
da_crtm.o : da_crtm.f90 da_det_crtm_climat.inc da_crtm_sensor_descriptor.inc da_crtm_init.inc da_crtm_ad.inc da_crtm_direct.inc da_crtm_k.inc da_crtm_tl.inc da_get_innov_vector_crtm.inc da_transform_xtoy_crtm_adj.inc da_transform_xtoy_crtm.inc da_tracing.o da_tools.o da_tools_serial.o da_reporting.o da_radiance1.o module_dm.o da_physics.o da_interpolation.o da_control.o module_radiance.o da_define_structures.o module_domain.o
-da_define_structures.o : da_define_structures.f90 da_gauss_noise.inc da_random_seed.inc da_initialize_cv.inc da_zero_vp_type.inc da_zero_y.inc da_zero_x.inc da_deallocate_y.inc da_deallocate_observations.inc da_deallocate_background_errors.inc da_allocate_y.inc da_allocate_observations.inc da_allocate_background_errors.inc da_wavelet.o da_reporting.o da_tools_serial.o da_tracing.o da_control.o module_domain.o da_allocate_y_rain.inc da_allocate_y_radar.inc da_allocate_observations_rain.inc da_allocate_obs_info.inc da_zero_xchem_type.inc module_state_description.o da_allocate_observations_chem_sfc.inc
+da_define_structures.o : da_define_structures.f90 da_gauss_noise.inc da_random_seed.inc da_initialize_cv.inc da_zero_vp_type.inc da_zero_y.inc da_zero_x.inc da_deallocate_y.inc da_deallocate_observations.inc da_deallocate_background_errors.inc da_allocate_y.inc da_allocate_observations.inc da_allocate_background_errors.inc da_wavelet.o da_reporting.o da_tools_serial.o da_tracing.o da_control.o module_domain.o da_allocate_y_rain.inc da_allocate_y_lightning.inc da_allocate_y_radar.inc da_allocate_observations_rain.inc da_allocate_obs_info.inc da_zero_xchem_type.inc module_state_description.o da_allocate_observations_chem_sfc.inc
da_dynamics.o : da_dynamics.f90 da_wz_base.inc da_uv_to_vorticity.inc da_w_adjustment_adj.inc da_w_adjustment_lin.inc da_uv_to_divergence_adj.inc da_uv_to_divergence.inc da_psichi_to_uv_adj.inc da_psichi_to_uv.inc da_hydrostaticp_to_rho_lin.inc da_hydrostaticp_to_rho_adj.inc da_balance_geoterm_lin.inc da_balance_geoterm_adj.inc da_balance_equation_lin.inc da_balance_equation_adj.inc da_balance_cycloterm_lin.inc da_balance_cycloterm_adj.inc da_balance_cycloterm.inc da_wpec_constraint.inc da_wpec_constraint_adj.inc da_wpec_constraint_cycloterm.inc da_wpec_constraint_geoterm.inc da_wpec_constraint_lin.inc da_tools.o da_tracing.o da_ffts.o da_reporting.o da_define_structures.o module_comm_dm.o module_dm.o module_domain.o da_control.o da_divergence_constraint.inc da_divergence_constraint_adj.inc
da_etkf.o : da_etkf.f90 da_solve_etkf.inc da_matmultiover.inc da_matmulti.inc da_innerprod.inc da_lapack.o da_gen_be.o da_control.o
da_ffts.o : da_ffts.f90 da_solve_poissoneqn_fst_adj.inc da_solve_poissoneqn_fst.inc da_solve_poissoneqn_fct_adj.inc da_solve_poissoneqn_fct.inc module_ffts.o module_comm_dm.o module_dm.o da_wrf_interfaces.o da_tracing.o da_par_util.o da_define_structures.o da_control.o module_domain.o
@@ -125,15 +125,15 @@ da_interpolation.o : da_interpolation.f90 da_interp_msk_avg_2d_partial.inc da_in
da_lapack.o : da_lapack.f90 dlamch.inc dlarf.inc dlarfg.inc dlarft.inc dlarfb.inc dorg2l.inc dorg2r.inc dsytd2.inc dlatrd.inc dorgqr.inc dorgql.inc dlassq.inc dlapy2.inc dlartg.inc dlasrt.inc dlansy.inc dsytrd.inc dsterf.inc dorgtr.inc dlae2.inc dlasr.inc dlaev2.inc dlascl.inc dlanst.inc dlaset.inc iparmq.inc ieeeck.inc ilaenv.inc dsteqr.inc dsyev.inc da_blas.o
da_mat_cv3.o : da_mat_cv3.f90
da_metar.o : da_metar.f90 da_calculate_grady_metar.inc da_get_innov_vector_metar.inc da_check_max_iv_metar.inc da_transform_xtoy_metar_adj.inc da_transform_xtoy_metar.inc da_print_stats_metar.inc da_oi_stats_metar.inc da_residual_metar.inc da_jo_and_grady_metar.inc da_ao_stats_metar.inc da_tracing.o da_tools.o da_statistics.o da_physics.o da_grid_definitions.o da_par_util1.o da_par_util.o da_interpolation.o da_define_structures.o da_control.o module_domain.o
-da_minimisation.o : da_minimisation.f90 da_read_basicstates.inc da_swap_xtraj.inc da_lanczos_io.inc da_kmat_mul.inc da_amat_mul.inc da_sensitivity.inc da_adjoint_sensitivity.inc da_transform_vtoy_adj.inc da_transform_vtoy.inc da_calculate_grady.inc da_minimise_lz.inc da_minimise_cg.inc da_write_diagnostics.inc da_dot_cv.inc da_dot.inc da_get_innov_vector.inc da_get_var_diagnostics.inc da_calculate_residual.inc da_jo_and_grady.inc da_calculate_gradj.inc da_calculate_j.inc da_transform_vtod_wpec.inc da_transform_vtod_wpec_adj.inc module_io_wrf.o da_4dvar.o da_lapack.o module_symbols_util.o da_wrf_interfaces.o da_vtox_transforms.o da_varbc.o da_transfer_model.o da_tracing.o da_tools_serial.o da_statistics.o da_synop.o da_ssmi.o da_sound.o da_ships.o da_satem.o da_reporting.o da_rain.o da_radar.o da_radiance1.o da_radiance.o da_tamdar.o da_mtgirs.o da_qscat.o da_pseudo.o da_profiler.o da_polaramv.o da_par_util1.o da_par_util.o da_pilot.o da_metar.o da_obs_io.o da_gpsref.o da_gpspw.o da_geoamv.o da_obs.o da_define_structures.o da_control.o da_buoy.o da_bogus.o da_airsr.o da_airep.o module_state_description.o module_domain.o module_dm.o module_configure.o da_join_iv_for_multi_inc.o da_wrfvar_io.o da_gpseph.o da_varbc_tamdar.o da_chem_sfc.o
+da_minimisation.o : da_minimisation.f90 da_read_basicstates.inc da_swap_xtraj.inc da_lanczos_io.inc da_kmat_mul.inc da_amat_mul.inc da_sensitivity.inc da_adjoint_sensitivity.inc da_transform_vtoy_adj.inc da_transform_vtoy.inc da_calculate_grady.inc da_minimise_lz.inc da_minimise_cg.inc da_write_diagnostics.inc da_dot_cv.inc da_dot.inc da_get_innov_vector.inc da_get_var_diagnostics.inc da_calculate_residual.inc da_jo_and_grady.inc da_calculate_gradj.inc da_calculate_j.inc da_transform_vtod_wpec.inc da_transform_vtod_wpec_adj.inc module_io_wrf.o da_4dvar.o da_lapack.o module_symbols_util.o da_wrf_interfaces.o da_vtox_transforms.o da_varbc.o da_transfer_model.o da_tracing.o da_tools_serial.o da_statistics.o da_synop.o da_ssmi.o da_sound.o da_ships.o da_satem.o da_reporting.o da_rain.o da_radar.o da_lightning.o da_radiance1.o da_radiance.o da_tamdar.o da_mtgirs.o da_qscat.o da_pseudo.o da_profiler.o da_polaramv.o da_par_util1.o da_par_util.o da_pilot.o da_metar.o da_obs_io.o da_gpsref.o da_gpspw.o da_geoamv.o da_obs.o da_define_structures.o da_control.o da_buoy.o da_bogus.o da_airsr.o da_airep.o module_state_description.o module_domain.o module_dm.o module_configure.o da_join_iv_for_multi_inc.o da_wrfvar_io.o da_gpseph.o da_varbc_tamdar.o da_chem_sfc.o
da_module_convert_tool.o : da_module_convert_tool.f90 da_convertor_v_interp.inc
da_module_couple_uv.o : da_module_couple_uv.f90 da_couple.inc da_calc_mu_uv.inc da_couple_uv.inc
da_module_couple_uv_ad.o : da_module_couple_uv_ad.f90 da_couple_ad.inc da_calc_mu_uv_ad.inc da_couple_uv_ad.inc da_module_couple_uv.o
da_mtgirs.o : da_mtgirs.f90 da_calculate_grady_mtgirs.inc da_get_innov_vector_mtgirs.inc da_check_max_iv_mtgirs.inc da_transform_xtoy_mtgirs_adj.inc da_transform_xtoy_mtgirs.inc da_print_stats_mtgirs.inc da_oi_stats_mtgirs.inc da_residual_mtgirs.inc da_jo_mtgirs_uvtq.inc da_jo_and_grady_mtgirs.inc da_ao_stats_mtgirs.inc da_tracing.o da_physics.o da_grid_definitions.o da_par_util1.o da_par_util.o da_tools.o da_statistics.o da_interpolation.o module_domain.o da_define_structures.o da_control.o
da_netcdf_interface.o : da_netcdf_interface.f90 da_atotime.inc da_get_bdytimestr_cdf.inc da_get_bdyfrq.inc da_put_att_cdf.inc da_get_att_cdf.inc da_put_var_2d_int_cdf.inc da_get_var_2d_int_cdf.inc da_put_var_2d_real_cdf.inc da_put_var_3d_real_cdf.inc da_get_var_2d_real_cdf.inc da_get_var_3d_real_cdf.inc da_get_gl_att_real_cdf.inc da_get_gl_att_int_cdf.inc da_get_dims_cdf.inc da_get_times_cdf.inc da_get_var_1d_real_cdf.inc
-da_obs.o : da_obs.f90 da_grid_definitions.o da_set_obs_missing.inc da_obs_sensitivity.inc da_count_filtered_obs.inc da_store_obs_grid_info_rad.inc da_store_obs_grid_info.inc da_random_omb_all.inc da_fill_obs_structures.inc da_fill_obs_structures_rain.inc da_fill_obs_structures_radar.inc da_check_missing.inc da_add_noise_to_ob.inc da_transform_xtoy_adj.inc da_transform_xtoy.inc da_obs_proc_station.inc module_dm.o da_tracing.o da_tools.o da_tools_serial.o da_synop.o da_ssmi.o da_tamdar.o da_mtgirs.o da_sound.o da_ships.o da_satem.o da_rttov.o da_reporting.o da_rain.o da_radar.o da_qscat.o da_pseudo.o da_profiler.o da_polaramv.o da_pilot.o da_physics.o da_metar.o da_gpsref.o da_gpspw.o da_geoamv.o da_crtm.o da_control.o da_buoy.o da_bogus.o da_airsr.o da_airep.o module_domain.o da_define_structures.o da_gpseph.o module_state_description.o da_fill_obs_structures_chem_sfc.inc da_chem_sfc.o
+da_obs.o : da_obs.f90 da_grid_definitions.o da_set_obs_missing.inc da_obs_sensitivity.inc da_count_filtered_obs.inc da_store_obs_grid_info_rad.inc da_store_obs_grid_info.inc da_random_omb_all.inc da_fill_obs_structures.inc da_fill_obs_structures_rain.inc da_fill_obs_structures_radar.inc da_fill_obs_structures_lightning.inc da_check_missing.inc da_add_noise_to_ob.inc da_transform_xtoy_adj.inc da_transform_xtoy.inc da_obs_proc_station.inc module_dm.o da_tracing.o da_tools.o da_tools_serial.o da_synop.o da_ssmi.o da_tamdar.o da_mtgirs.o da_sound.o da_ships.o da_satem.o da_rttov.o da_reporting.o da_rain.o da_radar.o da_lightning.o da_qscat.o da_pseudo.o da_profiler.o da_polaramv.o da_pilot.o da_physics.o da_metar.o da_gpsref.o da_gpspw.o da_geoamv.o da_crtm.o da_control.o da_buoy.o da_bogus.o da_airsr.o da_airep.o module_domain.o da_define_structures.o da_gpseph.o module_state_description.o da_fill_obs_structures_chem_sfc.inc da_chem_sfc.o
da_chem_sfc.o: da_chem_sfc.f90 da_jo_and_grady_chem_sfc.inc da_jo_chem_sfc.inc da_residual_chem_sfc.inc da_transform_xtoy_chem_sfc.inc da_transform_xtoy_chem_sfc_adj.inc da_get_innov_vector_chem_sfc.inc da_check_max_iv_chem_sfc.inc da_calculate_grady_chem_sfc.inc da_interpolation.o module_dm.o module_domain.o da_control.o da_reporting.o da_tools_serial.o da_tools.o da_define_structures.o da_obs.o da_define_structures.o da_ao_stats_chem_sfc.inc da_oi_stats_chem_sfc.inc da_print_stats_chem_sfc.inc
-da_obs_io.o : da_obs_io.f90 da_grid_definitions.o da_final_write_modified_filtered_obs.inc da_final_write_filtered_obs.inc da_write_noise_to_ob.inc da_read_omb_tmp.inc da_read_rand_unit.inc da_read_y_unit.inc da_final_write_y.inc da_final_write_obs.inc da_read_obs_bufrgpsro.inc da_read_obs_bufr.inc da_write_y.inc da_write_modified_filtered_obs.inc da_write_filtered_obs.inc da_write_obs_etkf.inc da_search_obs.inc da_read_iv_for_multi_inc.inc da_write_iv_for_multi_inc.inc da_write_obs.inc da_use_obs_errfac.inc da_read_errfac.inc da_read_obs_rain.inc da_scan_obs_rain.inc da_scan_obs_radar.inc da_read_obs_radar.inc da_scan_obs_ascii.inc da_read_obs_ascii.inc da_par_util.o gsi_thinning.o module_radiance.o da_tracing.o da_tools_serial.o da_tools.o da_reporting.o da_physics.o da_par_util1.o da_obs.o da_grid_definitions.o da_define_structures.o da_control.o module_domain.o da_read_lsac_util.inc da_read_obs_lsac.inc da_scan_obs_lsac.inc da_netcdf_interface.o da_gpseph.o da_read_obs_bufrgpsro_eph.inc da_read_obs_chem_sfc.inc da_scan_obs_chem_sfc.inc da_write_obs_chem_sfc.inc da_final_write_obs_chem_sfc.inc da_final_write_obs_gas_sfc.inc da_read_obs_bufr_satwnd.inc
+da_obs_io.o : da_obs_io.f90 da_grid_definitions.o da_final_write_modified_filtered_obs.inc da_final_write_filtered_obs.inc da_write_noise_to_ob.inc da_read_omb_tmp.inc da_read_rand_unit.inc da_read_y_unit.inc da_final_write_y.inc da_final_write_obs.inc da_read_obs_bufrgpsro.inc da_read_obs_bufr.inc da_write_y.inc da_write_modified_filtered_obs.inc da_write_filtered_obs.inc da_write_obs_etkf.inc da_search_obs.inc da_read_iv_for_multi_inc.inc da_write_iv_for_multi_inc.inc da_write_obs.inc da_use_obs_errfac.inc da_read_errfac.inc da_read_obs_rain.inc da_scan_obs_rain.inc da_scan_obs_radar.inc da_read_obs_radar.inc da_scan_obs_lightning.inc da_read_obs_lightning.inc da_scan_obs_ascii.inc da_read_obs_ascii.inc da_par_util.o gsi_thinning.o module_radiance.o da_tracing.o da_tools_serial.o da_tools.o da_reporting.o da_physics.o da_par_util1.o da_obs.o da_grid_definitions.o da_define_structures.o da_control.o module_domain.o da_read_lsac_util.inc da_read_obs_lsac.inc da_scan_obs_lsac.inc da_netcdf_interface.o da_gpseph.o da_read_obs_bufrgpsro_eph.inc da_read_obs_chem_sfc.inc da_scan_obs_chem_sfc.inc da_write_obs_chem_sfc.inc da_final_write_obs_chem_sfc.inc da_final_write_obs_gas_sfc.inc da_read_obs_bufr_satwnd.inc
da_par_util.o : da_par_util.f90 da_proc_maxmin_combine.inc da_proc_stats_combine.inc da_system.inc da_y_facade_to_global.inc da_generic_boilerplate.inc da_deallocate_global_synop.inc da_deallocate_global_sound.inc da_deallocate_global_sonde_sfc.inc da_generic_methods.inc da_patch_to_global_3d.inc da_patch_to_global_dual_res.inc da_patch_to_global_2d.inc da_cv_to_global.inc da_transpose_y2x_v2.inc da_transpose_x2y_v2.inc da_transpose_z2y.inc da_transpose_y2z.inc da_transpose_x2z.inc da_transpose_z2x.inc da_transpose_y2x.inc da_transpose_x2y.inc da_unpack_count_obs.inc da_pack_count_obs.inc da_copy_tile_dims.inc da_copy_dims.inc da_alloc_and_copy_be_arrays.inc da_vv_to_cv.inc da_cv_to_vv.inc da_generic_typedefs.inc da_wrf_interfaces.o da_tracing.o da_reporting.o da_define_structures.o da_par_util1.o module_dm.o module_domain.o da_control.o
da_par_util1.o : da_par_util1.f90 da_proc_sum_real.inc da_proc_sum_ints.inc da_proc_sum_int.inc da_control.o module_state_description.o
da_physics.o : da_physics.f90 da_uv_to_sd_lin.inc da_uv_to_sd_adj.inc da_integrat_dz.inc da_wdt.inc da_filter_adj.inc da_filter.inc da_evapo_lin.inc da_condens_lin.inc da_condens_adj.inc da_moist_phys_lin.inc da_moist_phys_adj.inc da_sfc_pre_adj.inc da_sfc_pre_lin.inc da_sfc_pre.inc da_transform_xtowtq_adj.inc da_transform_xtowtq.inc da_transform_xtopsfc_adj.inc da_transform_xtopsfc.inc da_sfc_wtq_adj.inc da_sfc_wtq_lin.inc da_sfc_wtq.inc da_julian_day.inc da_roughness_from_lanu.inc da_get_q_error.inc da_check_rh_simple.inc da_check_rh.inc da_transform_xtogpsref_lin.inc da_transform_xtogpsref_adj.inc da_transform_xtogpsref.inc da_transform_xtotpw_adj.inc da_transform_xtotpw.inc da_transform_xtoztd_adj.inc da_transform_xtoztd_lin.inc da_transform_xtoztd.inc da_tv_profile_tl.inc da_thickness_tl.inc da_find_layer_adj.inc da_thickness.inc da_tv_profile_adj.inc da_find_layer.inc da_thickness_adj.inc da_find_layer_tl.inc da_tv_profile.inc da_tpq_to_slp_adj.inc da_tpq_to_slp_lin.inc da_wrf_tpq_2_slp.inc da_tpq_to_slp.inc da_trh_to_td.inc da_tp_to_qs_lin1.inc da_tp_to_qs_lin.inc da_tp_to_qs_adj1.inc da_tp_to_qs_adj.inc da_tp_to_qs1.inc da_tp_to_qs.inc da_tprh_to_q_lin1.inc da_tprh_to_q_lin.inc da_tprh_to_q_adj1.inc da_tprh_to_q_adj.inc da_tpq_to_rh_lin1.inc da_tpq_to_rh_lin.inc da_tpq_to_rh.inc da_pt_to_rho_lin.inc da_pt_to_rho_adj.inc da_uvprho_to_w_adj.inc da_uvprho_to_w_lin.inc da_prho_to_t_lin.inc da_prho_to_t_adj.inc da_wrf_interfaces.o da_reporting.o da_dynamics.o da_interpolation.o da_tracing.o da_par_util.o da_define_structures.o da_control.o module_comm_dm.o module_dm.o module_domain.o da_grid_definitions.o da_gpseph.o
@@ -144,6 +144,7 @@ da_pseudo.o : da_pseudo.f90 da_calculate_grady_pseudo.inc da_transform_xtoy_pseu
da_qscat.o : da_qscat.f90 da_calculate_grady_qscat.inc da_transform_xtoy_qscat_adj.inc da_transform_xtoy_qscat.inc da_print_stats_qscat.inc da_oi_stats_qscat.inc da_ao_stats_qscat.inc da_get_innov_vector_qscat.inc da_check_max_iv_qscat.inc da_residual_qscat.inc da_jo_and_grady_qscat.inc da_tracing.o da_tools.o da_statistics.o da_physics.o da_grid_definitions.o da_par_util1.o da_par_util.o da_interpolation.o da_define_structures.o da_control.o module_domain.o
da_rad_diags.o : da_rad_diags.f90
da_radar.o : da_radar.f90 da_write_oa_radar_ascii.inc da_max_error_qc_radar.inc da_calculate_grady_radar.inc da_radial_velocity_adj.inc da_radial_velocity_lin.inc da_radial_velocity.inc da_radar_rf.inc da_get_innov_vector_radar.inc da_check_max_iv_radar.inc da_transform_xtoy_radar_adj.inc da_transform_xtoy_radar.inc da_print_stats_radar.inc da_oi_stats_radar.inc da_residual_radar.inc da_jo_and_grady_radar.inc da_ao_stats_radar.inc da_tools_serial.o da_reporting.o da_tracing.o da_tools.o da_statistics.o da_par_util1.o da_par_util.o da_interpolation.o da_define_structures.o da_control.o module_domain.o da_radzicevar_calc_ice_abc.inc da_radzicevar_pkx.inc da_radzicevar_rain_adj.inc da_radzicevar_virtual.inc da_radzicevar_cal_tl_fw4wetice.inc da_radzicevar_parameter_zrx.inc da_radzicevar_prepare_interceptpara.inc da_radzicevar_rain_tl.inc da_radzicevar_waterfraction.inc da_radzicevar_dryice_adj.inc da_radzicevar_parameter_zxx.inc da_radzicevar_prepare_mixingratios.inc da_radzicevar_rhoair_tl.inc da_radzicevar_wetice_adj.inc da_radzicevar_dryice_tl.inc da_radzicevar_prepare_zmm_adj.inc da_radzicevar_sigma_in_abc.inc da_radzicevar_wetice_tl.inc da_radzicevar_pxabk.inc da_radzicevar_upper_f.inc da_radzicevar.inc da_radzicevar_tl.inc da_radzicevar_adj.inc
+da_lightning.o : da_lightning.f90 da_calculate_grady_lightning.inc da_get_innov_vector_lightning.inc da_check_max_iv_lightning.inc da_transform_xtoy_lightning_adj.inc da_transform_xtoy_lightning.inc da_print_stats_lightning.inc da_oi_stats_lightning.inc da_residual_lightning.inc da_jo_and_grady_lightning.inc da_ao_stats_lightning.inc da_div_profile.inc da_div_profile_adj.inc da_div_profile_tl.inc da_tracing.o da_tools.o da_statistics.o da_physics.o da_par_util1.o da_par_util.o da_define_structures.o da_control.o module_domain.o
da_radiance.o : da_radiance.f90 da_blacklist_rad.inc da_read_pseudo_rad.inc da_get_innov_vector_radiance.inc da_radiance_init.inc da_setup_radiance_structures.inc da_sort_rad.inc da_read_kma1dvar.inc da_initialize_rad_iv.inc da_allocate_rad_iv.inc da_read_obs_bufrssmis.inc da_read_obs_bufrairs.inc da_read_obs_bufriasi.inc da_read_obs_bufrseviri.inc da_read_obs_bufrtovs.inc da_write_filtered_rad.inc da_read_simulated_rad.inc da_read_filtered_rad.inc da_calculate_grady_rad.inc gsi_thinning.o da_wrf_interfaces.o da_varbc.o da_tracing.o da_tools.o da_statistics.o da_rttov.o da_reporting.o da_radiance1.o da_physics.o da_par_util.o da_par_util1.o da_tools_serial.o da_interpolation.o da_define_structures.o da_crtm.o da_control.o module_radiance.o module_domain.o amsr2time_.c da_read_obs_hdf5amsr2.inc da_deallocate_radiance.inc da_read_obs_ncgoesimg.inc da_get_satzen.inc da_read_obs_hdf5ahi.inc da_read_obs_netcdf4ahi_jaxa.inc da_read_obs_hdf5gmi.inc da_read_obs_netcdf4ahi_geocat.inc mod_clddet_geoir.o
da_radiance1.o : da_radiance1.f90 da_mspps_ts.inc da_mspps_emis.inc da_setup_satcv.inc da_qc_rad.inc da_print_stats_rad.inc da_oi_stats_rad.inc da_ao_stats_rad.inc da_cld_eff_radius.inc da_detsurtyp.inc da_write_oa_rad_ascii.inc da_write_iv_rad_ascii.inc da_qc_mhs.inc da_qc_ssmis.inc da_qc_hirs.inc da_qc_amsub.inc da_qc_amsua.inc da_qc_airs.inc da_cloud_detect.inc da_cloud_sim.inc da_qc_seviri.inc da_qc_iasi.inc da_qc_crtm.inc da_predictor_crtm.inc da_predictor_rttov.inc da_write_biasprep.inc da_biasprep.inc da_read_biascoef.inc da_biascorr.inc da_residual_rad.inc da_jo_and_grady_rad.inc gsi_constants.o da_tracing.o da_tools_serial.o da_tools.o da_statistics.o da_reporting.o da_par_util1.o da_par_util.o module_dm.o da_define_structures.o da_control.o module_radiance.o da_wrf_interfaces.o da_qc_amsr2.inc da_qc_goesimg.inc da_qc_ahi.inc da_qc_gmi.inc
da_rain.o : da_rain.f90 da_calculate_grady_rain.inc da_get_innov_vector_rain.inc da_get_hr_rain.inc da_check_max_iv_rain.inc da_transform_xtoy_rain_adj.inc da_transform_xtoy_rain.inc da_print_stats_rain.inc da_oi_stats_rain.inc da_residual_rain.inc da_jo_and_grady_rain.inc da_ao_stats_rain.inc da_tracing.o da_tools.o da_statistics.o da_par_util.o da_par_util1.o da_interpolation.o da_define_structures.o da_control.o module_comm_dm.o module_dm.o module_domain.o
@@ -154,7 +155,7 @@ da_rfz_cv3.o : da_rfz_cv3.f90
da_rsl_interfaces.o : da_rsl_interfaces.f90
da_rttov.o : da_rttov.f90 da_rttov_ad.inc da_rttov_tl.inc da_rttov_direct.inc da_rttov_init.inc da_transform_xtoy_rttov_adj.inc da_transform_xtoy_rttov.inc da_get_innov_vector_rttov.inc da_rttov_k.inc da_wrf_interfaces.o da_tracing.o da_tools.o da_radiance1.o da_par_util.o da_tools_serial.o da_interpolation.o da_control.o module_radiance.o da_reporting.o module_domain.o da_define_structures.o
da_satem.o : da_satem.f90 da_calculate_grady_satem.inc da_get_innov_vector_satem.inc da_check_max_iv_satem.inc da_transform_xtoy_satem_adj.inc da_transform_xtoy_satem.inc da_print_stats_satem.inc da_oi_stats_satem.inc da_residual_satem.inc da_jo_and_grady_satem.inc da_ao_stats_satem.inc da_tracing.o da_tools.o da_statistics.o da_physics.o da_par_util1.o da_par_util.o da_define_structures.o da_control.o module_domain.o
-da_setup_structures.o : da_setup_structures.f90 da_truncate_spectra.inc da_get_bins_info.inc da_write_kma_increments.inc da_write_increments_for_wrf_nmm_regional.inc da_write_increments.inc da_qfrmrh.inc da_cumulus.inc da_lcl.inc da_cloud_model.inc da_setup_runconstants.inc da_setup_obs_interp_wts.inc da_setup_obs_structures_madis.inc da_setup_obs_structures_bufr.inc da_setup_obs_structures_ascii.inc da_setup_obs_structures_rain.inc da_setup_obs_structures_radar.inc da_setup_obs_structures.inc da_setup_flow_predictors.inc da_setup_flow_predictors_para_read_opt1.inc da_chgvres.inc da_setup_cv.inc da_setup_be_nmm_regional.inc da_setup_be_regional.inc da_setup_be_ncep_gfs.inc da_setup_be_global.inc da_setup_background_errors.inc da_scale_background_errors.inc da_scale_background_errors_cv3.inc da_rescale_background_errors.inc da_interpolate_regcoeff.inc da_get_vertical_truncation.inc gsi_thinning.o module_radiance.o da_rf_cv3.o da_rfz_cv3.o da_vtox_transforms.o da_tracing.o da_tools.o da_tools_serial.o da_ssmi.o da_spectral.o da_recursive_filter.o da_reporting.o da_radiance.o da_par_util.o da_par_util1.o da_obs_io.o da_obs.o da_control.o da_wrf_interfaces.o da_define_structures.o module_domain.o da_wavelet.o da_chg_be_Vres.inc da_gen_eigen.inc da_eigen_to_covmatrix.inc da_setup_pseudo_obs.inc da_setup_flow_predictors_ep_format2.inc da_setup_flow_predictors_ep_format3.inc da_get_alpha_vertloc.inc da_write_vp.inc module_state_description.o da_setup_obs_structures_chem_sfc.inc
+da_setup_structures.o : da_setup_structures.f90 da_truncate_spectra.inc da_get_bins_info.inc da_write_kma_increments.inc da_write_increments_for_wrf_nmm_regional.inc da_write_increments.inc da_qfrmrh.inc da_cumulus.inc da_lcl.inc da_cloud_model.inc da_setup_runconstants.inc da_setup_obs_interp_wts.inc da_setup_obs_structures_madis.inc da_setup_obs_structures_bufr.inc da_setup_obs_structures_ascii.inc da_setup_obs_structures_rain.inc da_setup_obs_structures_radar.inc da_setup_obs_structures_lightning.inc da_setup_obs_structures.inc da_setup_flow_predictors.inc da_setup_flow_predictors_para_read_opt1.inc da_chgvres.inc da_setup_cv.inc da_setup_be_nmm_regional.inc da_setup_be_regional.inc da_setup_be_ncep_gfs.inc da_setup_be_global.inc da_setup_background_errors.inc da_scale_background_errors.inc da_scale_background_errors_cv3.inc da_rescale_background_errors.inc da_interpolate_regcoeff.inc da_get_vertical_truncation.inc gsi_thinning.o module_radiance.o da_rf_cv3.o da_rfz_cv3.o da_vtox_transforms.o da_tracing.o da_tools.o da_tools_serial.o da_ssmi.o da_spectral.o da_recursive_filter.o da_reporting.o da_radiance.o da_par_util.o da_par_util1.o da_obs_io.o da_obs.o da_control.o da_wrf_interfaces.o da_define_structures.o module_domain.o da_wavelet.o da_chg_be_Vres.inc da_gen_eigen.inc da_eigen_to_covmatrix.inc da_setup_pseudo_obs.inc da_setup_flow_predictors_ep_format2.inc da_setup_flow_predictors_ep_format3.inc da_get_alpha_vertloc.inc da_write_vp.inc module_state_description.o da_setup_obs_structures_chem_sfc.inc
da_ships.o : da_ships.f90 da_calculate_grady_ships.inc da_get_innov_vector_ships.inc da_check_max_iv_ships.inc da_transform_xtoy_ships_adj.inc da_transform_xtoy_ships.inc da_print_stats_ships.inc da_oi_stats_ships.inc da_residual_ships.inc da_jo_and_grady_ships.inc da_ao_stats_ships.inc da_tracing.o da_tools.o da_statistics.o da_physics.o da_grid_definitions.o da_par_util1.o da_par_util.o da_interpolation.o da_define_structures.o da_control.o module_domain.o
da_sound.o : da_sound.f90 da_calculate_grady_sonde_sfc.inc da_check_max_iv_sonde_sfc.inc da_get_innov_vector_sonde_sfc.inc da_transform_xtoy_sonde_sfc_adj.inc da_transform_xtoy_sonde_sfc.inc da_print_stats_sonde_sfc.inc da_oi_stats_sonde_sfc.inc da_residual_sonde_sfc.inc da_jo_sonde_sfc_uvtq.inc da_jo_and_grady_sonde_sfc.inc da_ao_stats_sonde_sfc.inc da_check_buddy_sound.inc da_calculate_grady_sound.inc da_get_innov_vector_sound.inc da_check_max_iv_sound.inc da_transform_xtoy_sound_adj.inc da_transform_xtoy_sound.inc da_print_stats_sound.inc da_oi_stats_sound.inc da_residual_sound.inc da_jo_sound_uvtq.inc da_jo_and_grady_sound.inc da_ao_stats_sound.inc da_tracing.o da_physics.o da_grid_definitions.o da_par_util1.o da_par_util.o da_tools.o da_statistics.o da_interpolation.o module_domain.o da_define_structures.o da_control.o
da_spectral.o : da_spectral.f90 da_apply_power.inc da_legtra_inv_adj.inc da_vtovv_spectral_adj.inc da_vv_to_v_spectral.inc da_vtovv_spectral.inc da_test_spectral.inc da_setlegpol.inc da_setlegpol_test.inc da_legtra.inc da_legtra_inv.inc da_initialize_h.inc da_get_reglats.inc da_get_gausslats.inc da_calc_power_spectrum.inc da_asslegpol.inc da_tracing.o da_tools_serial.o da_reporting.o da_par_util1.o da_define_structures.o da_control.o
@@ -163,11 +164,11 @@ da_statistics.o : da_statistics.f90 da_print_qcstat.inc da_stats_calculate.inc d
da_synop.o : da_synop.f90 da_check_buddy_synop.inc da_calculate_grady_synop.inc da_check_max_iv_synop.inc da_get_innov_vector_synop.inc da_transform_xtoy_synop_adj.inc da_transform_xtoy_synop.inc da_print_stats_synop.inc da_oi_stats_synop.inc da_residual_synop.inc da_jo_synop_uvtq.inc da_jo_and_grady_synop.inc da_ao_stats_synop.inc da_tracing.o da_tools.o da_statistics.o da_physics.o da_grid_definitions.o da_par_util.o da_par_util1.o da_interpolation.o da_define_structures.o da_control.o module_domain.o
da_tamdar.o : da_tamdar.f90 da_calculate_grady_tamdar_sfc.inc da_check_max_iv_tamdar_sfc.inc da_get_innov_vector_tamdar_sfc.inc da_transform_xtoy_tamdar_sfc_adj.inc da_transform_xtoy_tamdar_sfc.inc da_print_stats_tamdar_sfc.inc da_oi_stats_tamdar_sfc.inc da_residual_tamdar_sfc.inc da_jo_tamdar_sfc_uvtq.inc da_jo_and_grady_tamdar_sfc.inc da_ao_stats_tamdar_sfc.inc da_calculate_grady_tamdar.inc da_get_innov_vector_tamdar.inc da_check_max_iv_tamdar.inc da_transform_xtoy_tamdar_adj.inc da_transform_xtoy_tamdar.inc da_print_stats_tamdar.inc da_oi_stats_tamdar.inc da_residual_tamdar.inc da_jo_tamdar_uvtq.inc da_jo_and_grady_tamdar.inc da_ao_stats_tamdar.inc da_tracing.o da_physics.o da_grid_definitions.o da_par_util1.o da_par_util.o da_tools.o da_statistics.o da_interpolation.o module_domain.o da_define_structures.o da_control.o da_varbc_tamdar.o
da_varbc_tamdar.o : da_varbc_tamdar.f90 da_varbc_tamdar_init.inc da_varbc_tamdar_pred.inc da_varbc_tamdar_precond.inc da_varbc_tamdar_direct.inc da_varbc_tamdar_adj.inc da_varbc_tamdar_tl.inc da_varbc_tamdar_update.inc da_tracing.o da_tools_serial.o da_tools.o da_reporting.o da_define_structures.o da_control.o module_dm.o
-da_test.o : da_test.f90 da_test_vxtransform.inc da_check_gradient.inc da_get_y_lhs_value.inc da_check_vtoy_adjoint.inc da_set_tst_trnsf_fld.inc da_check_psfc.inc da_check_sfc_assi.inc da_setup_testfield.inc da_check_xtoy_adjoint_buoy.inc da_check_xtoy_adjoint_profiler.inc da_check_xtoy_adjoint_ssmt2.inc da_check_xtoy_adjoint_ssmt1.inc da_check_xtoy_adjoint_qscat.inc da_check_xtoy_adjoint_pseudo.inc da_dot_cv.inc da_dot.inc da_check.inc da_check_gradient.inc da_transform_xtovp.inc da_check_xtoy_adjoint_rad.inc da_check_xtoy_adjoint_synop.inc da_check_xtoy_adjoint_tamdar_sfc.inc da_check_xtoy_adjoint_tamdar.inc da_check_xtoy_adjoint_mtgirs.inc da_check_xtoy_adjoint_sonde_sfc.inc da_check_xtoy_adjoint_sound.inc da_check_xtoy_adjoint_bogus.inc da_check_xtoy_adjoint_rain.inc da_check_xtoy_adjoint_radar.inc da_check_xtoy_adjoint_ships.inc da_check_xtoy_adjoint_polaramv.inc da_check_xtoy_adjoint_geoamv.inc da_check_xtoy_adjoint_satem.inc da_check_xtoy_adjoint_ssmi_tb.inc da_check_xtoy_adjoint_ssmi_rv.inc da_check_xtoy_adjoint_pilot.inc da_check_xtoy_adjoint_metar.inc da_check_xtoy_adjoint_gpsref.inc da_check_xtoy_adjoint_gpspw.inc da_check_xtoy_adjoint_airep.inc da_check_xtoy_adjoint.inc da_check_xtovptox_errors.inc da_check_vvtovp_adjoint.inc da_check_vp_errors.inc da_check_vptox_adjoint.inc da_check_vtox_adjoint.inc da_check_cvtovv_adjoint.inc da_check_balance.inc da_4dvar.o da_vtox_transforms.o da_wrfvar_io.o da_wrf_interfaces.o da_transfer_model.o da_tracing.o da_tools_serial.o da_statistics.o da_ssmi.o da_spectral.o da_reporting.o da_physics.o da_par_util1.o da_par_util.o da_obs.o da_minimisation.o da_ffts.o da_dynamics.o da_define_structures.o module_state_description.o module_domain.o da_control.o module_comm_dm.o module_dm.o module_configure.o da_rain.o da_check_dynamics_adjoint.inc da_check_xtoy_adjoint_gpseph.inc da_check_cvtovv_adjoint_chem.inc da_check_vtox_adjoint_chem.inc da_check_vchemtox_adjoint.inc
+da_test.o : da_test.f90 da_test_vxtransform.inc da_check_gradient.inc da_get_y_lhs_value.inc da_check_vtoy_adjoint.inc da_set_tst_trnsf_fld.inc da_check_psfc.inc da_check_sfc_assi.inc da_setup_testfield.inc da_check_xtoy_adjoint_buoy.inc da_check_xtoy_adjoint_profiler.inc da_check_xtoy_adjoint_ssmt2.inc da_check_xtoy_adjoint_ssmt1.inc da_check_xtoy_adjoint_qscat.inc da_check_xtoy_adjoint_pseudo.inc da_dot_cv.inc da_dot.inc da_check.inc da_check_gradient.inc da_transform_xtovp.inc da_check_xtoy_adjoint_rad.inc da_check_xtoy_adjoint_synop.inc da_check_xtoy_adjoint_tamdar_sfc.inc da_check_xtoy_adjoint_tamdar.inc da_check_xtoy_adjoint_mtgirs.inc da_check_xtoy_adjoint_sonde_sfc.inc da_check_xtoy_adjoint_sound.inc da_check_xtoy_adjoint_bogus.inc da_check_xtoy_adjoint_rain.inc da_check_xtoy_adjoint_radar.inc da_check_xtoy_adjoint_lightning.inc da_check_xtoy_adjoint_ships.inc da_check_xtoy_adjoint_polaramv.inc da_check_xtoy_adjoint_geoamv.inc da_check_xtoy_adjoint_satem.inc da_check_xtoy_adjoint_ssmi_tb.inc da_check_xtoy_adjoint_ssmi_rv.inc da_check_xtoy_adjoint_pilot.inc da_check_xtoy_adjoint_metar.inc da_check_xtoy_adjoint_gpsref.inc da_check_xtoy_adjoint_gpspw.inc da_check_xtoy_adjoint_airep.inc da_check_xtoy_adjoint.inc da_check_xtovptox_errors.inc da_check_vvtovp_adjoint.inc da_check_vp_errors.inc da_check_vptox_adjoint.inc da_check_vtox_adjoint.inc da_check_cvtovv_adjoint.inc da_check_balance.inc da_4dvar.o da_vtox_transforms.o da_wrfvar_io.o da_wrf_interfaces.o da_transfer_model.o da_tracing.o da_tools_serial.o da_statistics.o da_ssmi.o da_spectral.o da_reporting.o da_physics.o da_par_util1.o da_par_util.o da_obs.o da_minimisation.o da_ffts.o da_dynamics.o da_define_structures.o module_state_description.o module_domain.o da_control.o module_comm_dm.o module_dm.o module_configure.o da_rain.o da_check_dynamics_adjoint.inc da_check_xtoy_adjoint_gpseph.inc da_check_cvtovv_adjoint_chem.inc da_check_vtox_adjoint_chem.inc da_check_vchemtox_adjoint.inc
da_tools.o : da_tools.f90 da_geo2msl1.inc da_msl2geo1.inc da_get_time_slots.inc da_get_julian_time.inc da_get_print_lvl.inc da_get_3d_sum.inc da_get_2d_sum.inc da_set_boundary_3d.inc da_set_boundary_xb.inc da_set_boundary_xa.inc da_ludcmp.inc da_lubksb.inc da_eof_decomposition.inc da_eof_decomposition_test.inc da_buddy_qc.inc da_unifva.inc da_togrid.inc da_togrid_new.inc da_smooth_anl.inc da_openfile.inc da_gaus_noise.inc da_set_randomcv.inc da_random_omb.inc da_max_error_qc.inc da_add_noise_new.inc da_add_noise.inc da_residual_new.inc da_residual.inc da_diff_seconds.inc da_mo_correction.inc da_intpsfc_tem.inc da_intpsfc_prs.inc da_sfcprs.inc da_obs_sfc_correction.inc da_1d_eigendecomposition.inc da_convert_zk.inc da_lc_cone.inc da_set_merc.inc da_map_set.inc da_map_init.inc da_set_ps.inc da_set_lc.inc da_xyll_ps.inc da_xyll_merc.inc da_xyll_lc.inc da_xyll_latlon.inc da_xyll_default.inc da_xyll.inc da_llxy_wrf_new.inc da_llxy_wrf.inc da_llxy_ps_new.inc da_llxy_ps.inc da_llxy_merc_new.inc da_llxy_merc.inc da_llxy_lc_new.inc da_llxy_lc.inc da_llxy_latlon_new.inc da_llxy_latlon.inc da_llxy_rotated_latlon.inc da_llxy_global_new.inc da_llxy_global.inc da_llxy_kma_global_new.inc da_llxy_kma_global.inc da_llxy_default_new.inc da_llxy_default.inc da_llxy_new.inc da_llxy.inc da_map_utils_defines.inc da_lapack.o da_reporting.o da_tracing.o da_tools_serial.o da_define_structures.o da_control.o module_domain.o module_dm.o module_bc.o da_sfc_hori_interp_weights.inc
da_tools_serial.o : da_tools_serial.f90 da_find_fft_trig_funcs.inc da_find_fft_factors.inc da_advance_time.inc da_advance_cymdh.inc da_array_print.inc da_change_date.inc da_free_unit.inc da_get_unit.inc da_reporting.o da_control.o
da_tracing.o : da_tracing.f90 da_trace_report.inc da_trace_real_sort.inc da_trace_int_sort.inc da_trace_exit.inc da_trace.inc da_trace_entry.inc da_trace_init.inc da_reporting.o da_par_util1.o da_control.o
-da_transfer_model.o : da_transfer_model.f90 da_get_2nd_firstguess.inc da_setup_firstguess_kma.inc da_setup_firstguess_wrf_nmm_regional.inc da_setup_firstguess_wrf.inc da_setup_firstguess.inc da_transfer_xatoanalysis.inc da_transfer_wrftl_lbc_t0_adj.inc da_transfer_xatowrftl_adj_lbc.inc da_transfer_xatowrftl_adj.inc da_transfer_wrftl_lbc_t0.inc da_transfer_xatowrftl_lbc.inc da_transfer_xatowrftl.inc da_transfer_wrftltoxa_adj.inc da_transfer_wrftltoxa.inc da_transfer_xatokma.inc da_transfer_xatowrf_nmm_regional.inc da_transfer_xatowrf.inc da_transfer_kmatoxb.inc da_transfer_wrf_nmm_regional_toxb.inc da_transfer_wrftoxb.inc module_io_wrf.o module_bc.o da_4dvar.o da_vtox_transforms.o da_tracing.o da_tools.o da_ssmi.o da_setup_structures.o da_reporting.o da_physics.o da_par_util.o da_grid_definitions.o da_define_structures.o da_control.o module_comm_dm.o module_dm.o module_state_description.o module_io_domain.o module_domain.o module_date_time.o module_configure.o da_wrf_interfaces.o da_radar.o da_transfer_wrftoxb_chem.inc
+da_transfer_model.o : da_transfer_model.f90 da_get_2nd_firstguess.inc da_setup_firstguess_kma.inc da_setup_firstguess_wrf_nmm_regional.inc da_setup_firstguess_wrf.inc da_setup_firstguess.inc da_transfer_xatoanalysis.inc da_transfer_wrftl_lbc_t0_adj.inc da_transfer_xatowrftl_adj_lbc.inc da_transfer_xatowrftl_adj.inc da_transfer_wrftl_lbc_t0.inc da_transfer_xatowrftl_lbc.inc da_transfer_xatowrftl.inc da_transfer_wrftltoxa_adj.inc da_transfer_wrftltoxa.inc da_transfer_xatokma.inc da_transfer_xatowrf_nmm_regional.inc da_transfer_xatowrf.inc da_transfer_kmatoxb.inc da_transfer_wrf_nmm_regional_toxb.inc da_transfer_wrftoxb.inc module_io_wrf.o module_bc.o da_4dvar.o da_vtox_transforms.o da_tracing.o da_tools.o da_ssmi.o da_setup_structures.o da_reporting.o da_physics.o da_par_util.o da_grid_definitions.o da_define_structures.o da_control.o module_comm_dm.o module_dm.o module_state_description.o module_io_domain.o module_domain.o module_date_time.o module_configure.o da_wrf_interfaces.o da_radar.o da_lightning.o da_transfer_wrftoxb_chem.inc
da_tune_obs_desroziers.o : da_tune_obs_desroziers.f90
da_tune_obs_hollingsworth1.o : da_tune_obs_hollingsworth1.f90 da_control.o
da_tune_obs_hollingsworth2.o : da_tune_obs_hollingsworth2.f90 da_control.o
@@ -191,7 +192,7 @@ da_wrfvar_esmf.o : da_wrfvar_esmf.f90
da_wrfvar_esmf_super.o : da_wrfvar_esmf_super.f90 da_wrfvar_interface.inc da_esmf_finalize.inc da_esmf_run.inc da_esmf_init.inc
da_wrfvar_io.o : copyfile.c da_wrfvar_io.f90 da_med_initialdata_output_lbc.inc da_med_initialdata_output.inc da_med_initialdata_input.inc da_update_firstguess.inc da_4dvar.o da_tracing.o da_reporting.o da_control.o module_io_domain.o module_domain.o module_date_time.o module_configure.o module_domain_type.o
da_wrfvar_main.o : da_wrfvar_main.f90 da_4dvar.o da_wrfvar_top.o da_wrf_interfaces.o da_tracing.o da_control.o module_symbols_util.o
-da_wrfvar_top.o : da_wrfvar_top.f90 da_solve_init.inc da_solve_dual_res_init.inc da_solve.inc da_wrfvar_finalize.inc da_wrfvar_interface.inc da_wrfvar_run.inc da_wrfvar_init2.inc da_wrfvar_init1.inc da_wrf_interfaces.o da_rain.o da_synop.o da_ssmi.o da_sound.o da_ships.o da_satem.o da_radar.o da_mtgirs.o da_qscat.o da_profiler.o da_polaramv.o da_pilot.o da_metar.o da_gpsref.o da_gpspw.o da_geoamv.o da_buoy.o da_bogus.o da_airsr.o da_airep.o da_crtm.o da_tools.o da_vtox_transforms.o da_transfer_model.o da_tracing.o da_tools_serial.o da_test.o da_setup_structures.o da_reporting.o da_varbc.o da_radiance1.o da_physics.o da_par_util.o da_obs_io.o da_obs.o da_minimisation.o da_define_structures.o da_control.o module_comm_dm.o module_dm.o module_tiles.o module_state_description.o module_radiance.o da_wrfvar_io.o da_4dvar.o module_symbols_util.o module_driver_constants.o module_domain.o module_configure.o module_io_domain.o da_netcdf_interface.o da_gpseph.o da_varbc_tamdar.o module_io_wrf.o da_chem_sfc.o
+da_wrfvar_top.o : da_wrfvar_top.f90 da_solve_init.inc da_solve_dual_res_init.inc da_solve.inc da_wrfvar_finalize.inc da_wrfvar_interface.inc da_wrfvar_run.inc da_wrfvar_init2.inc da_wrfvar_init1.inc da_wrf_interfaces.o da_rain.o da_synop.o da_ssmi.o da_sound.o da_ships.o da_satem.o da_radar.o da_lightning.o da_mtgirs.o da_qscat.o da_profiler.o da_polaramv.o da_pilot.o da_metar.o da_gpsref.o da_gpspw.o da_geoamv.o da_buoy.o da_bogus.o da_airsr.o da_airep.o da_crtm.o da_tools.o da_vtox_transforms.o da_transfer_model.o da_tracing.o da_tools_serial.o da_test.o da_setup_structures.o da_reporting.o da_varbc.o da_radiance1.o da_physics.o da_par_util.o da_obs_io.o da_obs.o da_minimisation.o da_define_structures.o da_control.o module_comm_dm.o module_dm.o module_tiles.o module_state_description.o module_radiance.o da_wrfvar_io.o da_4dvar.o module_symbols_util.o module_driver_constants.o module_domain.o module_configure.o module_io_domain.o da_netcdf_interface.o da_gpseph.o da_varbc_tamdar.o module_io_wrf.o da_chem_sfc.o
decode_airs.o : decode_airs.f90 module_read_airs.o
f_qv_from_rh.o : f_qv_from_rh.f90
gamma1.o : gamma1.f90 da_control.o
diff --git a/var/build/inc/commit_decl b/var/build/inc/commit_decl
new file mode 120000
index 0000000000..deba7f149d
--- /dev/null
+++ b/var/build/inc/commit_decl
@@ -0,0 +1 @@
+/glade/work/taosun/model/V4.5/WRFDA_LDA/inc/commit_decl
\ No newline at end of file
diff --git a/var/da/da_control/da_control.f90 b/var/da/da_control/da_control.f90
index 5abe3ff927..46810d7bec 100644
--- a/var/da/da_control/da_control.f90
+++ b/var/da/da_control/da_control.f90
@@ -240,6 +240,7 @@ module da_control
real, parameter :: typical_rv_rms = 1.0 ! m/s
real, parameter :: typical_rf_rms = 1.0 ! dBZ
real, parameter :: typical_rain_rms = 1.0 ! mm
+ real, parameter :: typical_div_rms = 0.001
! The following typical mean squared values depend on control variable. They
! are calculated in da_setup_background_errors and used in the VvToVp adjoint
@@ -487,7 +488,7 @@ module da_control
! rtm_init setup parameter
- integer, parameter :: maxsensor = 30
+ integer, parameter :: maxsensor = 31
integer, parameter :: npres_print = 12
@@ -525,8 +526,9 @@ module da_control
integer, parameter :: tamdar_sfc = 27
integer, parameter :: rain = 28
integer, parameter :: gpseph = 29
+ integer, parameter :: lightning = 30
#if (WRF_CHEM == 1)
- integer, parameter :: chemic_surf = 30
+ integer, parameter :: chemic_surf = 31
#endif
character(len=14), parameter :: obs_names(num_ob_indexes) = (/ &
@@ -558,7 +560,8 @@ module da_control
"tamdar ", &
"tamdar_sfc ", &
"rain ", &
- "gpseph " &
+ "gpseph ", &
+ "lightning " &
#if (WRF_CHEM == 1)
,"chemic_surf " &
#endif
diff --git a/var/da/da_define_structures/da_allocate_observations.inc b/var/da/da_define_structures/da_allocate_observations.inc
index 3c631deb39..90cf02f120 100644
--- a/var/da/da_define_structures/da_allocate_observations.inc
+++ b/var/da/da_define_structures/da_allocate_observations.inc
@@ -36,6 +36,7 @@ subroutine da_allocate_observations (iv)
if (iv%info(profiler)%nlocal > 0) allocate(iv%profiler (1:iv%info(profiler)%nlocal))
if (iv%info(buoy)%nlocal > 0) allocate(iv%buoy (1:iv%info(buoy)%nlocal))
if (iv%info(radar)%nlocal > 0) allocate(iv%radar (1:iv%info(radar)%nlocal))
+ if (iv%info(lightning)%nlocal > 0) allocate(iv%lightning(1:iv%info(lightning)%nlocal))
if (iv%info(bogus)%nlocal > 0) allocate(iv%bogus (1:iv%info(bogus)%nlocal))
if (iv%info(airsr)%nlocal > 0) allocate(iv%airsr (1:iv%info(airsr)%nlocal))
diff --git a/var/da/da_define_structures/da_allocate_y.inc b/var/da/da_define_structures/da_allocate_y.inc
index 13935e1a52..f206bebb5b 100644
--- a/var/da/da_define_structures/da_allocate_y.inc
+++ b/var/da/da_define_structures/da_allocate_y.inc
@@ -211,6 +211,19 @@ subroutine da_allocate_y (iv, y)
end do
end if
+ if (y % nlocal(lightning) > 0) then
+ allocate (y % lightning(1:y % nlocal(lightning)))
+ do n = 1, y % nlocal(lightning)
+ nlevels = iv%info(lightning)%levels(n)
+ allocate (y % lightning(n) % w(1:nlevels))
+ allocate (y % lightning(n) % div(1:nlevels))
+ allocate (y % lightning(n) % qv(1:nlevels))
+ y % lightning(n) % w(1:nlevels) = 0.0
+ y % lightning(n) % div(1:nlevels) = 0.0
+ y % lightning(n) % qv(1:nlevels) = 0.0
+ end do
+ end if
+
if (y % nlocal(airep) > 0) then
allocate (y % airep(1:y % nlocal(airep)))
do n = 1, y % nlocal(airep)
diff --git a/var/da/da_define_structures/da_allocate_y_lightning.inc b/var/da/da_define_structures/da_allocate_y_lightning.inc
new file mode 100644
index 0000000000..5222f34e84
--- /dev/null
+++ b/var/da/da_define_structures/da_allocate_y_lightning.inc
@@ -0,0 +1,44 @@
+subroutine da_allocate_y_lightning (iv, y)
+
+ !---------------------------------------------------------------------------
+ ! Purpose: Allocate arrays used in y and residual obs structures.
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !---------------------------------------------------------------------------
+
+ implicit none
+
+ type (iv_type), intent(in) :: iv ! Ob type input.
+ type (y_type), intent(inout) :: y ! Residual type structure.
+
+ integer :: n ! Loop counter.
+ integer :: nlevels ! Number of levels.
+
+ !---------------------------------------------------------------------------
+ ! [1.0] Copy number of observations:
+ !---------------------------------------------------------------------------
+
+ if (trace_use) call da_trace_entry("da_allocate_y_lightning")
+
+ y % nlocal(lightning) = iv%info(lightning)%nlocal
+ y % ntotal(lightning) = iv%info(lightning)%ntotal
+
+ !---------------------------------------------------------------------------
+ ! [2.0] Allocate:
+ !---------------------------------------------------------------------------
+
+ if (y % nlocal(lightning) > 0) then
+ allocate (y % lightning(1:y % nlocal(lightning)))
+ do n = 1, y % nlocal(lightning)
+ nlevels = iv%info(lightning)%levels(n)
+ allocate (y % lightning(n) % w(1:nlevels))
+ allocate (y % lightning(n) % div(1:nlevels))
+ allocate (y % lightning(n) % qv(1:nlevels))
+ y % lightning(n) % w(1:nlevels) = 0.0
+ y % lightning(n) % div(1:nlevels) = 0.0
+ y % lightning(n) % qv(1:nlevels) = 0.0
+ end do
+ end if
+
+ if (trace_use) call da_trace_exit("da_allocate_y_lightning")
+
+end subroutine da_allocate_y_lightning
diff --git a/var/da/da_define_structures/da_deallocate_observations.inc b/var/da/da_define_structures/da_deallocate_observations.inc
index c98a0ca210..041e56448a 100644
--- a/var/da/da_define_structures/da_deallocate_observations.inc
+++ b/var/da/da_define_structures/da_deallocate_observations.inc
@@ -157,6 +157,15 @@ subroutine da_deallocate_observations (iv)
deallocate (iv%radar)
end if
+ if (iv%info(lightning)%nlocal > 0) then
+ do n = 1, iv%info(lightning)%nlocal
+ deallocate (iv%lightning(n) % w)
+ deallocate (iv%lightning(n) % div)
+ deallocate (iv%lightning(n) % qv)
+ end do
+ deallocate (iv%lightning)
+ end if
+
if (iv%info(rain)%nlocal > 0) deallocate (iv%rain)
if (iv%info(gpspw)%nlocal > 0) deallocate (iv%gpspw)
diff --git a/var/da/da_define_structures/da_deallocate_y.inc b/var/da/da_define_structures/da_deallocate_y.inc
index 3225ac90c6..25fc969836 100644
--- a/var/da/da_define_structures/da_deallocate_y.inc
+++ b/var/da/da_define_structures/da_deallocate_y.inc
@@ -81,18 +81,26 @@ subroutine da_deallocate_y(y)
deallocate (y % bogus)
end if
- if (y % nlocal(radar) > 0) then
- do n = 1, y % nlocal(radar)
- deallocate (y % radar(n)%rv)
- deallocate (y % radar(n)%rf)
- if (associated(y%radar(n)%rqv)) deallocate(y%radar(n)%rqv)
- if (associated(y%radar(n)%rgr)) deallocate(y%radar(n)%rgr)
- if (associated(y%radar(n)%rsn)) deallocate(y%radar(n)%rsn)
- if (associated(y%radar(n)%rrn)) deallocate(y%radar(n)%rrn)
- end do
- deallocate (y % radar)
- end if
+ if (y % nlocal(radar) > 0) then
+ do n = 1, y % nlocal(radar)
+ deallocate (y % radar(n)%rv)
+ deallocate (y % radar(n)%rf)
+ if (associated(y%radar(n)%rqv)) deallocate(y%radar(n)%rqv)
+ if (associated(y%radar(n)%rgr)) deallocate(y%radar(n)%rgr)
+ if (associated(y%radar(n)%rsn)) deallocate(y%radar(n)%rsn)
+ if (associated(y%radar(n)%rrn)) deallocate(y%radar(n)%rrn)
+ end do
+ deallocate (y % radar)
+ end if
+ if (y % nlocal(lightning) > 0) then
+ do n = 1, y % nlocal(lightning)
+ deallocate (y % lightning(n)%w)
+ deallocate (y % lightning(n)%div)
+ deallocate (y % lightning(n)%qv)
+ end do
+ deallocate (y % lightning)
+ end if
if (y % nlocal(airep) > 0) then
do n = 1, y % nlocal(airep)
diff --git a/var/da/da_define_structures/da_define_structures.f90 b/var/da/da_define_structures/da_define_structures.f90
index 7d3249e4c0..095c5dbcb7 100644
--- a/var/da/da_define_structures/da_define_structures.f90
+++ b/var/da/da_define_structures/da_define_structures.f90
@@ -21,7 +21,7 @@ module da_define_structures
put_rand_seed, seed_array1, seed_array2, missing_r, &
sound, synop, pilot, satem, geoamv, polaramv, airep, gpspw, gpsref, gpseph, &
metar, ships, ssmi_rv, ssmi_tb, ssmt1, ssmt2, qscat, profiler, buoy, bogus, &
- mtgirs, tamdar, tamdar_sfc, pseudo, radar, radiance, airsr, sonde_sfc, rain, &
+ mtgirs, tamdar, tamdar_sfc, pseudo, radar, lightning, radiance, airsr, sonde_sfc, rain, &
#if (WRF_CHEM == 1)
chemic_surf, chem_cv_options, &
#endif
@@ -318,6 +318,42 @@ module da_define_structures
type (rain_each_type) :: each(1)
end type rain_single_level_type
+ type lightning_stn_type
+ character (len = 5) :: platform ! Data type
+ character (len = 12) :: name ! Station name
+ character (len = 19) :: date_char ! CCYY-MM-DD_HH:MM:SS date
+ integer :: numobs ! number of Obs
+ integer :: levels ! number of levels
+ real :: lat ! Latitude in degree
+ real :: lon ! Longitude in degree
+ real :: elv ! Elevation in
+ end type lightning_stn_type
+
+ type lightning_type
+ type (stn_loc_type) :: stn_loc
+ real , pointer :: height (:) ! Height in m
+ integer , pointer :: height_qc(:) ! Height QC
+ type (field_type) , pointer :: w(:) ! Retrieved vertical velocity from flash rate
+ type (field_type) , pointer :: div(:) ! Retrieved convergence fileds from vertical velocity
+ type (field_type) , pointer :: qv(:) ! Retrieved vapor mixing ratio from flash rate
+ end type lightning_type
+
+ type lightning_each_level_type
+ real :: height ! Height in m
+ integer :: height_qc ! Height QC
+ real :: zk ! MM5 k-coordinates
+ type (field_type) :: w
+ type (field_type) :: div
+ type (field_type) :: qv
+ end type lightning_each_level_type
+
+ type lightning_multi_level_type
+ type (lightning_stn_type) :: stn
+ type (info_type) :: info
+ type (model_loc_type) :: loc
+ type (lightning_each_level_type) :: each(max_ob_levels)
+ end type lightning_multi_level_type
+
#if (WRF_CHEM == 1)
type chemic_surf_type
@@ -702,6 +738,7 @@ module da_define_structures
real :: bogus_ef_u, bogus_ef_v, bogus_ef_t, bogus_ef_p, bogus_ef_q, bogus_ef_slp
real :: airsr_ef_t, airsr_ef_q
real :: rain_ef_r
+ real :: lightning_ef_w, lightning_ef_div, lightning_ef_qv
#if (WRF_CHEM == 1)
real :: chemic_surf_ef
#endif
@@ -737,6 +774,7 @@ module da_define_structures
type (tamdar_type) , pointer :: tamdar(:)
type (synop_type) , pointer :: tamdar_sfc(:)
type (rain_type) , pointer :: rain(:)
+ type (lightning_type), pointer :: lightning(:)
#if (WRF_CHEM == 1)
type (chemic_surf_type), pointer :: chemic_surf(:)
#endif
@@ -782,6 +820,8 @@ module da_define_structures
type (bad_info_type) :: slp
type (bad_info_type) :: rad
type (bad_info_type) :: rain
+ type (bad_info_type) :: w
+ type (bad_info_type) :: div
#if (WRF_CHEM == 1)
type (bad_info_type) :: chemic_surf
#endif
@@ -928,6 +968,12 @@ module da_define_structures
real, pointer :: rqv(:) => null()
end type residual_radar_type
+ type residual_lightning_type
+ real, pointer :: w(:)
+ real, pointer :: div(:)
+ real, pointer :: qv(:)
+ end type residual_lightning_type
+
type residual_instid_type
integer :: num_rad
integer :: nchan
@@ -985,6 +1031,7 @@ module da_define_structures
type (residual_radar_type), pointer :: radar(:)
type (residual_instid_type), pointer :: instid(:)
type (residual_rain_type), pointer :: rain(:)
+ type (residual_lightning_type),pointer :: lightning(:)
#if (WRF_CHEM == 1)
type (residual_chem_surf_type),pointer :: chemic_surf(:)
#endif
@@ -1039,6 +1086,7 @@ module da_define_structures
real :: bogus_u, bogus_v, bogus_t, bogus_q, bogus_slp
real :: airsr_t, airsr_q
real :: rain_r
+ real :: lightning_w, lightning_div, lightning_qv
#if (WRF_CHEM == 1)
real :: chemic_surf
#endif
@@ -1216,6 +1264,7 @@ module da_define_structures
#endif
#include "da_allocate_y.inc"
#include "da_allocate_y_radar.inc"
+#include "da_allocate_y_lightning.inc"
#include "da_allocate_y_rain.inc"
#if (WRF_CHEM == 1)
#include "da_allocate_y_chem_sfc.inc"
diff --git a/var/da/da_define_structures/da_zero_y.inc b/var/da/da_define_structures/da_zero_y.inc
index 09bae42319..822be34ba9 100644
--- a/var/da/da_define_structures/da_zero_y.inc
+++ b/var/da/da_define_structures/da_zero_y.inc
@@ -284,6 +284,17 @@ subroutine da_zero_y( iv, y, value )
end do
end if
+ ! Initialize lightning:
+ if ( y % nlocal(lightning) > 0 ) then
+ do n = 1, y % nlocal(lightning)
+ nlevels = iv % info(lightning) % levels(n)
+
+ y % lightning(n) % w(1:nlevels) = value
+ y % lightning(n) % div(1:nlevels) = value
+ y % lightning(n) % qv(1:nlevels) = value
+ end do
+ end if
+
! Initialize rain:
if ( y % nlocal(rain) > 0 ) then
y % rain(1:y % nlocal(rain)) % rain = value
diff --git a/var/da/da_lightning/da_ao_stats_lightning.inc b/var/da/da_lightning/da_ao_stats_lightning.inc
new file mode 100644
index 0000000000..47b97352ce
--- /dev/null
+++ b/var/da/da_lightning/da_ao_stats_lightning.inc
@@ -0,0 +1,96 @@
+subroutine da_ao_stats_lightning (stats_unit, iv, re)
+
+ !-----------------------------------------------------------------------
+ ! Purpose: TBD
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ integer, intent (in) :: stats_unit ! Output unit for stats.
+ type (iv_type), intent (inout) :: iv ! iv
+ type (y_type), intent (in) :: re ! A - O
+
+ type (stats_lightning_type) :: stats
+ integer :: nw, ndiv, nqv
+ integer :: n, k
+
+ if (trace_use_dull) call da_trace_entry("da_ao_stats_lightning")
+
+ nw = 0
+ ndiv = 0
+ nqv = 0
+
+ stats%maximum%w = maxmin_type (missing_r, 0, 0)
+ stats%maximum%div = maxmin_type (missing_r, 0, 0)
+ stats%maximum%qv = maxmin_type (missing_r, 0, 0)
+ stats%minimum%w = maxmin_type(-missing_r, 0, 0)
+ stats%minimum%div = maxmin_type(-missing_r, 0, 0)
+ stats%minimum%qv = maxmin_type(-missing_r, 0, 0)
+
+ stats%average = residual_lightning1_type(0.0, 0.0, 0.0)
+ stats%rms_err = stats%average
+
+ do n = 1, iv%info(lightning)%nlocal
+ if(iv%info(lightning)%proc_domain(1,n)) then
+ do k = 1, iv%info(lightning)%levels(n)
+
+ if(use_lightning_w) then
+ call da_stats_calculate (n, k, iv%lightning(n)%w(k)%qc, &
+ re%lightning(n)%w(k), nw, &
+ stats%minimum%w, stats%maximum%w, &
+ stats%average%w, stats%rms_err%w)
+ end if
+
+ if(use_lightning_div) then
+ call da_stats_calculate (n, k, iv%lightning(n)%div(k)%qc, &
+ re%lightning(n)%div(k), ndiv, &
+ stats%minimum%div, stats%maximum%div, &
+ stats%average%div, stats%rms_err%div)
+ end if
+
+ if(use_lightning_qv) then
+ call da_stats_calculate (n, k, iv%lightning(n)%qv(k)%qc, &
+ re%lightning(n)%qv(k), nqv, &
+ stats%minimum%qv, stats%maximum%qv, &
+ stats%average%qv, stats%rms_err%qv)
+ end if
+ end do
+ end if
+ end do
+
+ ! Do inter-processor communication to gather statistics.
+ if (use_lightning_w) then
+ call da_proc_sum_int (nw)
+ call da_proc_stats_combine(stats%average%w, stats%rms_err%w, &
+ stats%minimum%w%value, stats%maximum%w%value, &
+ stats%minimum%w%n, stats%maximum%w%n, &
+ stats%minimum%w%l, stats%maximum%w%l)
+ end if
+
+ if (use_lightning_div) then
+ call da_proc_sum_int (ndiv)
+ call da_proc_stats_combine(stats%average%div, stats%rms_err%div, &
+ stats%minimum%div%value, stats%maximum%div%value, &
+ stats%minimum%div%n, stats%maximum%div%n, &
+ stats%minimum%div%l, stats%maximum%div%l)
+ end if
+
+ if (use_lightning_qv) then
+ call da_proc_sum_int (nqv)
+ call da_proc_stats_combine(stats%average%qv, stats%rms_err%qv, &
+ stats%minimum%qv%value, stats%maximum%qv%value, &
+ stats%minimum%qv%n, stats%maximum%qv%n, &
+ stats%minimum%qv%l, stats%maximum%qv%l)
+ end if
+
+ if (rootproc) then
+ if ( nw /= 0 .or. ndiv /= 0 .or. nqv /= 0 ) then
+ write(unit=stats_unit, fmt='(/a/)') ' Diagnostics of AO for lightning'
+ call da_print_stats_lightning(stats_unit, nw, ndiv, nqv, stats)
+ end if
+ end if
+
+ if (trace_use_dull) call da_trace_exit("da_ao_stats_lightning")
+
+end subroutine da_ao_stats_lightning
diff --git a/var/da/da_lightning/da_calculate_grady_lightning.inc b/var/da/da_lightning/da_calculate_grady_lightning.inc
new file mode 100644
index 0000000000..58689124fa
--- /dev/null
+++ b/var/da/da_lightning/da_calculate_grady_lightning.inc
@@ -0,0 +1,46 @@
+subroutine da_calculate_grady_lightning(iv, re, jo_grad_y)
+
+ !----------------------------------------------------------------------
+ ! Purpose: Applies obs inverse on re-vector
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !------------------------------------------------------------------------------
+ implicit none
+
+ type (iv_type), intent(in) :: iv ! Innovation vector.
+ type (y_type), intent(inout) :: re ! Residual vector.
+ type (y_type), intent(inout) :: jo_grad_y ! Grad_y(Jo)
+
+ integer :: n, k
+
+ if (trace_use_dull) call da_trace_entry("da_calculate_grady_lightning")
+
+ do n = 1, iv%info(lightning)%nlocal
+ do k = 2, iv%info(lightning)%levels(n)
+
+ if(use_lightning_w) then
+ if(iv%lightning(n)%w(k)%qc < obs_qc_pointer) then
+ re%lightning(n)%w(k) = 0.0
+ end if
+ jo_grad_y%lightning(n)%w(k) = -re%lightning(n)%w(k) / (iv%lightning(n)%w(k)%error * iv%lightning(n)%w(k)%error)
+ end if
+
+ if(use_lightning_div) then
+ if(iv%lightning(n)%div(k)%qc < obs_qc_pointer) then
+ re%lightning(n)%div(k) = 0.0
+ end if
+ jo_grad_y%lightning(n)%div(k) = -re%lightning(n)%div(k) / (iv%lightning(n)%div(k)%error * iv%lightning(n)%div(k)%error)
+ end if
+
+ if(use_lightning_qv) then
+ if(iv%lightning(n)%qv(k)%qc < obs_qc_pointer) then
+ re%lightning(n)%qv(k) = 0.0
+ end if
+ jo_grad_y%lightning(n)%qv(k) = -re%lightning(n)%qv(k) / (iv%lightning(n)%qv(k)%error * iv%lightning(n)%qv(k)%error)
+ end if
+
+ end do
+ end do
+
+ if (trace_use_dull) call da_trace_exit("da_calculate_grady_lightning")
+
+end subroutine da_calculate_grady_lightning
diff --git a/var/da/da_lightning/da_check_max_iv_lightning.inc b/var/da/da_lightning/da_check_max_iv_lightning.inc
new file mode 100644
index 0000000000..e79cbe3673
--- /dev/null
+++ b/var/da/da_lightning/da_check_max_iv_lightning.inc
@@ -0,0 +1,62 @@
+subroutine da_check_max_iv_lightning(iv,ob, it)
+
+ !-----------------------------------------------------------------------
+ ! Purpose: TBD
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ type(iv_type), intent(inout) :: iv
+ integer, intent(in) :: it ! Outer iteration
+ type(y_type), intent(in) :: ob ! Observation structure.
+
+ logical :: failed
+ integer :: n, k
+
+ if (trace_use) call da_trace_entry("da_check_max_iv_lightning")
+
+ !---------------------------------------------------------------------------
+ ! [1.0] Perform maximum innovation vector check:
+ !---------------------------------------------------------------------------
+
+ do n = iv%info(lightning)%n1,iv%info(lightning)%n2
+ do k = 1, iv%info(lightning)%levels(n)
+ failed = .false.
+ if(iv%lightning(n)%w(k)%qc >= obs_qc_pointer) then
+ call da_max_error_qc(it, iv%info(lightning), n, iv%lightning(n)%w(k),max_error_lda_w, failed)
+ if(iv%info(lightning)%proc_domain(k,n)) then
+ if(failed) then
+ write(qcstat_conv_unit,'(2x, a10, 2x, a10, 4f12.3, a12)')&
+ 'Lightning','lightning',iv%info(lightning)%lat(k,n),iv%info(lightning)%lon(k,n), iv%lightning(n)%w(k)%inv, ob%lightning(n)%w(k)
+ end if
+ end if
+ end if
+
+ failed = .false.
+ if(iv%lightning(n)%div(k)%qc >= obs_qc_pointer) then
+ call da_max_error_qc(it, iv%info(lightning), n, iv%lightning(n)%div(k),max_error_lda_div, failed)
+ if(iv%info(lightning)%proc_domain(k,n)) then
+ if(failed) then
+ write(qcstat_conv_unit,'(2x, a10, 2x, a10, 4f12.3, a12)')&
+ 'Lightning','lightning',iv%info(lightning)%lat(k,n),iv%info(lightning)%lon(k,n), iv%lightning(n)%div(k)%inv, ob%lightning(n)%div(k)
+ end if
+ end if
+ end if
+
+ failed = .false.
+ if(iv%lightning(n)%qv(k)%qc >= obs_qc_pointer) then
+ call da_max_error_qc(it, iv%info(lightning), n, iv%lightning(n)%qv(k),max_error_lda_qv, failed)
+ if(iv%info(lightning)%proc_domain(k,n)) then
+ if(failed)then
+ write(qcstat_conv_unit,'(2x,a10,2x,a10,4f12.2,a12)')&
+ 'Lightning','lightning',iv%info(lightning)%lat(k,n),iv%info(lightning)%lon(k,n), iv%lightning(n)%qv(k)%inv, ob%lightning(n)%qv(k)
+ end if
+ end if
+ end if
+ end do
+ end do
+
+ if (trace_use) call da_trace_exit("da_check_max_iv_lightning")
+
+end subroutine da_check_max_iv_lightning
diff --git a/var/da/da_lightning/da_div_profile.inc b/var/da/da_lightning/da_div_profile.inc
new file mode 100644
index 0000000000..9111112433
--- /dev/null
+++ b/var/da/da_lightning/da_div_profile.inc
@@ -0,0 +1,57 @@
+subroutine da_div_profile(grid, info, n, k, div)
+
+ !--------------------------------------------------------------------------
+ ! Purpose: Calculates divergence (div) on each level at the observed location (i,j).
+ ! dx, dxm, dy, dym are horizontal interpolation weighting.
+ ! d U d V
+ ! Div = m^2 *[---(---) + ---(---) ]
+ ! dx m dy m
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !--------------------------------------------------------------------------
+
+ implicit none
+
+ type (domain), intent(in) :: grid
+ type (infa_type), intent(in) :: info
+ integer, intent(in) :: n, k
+ real, intent(out) :: div
+
+ integer :: ii, jj ! index dimension.
+ real :: div_m(2,2) ! divergence
+
+ integer :: i, j ! OBS location
+ real :: dx, dxm ! interpolation weights.
+ real :: dy, dym ! interpolation weights.
+ real :: coeff
+ if (trace_use_dull) call da_trace_entry("da_div_profile")
+
+ i = info%i(1,n)
+ j = info%j(1,n)
+ dx = info%dx(1,n)
+ dy = info%dy(1,n)
+ dxm = info%dxm(1,n)
+ dym = info%dym(1,n)
+
+ if(i == its) i = its + 1
+ if(i == ite) i = ite - 1
+ if(j == jts) j = jts + 1
+ if(j == jte) j = jte - 1
+ ! calculate layered divergence
+
+ do ii = i, i+1
+ do jj = j, j+1
+ coeff = grid%xb%map_factor(ii,jj) * grid%xb%map_factor(ii,jj)*0.5/grid%xb%ds
+
+ div_m(ii-i+1,jj-j+1) = (grid%xb%u(ii+1,jj,k)/grid%xb%map_factor(ii+1,jj) - &
+ grid%xb%u(ii-1,jj,k)/grid%xb%map_factor(ii-1,jj) + &
+ grid%xb%v(ii,jj+1,k)/grid%xb%map_factor(ii,jj+1) - &
+ grid%xb%v(ii,jj-1,k)/grid%xb%map_factor(ii,jj-1))*coeff
+ end do
+ end do
+
+ ! Horizontal interpolation to the obs. pt.
+ div = dym*(dxm*div_m(1,1)+dx*div_m(2,1))+dy*(dxm*div_m(1,2)+dx*div_m(2,2))
+
+ if (trace_use_dull) call da_trace_exit("da_div_profile")
+
+end subroutine da_div_profile
diff --git a/var/da/da_lightning/da_div_profile_adj.inc b/var/da/da_lightning/da_div_profile_adj.inc
new file mode 100644
index 0000000000..80b7855920
--- /dev/null
+++ b/var/da/da_lightning/da_div_profile_adj.inc
@@ -0,0 +1,65 @@
+subroutine da_div_profile_adj(grid,jo_grad_x, info, n, k, ADJ_div)
+
+ !--------------------------------------------------------------------------
+ ! Purpose: Calculates divergence (div) on each level at the observed location (i,j).
+ ! dx, dxm, dy, dym are horizontal interpolation weighting.
+ ! d U d V
+ ! Div = m^2 *[---(---) + ---(---) ]
+ ! dx m dy M
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !--------------------------------------------------------------------------
+
+ implicit none
+
+ type (x_type), intent(inout) :: jo_grad_x ! grad_x(jo)
+ type (domain), intent(in) :: grid
+ type (infa_type), intent(in) :: info
+ integer, intent(in) :: n, k
+ real, intent(out) :: ADJ_div
+
+ integer :: ii, jj ! index dimension.
+
+ integer :: i, j ! OBS location
+ real :: dx, dxm ! interpolation weights.
+ real :: dy, dym ! interpolation weights.
+ real :: coeff
+ real :: ADJ_div_m(2,2)
+
+ if (trace_use_dull) call da_trace_entry ("da_div_profile_adj")
+
+ i = info%i(1,n)
+ j = info%j(1,n)
+ dx = info%dx(1,n)
+ dy = info%dy(1,n)
+ dxm = info%dxm(1,n)
+ dym = info%dym(1,n)
+
+! avoid the boundary mistake
+ if(i == its) i = its + 1
+ if(i == ite) i = ite - 1
+ if(j == jts) j = jts + 1
+ if(j == jte) j = jte - 1
+
+ ADJ_div_m(1,1) = dym*dxm * ADJ_div
+ ADJ_div_m(2,1) = dym*dx * ADJ_div
+ ADJ_div_m(1,2) = dy*dxm* ADJ_div
+ ADJ_div_m(2,2) = dy*dx* ADJ_div
+ ADJ_div = 0.0
+
+ do ii = i, i+1
+ do jj = j, j+1
+ coeff = grid%xb%map_factor(ii,jj) * grid%xb%map_factor(ii,jj)*0.5/grid%xb%ds
+
+ jo_grad_x%u(ii+1,jj,k) = jo_grad_x%u(ii+1,jj,k) + ADJ_div_m(ii-i+1,jj-j+1)/grid%xb%map_factor(ii+1,jj)*coeff
+
+ jo_grad_x%u(ii-1,jj,k) = jo_grad_x%u(ii-1,jj,k) - ADJ_div_m(ii-i+1,jj-j+1)/grid%xb%map_factor(ii-1,jj)*coeff
+
+ jo_grad_x%v(ii,jj+1,k) = jo_grad_x%v(ii,jj+1,k) + ADJ_div_m(ii-i+1,jj-j+1)/grid%xb%map_factor(ii,jj+1)*coeff
+
+ jo_grad_x%v(ii,jj-1,k) = jo_grad_x%v(ii,jj-1,k) - ADJ_div_m(ii-i+1,jj-j+1)/grid%xb%map_factor(ii,jj-1)*coeff
+ end do
+ end do
+
+ if (trace_use_dull) call da_trace_exit("da_div_profile_adj")
+
+end subroutine da_div_profile_adj
diff --git a/var/da/da_lightning/da_div_profile_tl.inc b/var/da/da_lightning/da_div_profile_tl.inc
new file mode 100644
index 0000000000..a5c6aeb5e1
--- /dev/null
+++ b/var/da/da_lightning/da_div_profile_tl.inc
@@ -0,0 +1,58 @@
+subroutine da_div_profile_tl(grid, info, n, k, div)
+
+ !--------------------------------------------------------------------------
+ ! Purpose: Calculates divergence (div) on each level at the observed location (i,j).
+ ! dx, dxm, dy, dym are horizontal interpolation weighting.
+ ! d U d V
+ ! Div = m^2 *[---(---) + ---(---) ]
+ ! dx m dy M
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !--------------------------------------------------------------------------
+
+ implicit none
+
+ type (domain), intent(in) :: grid
+ type (infa_type), intent(in) :: info
+ integer, intent(in) :: n, k
+ real, intent(inout) :: div
+
+ integer :: ii, jj ! index dimension.
+ real :: div_m(2,2) ! divergence
+
+ integer :: i, j ! OBS location
+ real :: dx, dxm ! interpolation weights.
+ real :: dy, dym ! interpolation weights.
+ real :: coeff
+
+ if (trace_use_dull) call da_trace_entry("da_div_profile_tl")
+
+ i = info%i(1,n)
+ j = info%j(1,n)
+ dx = info%dx(1,n)
+ dy = info%dy(1,n)
+ dxm = info%dxm(1,n)
+ dym = info%dym(1,n)
+
+ ! calculate layered divergence
+ if(i == its) i = its + 1
+ if(i == ite) i = ite - 1
+ if(j == jts) j = jts + 1
+ if(j == jte) j = jte - 1
+
+ do ii = i, i+1
+ do jj = j, j+1
+ coeff = grid%xb%map_factor(ii,jj)*grid%xb%map_factor(ii,jj)*0.5/grid%xb%ds
+
+ div_m(ii-i+1,jj-j+1) = (grid%xa%u(ii+1,jj,k)/grid%xb%map_factor(ii+1,jj) - &
+ grid%xa%u(ii-1,jj,k)/grid%xb%map_factor(ii-1,jj) + &
+ grid%xa%v(ii,jj+1,k)/grid%xb%map_factor(ii,jj+1) - &
+ grid%xa%v(ii,jj-1,k)/grid%xb%map_factor(ii,jj-1))* coeff
+ end do
+ end do
+
+ ! Horizontal interpolation to the obs. pt.
+ div = dym*(dxm*div_m(1,1)+dx*div_m(2,1))+dy*(dxm*div_m(1,2)+dx*div_m(2,2))
+
+ if (trace_use_dull) call da_trace_exit("da_div_profile_tl")
+
+end subroutine da_div_profile_tl
diff --git a/var/da/da_lightning/da_get_innov_vector_lightning.inc b/var/da/da_lightning/da_get_innov_vector_lightning.inc
new file mode 100644
index 0000000000..a67d3ed2af
--- /dev/null
+++ b/var/da/da_lightning/da_get_innov_vector_lightning.inc
@@ -0,0 +1,93 @@
+subroutine da_get_innov_vector_lightning( it, grid, ob, iv)
+ !-----------------------------------------------------------------------
+ ! Purpose: TBD
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ integer, intent(in) :: it ! External iteration.
+ type(domain), intent(in) :: grid ! first guess state.
+ type(y_type), intent(inout) :: ob ! Observation structure.
+ type(iv_type), intent(inout) :: iv ! O-B structure.
+
+ integer :: n ! Loop counter.
+ integer :: i, j, k ! Index dimension.
+ real :: dx, dxm ! Interpolation weights.
+ real :: dy, dym ! Interpolation weights.
+ integer :: num_levs ! obs vertical levels
+ real :: div(kts:kte) ! Model divergence at ob loc
+ real :: w(kts:kte) ! Model vertical velocity
+
+ if (trace_use) call da_trace_entry("da_get_innov_vector_lightning")
+
+ if(it>1) then
+ do n = iv%info(lightning)%n1, iv%info(lightning)%n2
+ do k = 1, iv%info(lightning)%levels(n)
+ if(iv%lightning(n)% w(k)%qc == fails_error_max) iv%lightning(n)% w(k)%qc = 0
+ if(iv%lightning(n)%div(k)%qc == fails_error_max) iv%lightning(n)%div(k)%qc = 0
+ if(iv%lightning(n)% qv(k)%qc == fails_error_max) iv%lightning(n)% qv(k)%qc = 0
+ end do
+ end do
+ end if
+
+ do n = iv%info(lightning)%n1, iv%info(lightning)%n2
+ num_levs = iv%info(lightning)%levels(n)
+
+ if(num_levs<1) cycle
+
+ div(:) = 0.0
+ w(:) = 0.0
+
+ ! [1.0] Get cross pt. horizontal interpolation weights:
+
+ i = iv%info(lightning)%i(1,n)
+ dy = iv%info(lightning)%dy(1,n)
+ dym = iv%info(lightning)%dym(1,n)
+ j = iv%info(lightning)%j(1,n)
+ dx = iv%info(lightning)%dx(1,n)
+ dxm = iv%info(lightning)%dxm(1,n)
+
+ ! [2.0] Calculate vertical profile of divergence and qv at obs pt.
+
+ do k = 1, num_levs
+ iv % lightning(n) % w(k) % inv = 0.0
+ iv % lightning(n) % div(k) % inv = 0.0
+ iv % lightning(n) % qv(k) % inv = 0.0
+
+ if(use_lightning_w) then
+ if(ob%lightning(n)%w(k) > missing_r .and. iv%lightning(n)%w(k)%qc >= obs_qc_pointer) then
+ w(k) = dym*(dxm*grid%xb%w(i,j,k)+dx*grid%xb%w(i+1,j,k))+dy*(dxm*grid%xb%w(i,j+1,k)+dx*grid%xb%w(i+1,j+1,k))
+ iv%lightning(n)%w(k)%qc = obs_qc_pointer
+ iv%lightning(n)%w(k)%inv = ob%lightning(n)%w(k) - w(k)
+ end if
+ end if
+
+ if(use_lightning_div) then
+ if(ob%lightning(n)%div(k) > missing_r .and. iv%lightning(n)%div(k)%qc >= obs_qc_pointer) then
+ iv%lightning(n)%div(k)%qc = obs_qc_pointer
+ call da_div_profile(grid, iv%info(lightning), n, k, div(k))
+ iv%lightning(n)%div(k)%inv = ob%lightning(n)%div(k) - div(k)
+ end if
+ end if
+
+ if(use_lightning_qv) then
+ if(ob%lightning(n)%qv(k) > missing_r .and. iv%lightning(n)%qv(k)%qc >= obs_qc_pointer) then
+ iv%lightning(n)%qv(k)%inv = ob%lightning(n)%qv(k) - grid%xb%q(i,j,k)
+ iv%lightning(n)%qv(k)%inv = amax1(0.0, iv%lightning(n)%qv(k)%inv)
+ end if
+ end if
+
+ end do
+ end do
+
+ ! -----------------------------------------------------------------------
+ ! [3.0] Perform optional maximum error check:
+ !-----------------------------------------------------------------------
+
+ if(check_max_iv ) &
+ call da_check_max_iv_lightning(iv, ob, it)
+
+ if (trace_use) call da_trace_exit("da_get_innov_vector_lightning")
+
+end subroutine da_get_innov_vector_lightning
diff --git a/var/da/da_lightning/da_jo_and_grady_lightning.inc b/var/da/da_lightning/da_jo_and_grady_lightning.inc
new file mode 100644
index 0000000000..5741a5714f
--- /dev/null
+++ b/var/da/da_lightning/da_jo_and_grady_lightning.inc
@@ -0,0 +1,66 @@
+subroutine da_jo_and_grady_lightning(iv, re, jo, jo_grad_y)
+
+ !-----------------------------------------------------------------------
+ ! Purpose: TBD
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ type (iv_type), intent(in) :: iv ! Innovation vector.
+ type (y_type), intent(in) :: re ! Residual vector.
+ type (y_type), intent(inout) :: jo_grad_y ! Grad_y(Jo)
+ type (jo_type), intent(inout) :: jo ! Obs cost function.
+ integer :: n, k
+
+ if (trace_use_dull) call da_trace_entry("da_jo_and_grady_lightning")
+
+ ! defined in da_define_structure.f90
+ jo % lightning_w = 0.0
+ jo % lightning_div = 0.0
+ jo % lightning_qv = 0.0
+
+ do n = 1, iv%info(lightning)%nlocal
+ do k = 2, iv%info(lightning)%levels(n)
+ if(use_lightning_w) then
+ jo_grad_y%lightning(n)%w(k) = -re%lightning(n)%w(k)/(iv%lightning(n)%w(k)%error * iv%lightning(n)%w(k)%error)
+ end if
+
+ if(use_lightning_div) then
+ jo_grad_y%lightning(n)%div(k) = -re%lightning(n)%div(k)/(iv%lightning(n)%div(k)%error * iv%lightning(n)%div(k)%error)
+ end if
+
+ if(use_lightning_qv) then
+ jo_grad_y%lightning(n)%qv(k) = -re%lightning(n)%qv(k)/(iv%lightning(n)%qv(k)%error * iv%lightning(n)%qv(k)%error)
+ end if
+ end do
+
+ if(iv%info(lightning)%proc_domain(1,n)) then
+ do k = 2, iv%info(lightning)%levels(n)
+
+ if(use_lightning_w) then
+ jo%lightning_w = jo%lightning_w-re%lightning(n)%w(k)*jo_grad_y%lightning(n)%w(k)
+ end if
+
+ if(use_lightning_div) then
+ jo%lightning_div = jo%lightning_div-re%lightning(n)%div(k) * jo_grad_y%lightning(n)%div(k)
+ end if
+
+ if(use_lightning_qv) then
+ jo%lightning_qv = jo%lightning_qv-re%lightning(n)%qv(k)*jo_grad_y%lightning(n)%qv(k)
+ end if
+
+ end do
+ end if
+
+ end do
+
+ jo%lightning_w = 0.5 * jo % lightning_w
+ jo%lightning_div = 0.5 * jo % lightning_div
+ jo%lightning_qv = 0.5 * jo % lightning_qv
+
+ if (trace_use_dull) call da_trace_exit("da_jo_and_grady_lightning")
+
+end subroutine da_jo_and_grady_lightning
+
+
diff --git a/var/da/da_lightning/da_lightning.f90 b/var/da/da_lightning/da_lightning.f90
new file mode 100644
index 0000000000..0e33c0eb41
--- /dev/null
+++ b/var/da/da_lightning/da_lightning.f90
@@ -0,0 +1,67 @@
+module da_lightning
+
+ use module_domain, only : domain
+
+ use da_control, only : stdout, obs_qc_pointer,max_ob_levels,missing_r, &
+ v_interp_p, v_interp_h, check_max_iv_print, trace_use, &
+ missing, max_error_uv, max_error_t, rootproc, &
+ max_error_p,max_error_q, check_max_iv_unit,check_max_iv, &
+ max_stheight_diff,missing_data,max_error_bq,max_error_slp, &
+ max_error_bt, max_error_buv, lightning, qcstat_conv_unit, fails_error_max, &
+ use_lightning_w, use_lightning_qv, use_lightning_div, &
+ fg_format,fg_format_wrf_arw_regional,fg_format_wrf_nmm_regional,fg_format_wrf_arw_global,&
+ fg_format_kma_global,max_error_lda_w,max_error_lda_qv, max_error_lda_div, &
+ far_below_model_surface,kms,kme,kts,kte, trace_use_dull,filename_len,&
+ myproc, analysis_date, num_procs , ierr, comm
+
+ use da_control, only : its, ite, jts, jte, ids, ide, jds, jde, ims, ime, jms, jme
+ use da_control, only : cloudbase_calc_opt
+ use da_define_structures, only : maxmin_type, iv_type, y_type, jo_type, &
+ bad_data_type, x_type, number_type, bad_data_type, &
+ infa_type, field_type
+ use da_interpolation, only : da_to_zk, da_interp_lin_3d,da_interp_lin_3d_adj
+ use da_par_util, only :da_proc_stats_combine, da_patch_to_global
+ use da_par_util1, only : da_proc_sum_int
+ use da_statistics, only : da_stats_calculate
+ use da_tools, only : da_max_error_qc, da_residual, map_info, da_llxy_wrf, da_llxy_default, da_convert_zk
+ use da_tracing, only : da_trace_entry, da_trace_exit
+ use da_reporting, only : da_error, da_warning, da_message, message
+ use da_tools_serial, only : da_get_unit, da_free_unit
+
+ ! The "stats_lightning_type" is ONLY used locally in da_lightning:
+
+ type residual_lightning1_type
+ real :: w
+ real :: div
+ real :: qv
+ end type residual_lightning1_type
+
+ type maxmin_lightning_stats_type
+ type (maxmin_type) :: w ! vertical velocity
+ type (maxmin_type) :: div ! divgerence
+ type (maxmin_type) :: qv ! water vapor
+ end type maxmin_lightning_stats_type
+
+ type stats_lightning_type
+ type (maxmin_lightning_stats_type) :: maximum, minimum
+ type (residual_lightning1_type) :: average, rms_err
+ end type stats_lightning_type
+
+contains
+
+#include "da_ao_stats_lightning.inc"
+#include "da_jo_and_grady_lightning.inc"
+#include "da_residual_lightning.inc"
+#include "da_oi_stats_lightning.inc"
+#include "da_print_stats_lightning.inc"
+#include "da_transform_xtoy_lightning.inc"
+#include "da_transform_xtoy_lightning_adj.inc"
+#include "da_check_max_iv_lightning.inc"
+#include "da_get_innov_vector_lightning.inc"
+#include "da_calculate_grady_lightning.inc"
+#include "da_div_profile.inc"
+#include "da_div_profile_tl.inc"
+#include "da_div_profile_adj.inc"
+
+end module da_lightning
+
diff --git a/var/da/da_lightning/da_oi_stats_lightning.inc b/var/da/da_lightning/da_oi_stats_lightning.inc
new file mode 100644
index 0000000000..9ee917b187
--- /dev/null
+++ b/var/da/da_lightning/da_oi_stats_lightning.inc
@@ -0,0 +1,98 @@
+subroutine da_oi_stats_lightning (stats_unit, iv)
+
+ !-----------------------------------------------------------------------
+ ! Purpose: TBD
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ integer, intent (in) :: stats_unit ! Output unit for stats.
+ type (iv_type), intent (in) :: iv ! OI
+
+ type (stats_lightning_type) :: stats
+ integer :: nw, nqv, ndiv
+ integer :: n, k
+
+ if (trace_use_dull) call da_trace_entry("da_oi_stats_lightning")
+
+ nw = 0
+ ndiv = 0
+ nqv = 0
+
+ stats%maximum%w = maxmin_type(missing_r, 0, 0)
+ stats%minimum%w = maxmin_type(-missing_r, 0, 0)
+ stats%maximum%div = maxmin_type(missing_r, 0, 0)
+ stats%minimum%div = maxmin_type(-missing_r, 0, 0)
+ stats%maximum%qv = maxmin_type(missing_r, 0, 0)
+ stats%minimum%qv = maxmin_type(-missing_r, 0, 0)
+
+ stats%average = residual_lightning1_type(0.0, 0.0, 0.0)
+ stats%rms_err = stats%average
+
+ do n = 1, iv%info(lightning)%nlocal
+ if(iv%info(lightning)%proc_domain(1,n)) then
+ do k = 1, iv%info(lightning)%levels(n)
+ if(use_lightning_w) then
+ call da_stats_calculate(iv%info(lightning)%obs_global_index(n), &
+ k, iv%lightning(n)%w(k)%qc, &
+ iv%lightning(n)%w(k)%inv, nw, &
+ stats%minimum%w, stats%maximum%w, &
+ stats%average%w, stats%rms_err%w)
+ end if
+
+ if(use_lightning_div) then
+ call da_stats_calculate(iv%info(lightning)%obs_global_index(n), &
+ k, iv%lightning(n)%div(k)%qc, &
+ iv%lightning(n)%div(k)%inv, ndiv, &
+ stats%minimum%div, stats%maximum%div, &
+ stats%average%div, stats%rms_err%div)
+ end if
+
+ if(use_lightning_qv) then
+ call da_stats_calculate(iv%info(lightning)%obs_global_index(n), &
+ k, iv%lightning(n)%qv(k)%qc, &
+ iv%lightning(n)%qv(k)%inv, nqv, &
+ stats%minimum%qv, stats%maximum%qv, &
+ stats%average%qv, stats%rms_err%qv)
+ end if
+
+ end do
+ end if
+ end do
+
+ ! Do inter-processor communication to gather statistics.
+ if (use_lightning_w) then
+ call da_proc_sum_int (nw)
+ call da_proc_stats_combine(stats%average%w, stats%rms_err%w, &
+ stats%minimum%w%value, stats%maximum%w%value, &
+ stats%minimum%w%n, stats%maximum%w%n, &
+ stats%minimum%w%l, stats%maximum%w%l)
+ end if
+
+ if (use_lightning_div) then
+ call da_proc_sum_int (ndiv)
+ call da_proc_stats_combine(stats%average%div, stats%rms_err%div, &
+ stats%minimum%div%value, stats%maximum%div%value, &
+ stats%minimum%div%n, stats%maximum%div%n, &
+ stats%minimum%div%l, stats%maximum%div%l)
+ end if
+
+ if (use_lightning_qv) then
+ call da_proc_sum_int (nqv)
+ call da_proc_stats_combine(stats%average%qv, stats%rms_err%qv, &
+ stats%minimum%qv%value, stats%maximum%qv%value, &
+ stats%minimum%qv%n, stats%maximum%qv%n, &
+ stats%minimum%qv%l, stats%maximum%qv%l)
+ end if
+
+ if (rootproc) then
+ if ( nw /= 0 .or. ndiv /= 0 .or. nqv /= 0 ) then
+ write(unit=stats_unit, fmt='(/a/)') ' Diagnostics of OI for lightning'
+ call da_print_stats_lightning(stats_unit, nw, ndiv, nqv, stats)
+ end if
+ end if
+
+ if (trace_use_dull) call da_trace_exit("da_oi_stats_lightning")
+
+end subroutine da_oi_stats_lightning
diff --git a/var/da/da_lightning/da_print_stats_lightning.inc b/var/da/da_lightning/da_print_stats_lightning.inc
new file mode 100644
index 0000000000..d6d96fc2c6
--- /dev/null
+++ b/var/da/da_lightning/da_print_stats_lightning.inc
@@ -0,0 +1,41 @@
+subroutine da_print_stats_lightning(stats_unit, nw, ndiv, nqv, lightning)
+
+ !-----------------------------------------------------------------------
+ ! Purpose: TBD
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ integer, intent(in) :: stats_unit
+ integer, intent(inout) :: nw, ndiv, nqv
+ type (stats_lightning_type), intent(in):: lightning
+
+ if (trace_use_dull) call da_trace_entry("da_print_stats_lightning")
+
+ write(unit=stats_unit, fmt='(a/)') &
+ ' var w (m/s) n k div (1/s) n k qv (kg/kg) n k'
+
+ write(unit=stats_unit, fmt='(a,(i16,2i31))') &
+ ' Number: ', nw, ndiv, nqv
+
+ if (nw < 1) nw = 1
+ if (ndiv < 1) ndiv = 1
+ if (nqv < 1) nqv = 1
+
+ write(unit=stats_unit, fmt='((a,f12.4,i9,i5, 2(f17.4,i9,i5)))') &
+ ' Minimum(n,k): ', lightning%minimum%w, lightning%minimum%div, lightning%minimum%qv
+ write(unit=stats_unit, fmt='((a,f12.4,i9,i5, 2(f17.4,i9,i5)))') &
+ ' Maximum(n,k): ', lightning%maximum%w, lightning%maximum%div, lightning%maximum%qv
+ write(unit=stats_unit, fmt='((a,3(f12.4,19x)))') &
+ ' Average : ', lightning%average%w/real(nw), &
+ lightning%average%div/real(ndiv), &
+ lightning%average%qv/real(nqv)
+ write(unit=stats_unit, fmt='((a,3(f12.4,19x)))') &
+ ' RMSE : ', sqrt(lightning%rms_err%w/real(nw)), &
+ sqrt(lightning%rms_err%div/real(ndiv)), &
+ sqrt(lightning%rms_err%qv/real(nqv))
+
+ if (trace_use_dull) call da_trace_exit("da_print_stats_lightning")
+
+end subroutine da_print_stats_lightning
diff --git a/var/da/da_lightning/da_residual_lightning.inc b/var/da/da_lightning/da_residual_lightning.inc
new file mode 100644
index 0000000000..84c1feb7f4
--- /dev/null
+++ b/var/da/da_lightning/da_residual_lightning.inc
@@ -0,0 +1,54 @@
+subroutine da_residual_lightning(iv, y, re,np_missing, np_bad_data,np_obs_used, np_available)
+
+ !-----------------------------------------------------------------------
+ ! Purpose: Calculate residuals for lightning obs
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ type (iv_type), intent(in) :: iv ! Innovation vector (O-B).
+ type (y_type) , intent(in) :: y ! y = H (xa)
+ type (y_type) , intent(inout) :: re ! Residual vector (O-A).
+
+ integer , intent(inout) :: np_available
+ integer , intent(inout) :: np_obs_used
+ integer , intent(inout) :: np_missing
+ integer , intent(inout) :: np_bad_data
+
+ type (bad_data_type) :: n_obs_bad
+ integer :: n, k
+
+ if (trace_use_dull) call da_trace_entry("da_residual_lightning")
+
+ n_obs_bad%w%num = number_type(0, 0, 0)
+ n_obs_bad%q%num = number_type(0, 0, 0)
+ n_obs_bad%div%num = number_type(0, 0, 0)
+
+ do n = 1, iv%info(lightning)%nlocal
+ do k = 1, iv%info(lightning)%levels(n)
+
+ if(use_lightning_w) then
+ np_available = np_available + 1
+ re%lightning(n)%w(k) = da_residual(n, k, y%lightning(n)%w(k), iv%lightning(n)%w(k), n_obs_bad % w)
+ end if
+
+ if(use_lightning_div) then
+ np_available = np_available + 1
+ re%lightning(n)%div(k) = da_residual(n, k, y%lightning(n)%div(k), iv%lightning(n)%div(k), n_obs_bad % div)
+ end if
+
+ if(use_lightning_qv) then
+ np_available = np_available + 1
+ re%lightning(n)%qv(k) = da_residual(n, k, y%lightning(n)%qv(k), iv%lightning(n)%qv(k), n_obs_bad % q)
+ end if
+ end do
+ end do
+
+ np_missing = np_missing + n_obs_bad%w%num%miss + n_obs_bad%div%num%miss + n_obs_bad%q%num%miss
+ np_bad_data = np_bad_data + n_obs_bad%w%num%bad + n_obs_bad%div%num%bad + n_obs_bad%q%num%bad
+ np_obs_used = np_obs_used + n_obs_bad%w%num%use + n_obs_bad%div%num%use + n_obs_bad%q%num%use
+
+ if (trace_use_dull) call da_trace_exit("da_residual_lightning")
+
+end subroutine da_residual_lightning
diff --git a/var/da/da_lightning/da_transform_xtoy_lightning.inc b/var/da/da_lightning/da_transform_xtoy_lightning.inc
new file mode 100644
index 0000000000..902b1e5819
--- /dev/null
+++ b/var/da/da_lightning/da_transform_xtoy_lightning.inc
@@ -0,0 +1,75 @@
+subroutine da_transform_xtoy_lightning (grid, iv, y)
+
+ !-----------------------------------------------------------------------
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ type (domain), intent(in) :: grid
+ type (iv_type), intent(in) :: iv ! Innovation vector (O-B).
+ type (y_type), intent(inout) :: y ! y = h (grid%xa)
+
+ integer :: n ! Loop counter.
+ integer :: i, j, k ! Index dimension.
+ real :: dx, dxm !
+ real :: dy, dym !
+ integer :: num_levs ! obs vertical levels
+
+ real :: div(kts:kte) !Model divergence at ob loc
+ real :: ave_div(kts:kte) !Model averaged divergence at ob loc
+ real :: model_q(kts:kte) !Model Q at ob loc
+ real :: model_t(kts:kte) !Model T at ob loc
+
+ real :: TGL_div(kts:kte)
+ real :: TGL_model_q(kts:kte)
+
+ if (trace_use_dull) call da_trace_entry("da_transform_xtoy_lightning")
+
+ do n = iv%info(lightning)%n1, iv%info(lightning)%n2
+
+ num_levs = iv%info(lightning)%levels(n)
+
+ ! [1.0] Get horizontal interpolation weights:
+
+ i = iv%info(lightning)%i(1,n)
+ dy = iv%info(lightning)%dy(1,n)
+ dym = iv%info(lightning)%dym(1,n)
+ j = iv%info(lightning)%j(1,n)
+ dx = iv%info(lightning)%dx(1,n)
+ dxm = iv%info(lightning)%dxm(1,n)
+
+ TGL_div(:) = 0.0
+ do k= 1, num_levs
+
+ if(use_lightning_w) then
+ if(iv%lightning(n)%w(k)%qc == missing_data) then
+ y%lightning(n)%w(k) = 0.0
+ else
+ y%lightning(n)%w(k) = grid%xa%w(i,j,k)
+ end if
+ end if
+
+ if(use_lightning_div) then
+ if(iv%lightning(n)%div(k)%qc == missing_data) then
+ y%lightning(n)%div(k) = 0.0
+ else
+ call da_div_profile_tl(grid, iv%info(lightning), n, k, TGL_div(k)) ! divergence profile
+ y%lightning(n)%div(k) = TGL_div(k)
+ end if
+ end if
+
+ if(use_lightning_qv) then
+ if(iv%lightning(n)%qv(k)%qc == missing_data) then
+ y%lightning(n)%qv(k) = 0.0
+ else
+ y%lightning(n)%qv(k) = grid%xa%q(i,j,k)
+ y%lightning(n)%qv(k) = y%lightning(n)%qv(k) + (17.67*243.5/(grid%xb%t(i,j,k)+243.5)**2.0)*grid%xb%q(i,j,k)*grid%xa%t(i,j,k)
+ end if
+ end if
+
+ end do
+ end do
+ if (trace_use_dull) call da_trace_exit("da_transform_xtoy_lightning")
+
+end subroutine da_transform_xtoy_lightning
diff --git a/var/da/da_lightning/da_transform_xtoy_lightning_adj.inc b/var/da/da_lightning/da_transform_xtoy_lightning_adj.inc
new file mode 100644
index 0000000000..59e4b466c3
--- /dev/null
+++ b/var/da/da_lightning/da_transform_xtoy_lightning_adj.inc
@@ -0,0 +1,71 @@
+subroutine da_transform_xtoy_lightning_adj(grid, iv, jo_grad_y, jo_grad_x)
+
+ !-----------------------------------------------------------------------
+ ! Purpose: TBD
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ type (domain), intent(in) :: grid
+ type (iv_type), intent(in) :: iv ! obs. inc vector (o-b).
+ type (y_type) , intent(inout) :: jo_grad_y ! grad_y(jo)
+ type (x_type) , intent(inout) :: jo_grad_x ! grad_x(jo)
+
+ integer :: n, k ! Loop counter.
+ integer :: num_levs ! obs vertical levels
+
+ integer :: i, j ! Index dimension.
+ real :: dx, dxm !
+ real :: dy, dym !
+
+ real :: div(kts:kte) !Model divergence at ob loc
+ real :: ave_div(kts:kte) !Model averaged divergence at ob loc
+ real :: model_q(kts:kte) !Model RH at ob loc
+ real :: model_t(kts:kte) !Model T at ob loc
+
+ real :: ADJ_div(kts:kte)
+
+ if (trace_use_dull) call da_trace_entry("da_transform_xtoy_lightning_adj")
+
+ do n = iv%info(lightning)%n1, iv%info(lightning)%n2
+ num_levs = iv%info(lightning)%levels(n)
+
+ ! [1.0] Get horizontal interpolation weights:
+
+ i = iv%info(lightning)%i(1,n)
+ dy = iv%info(lightning)%dy(1,n)
+ dym = iv%info(lightning)%dym(1,n)
+ j = iv%info(lightning)%j(1,n)
+ dx = iv%info(lightning)%dx(1,n)
+ dxm = iv%info(lightning)%dxm(1,n)
+
+ ADJ_div(:) = 0.0
+
+ do k = 1, num_levs
+ if(use_lightning_w) then
+ if(iv % lightning(n)%w(k)%qc /= missing_data) then
+ jo_grad_x%w(i,j,k) = jo_grad_x%w(i,j,k) + jo_grad_y%lightning(n)%w(k)
+ end if
+ end if
+
+ if(use_lightning_div) then
+ if(iv % lightning(n)%div(k)%qc /= missing_data) then
+ call da_div_profile_adj(grid, jo_grad_x, iv%info(lightning), n, k, jo_grad_y%lightning(n)%div(k))
+ end if
+ end if
+
+ if(use_lightning_qv) then
+ if(iv % lightning(n)%qv(k)%qc /= missing_data) then
+ jo_grad_x%q(i,j,k) = jo_grad_x%q(i,j,k) + jo_grad_y%lightning(n)%qv(k)
+ jo_grad_x%t(i,j,k) = jo_grad_x%t(i,j,k) + (17.67*243.5/(grid%xb%t(i,j,k)+243.5)**2.0)*grid%xb%q(i,j,k)*jo_grad_y%lightning(n)%qv(k)
+ end if
+ end if
+
+ end do
+
+ end do
+
+ if (trace_use_dull) call da_trace_exit("da_transform_xtoy_lightning_adj")
+
+end subroutine da_transform_xtoy_lightning_adj
diff --git a/var/da/da_main/da_wrfvar_top.f90 b/var/da/da_main/da_wrfvar_top.f90
index 6205ab539d..240ceb5be0 100644
--- a/var/da/da_main/da_wrfvar_top.f90
+++ b/var/da/da_main/da_wrfvar_top.f90
@@ -121,6 +121,7 @@ module da_wrfvar_top
use da_qscat, only : da_oi_stats_qscat
use da_mtgirs, only : da_oi_stats_mtgirs
use da_radar, only : da_oi_stats_radar, da_write_oa_radar_ascii
+ use da_lightning, only : da_oi_stats_lightning
use da_satem, only : da_oi_stats_satem
use da_ships, only : da_oi_stats_ships
use da_sound, only : da_oi_stats_sound, da_oi_stats_sonde_sfc
diff --git a/var/da/da_minimisation/da_calculate_grady.inc b/var/da/da_minimisation/da_calculate_grady.inc
index f798d51e36..66e205a3e3 100644
--- a/var/da/da_minimisation/da_calculate_grady.inc
+++ b/var/da/da_minimisation/da_calculate_grady.inc
@@ -39,6 +39,7 @@ subroutine da_calculate_grady(iv, re, jo_grad_y)
if (iv%info(bogus)%nlocal > 0) call da_calculate_grady_bogus (iv, re, jo_grad_y)
if (iv%info(qscat)%nlocal > 0) call da_calculate_grady_qscat (iv, re, jo_grad_y)
if (iv%info(radar)%nlocal > 0) call da_calculate_grady_radar (iv, re, jo_grad_y)
+ if (iv%info(lightning)%nlocal > 0) call da_calculate_grady_lightning(iv, re, jo_grad_y)
if (iv%info(mtgirs)%nlocal > 0) call da_calculate_grady_mtgirs (iv, re, jo_grad_y)
if (iv%info(tamdar)%nlocal > 0) call da_calculate_grady_tamdar (iv, re, jo_grad_y)
if (iv%info(tamdar_sfc)%nlocal> 0) call da_calculate_grady_tamdar_sfc(iv, re, jo_grad_y)
diff --git a/var/da/da_minimisation/da_calculate_residual.inc b/var/da/da_minimisation/da_calculate_residual.inc
index 7351eb87d1..121bcce6ac 100644
--- a/var/da/da_minimisation/da_calculate_residual.inc
+++ b/var/da/da_minimisation/da_calculate_residual.inc
@@ -95,6 +95,9 @@ subroutine da_calculate_residual(iv, y, re)
if (iv%info(radar)%nlocal > 0) &
call da_residual_radar(iv, y, re, np_missing, np_bad_data, np_obs_used, np_available)
+ if (iv%info(lightning)%nlocal > 0) &
+ call da_residual_lightning(iv, y, re, np_missing, np_bad_data, np_obs_used, np_available)
+
if (iv%info(profiler)%nlocal > 0) &
call da_residual_profiler(iv, y, re, np_missing, np_bad_data, np_obs_used, np_available)
diff --git a/var/da/da_minimisation/da_get_innov_vector.inc b/var/da/da_minimisation/da_get_innov_vector.inc
index 6ecc4c1aac..142b78b1ad 100644
--- a/var/da/da_minimisation/da_get_innov_vector.inc
+++ b/var/da/da_minimisation/da_get_innov_vector.inc
@@ -150,6 +150,8 @@ subroutine da_get_innov_vector (it, num_qcstat_conv, ob, iv, grid, config_flags)
call da_get_innov_vector_satem (it, num_qcstat_conv,grid, ob, iv)
if (iv%info(radar)%nlocal >= 0 .and. use_radarobs) &
call da_get_innov_vector_radar (it, grid, ob, iv)
+ if (iv%info(lightning)%nlocal > 0) &
+ call da_get_innov_vector_lightning (it, grid, ob, iv)
if (iv%info(qscat)%nlocal > 0) &
call da_get_innov_vector_qscat (it, num_qcstat_conv,grid, ob, iv)
if (iv%info(profiler)%nlocal > 0) &
diff --git a/var/da/da_minimisation/da_get_var_diagnostics.inc b/var/da/da_minimisation/da_get_var_diagnostics.inc
index dc135c8c16..c25236728d 100644
--- a/var/da/da_minimisation/da_get_var_diagnostics.inc
+++ b/var/da/da_minimisation/da_get_var_diagnostics.inc
@@ -103,7 +103,10 @@ subroutine da_get_var_diagnostics(it, iv, j)
temp(77) = j % jo % rain_r
!temp(78) is j % jo % airep_q listed up with other airep variables
temp(79) = j % jo % gpseph_eph
-
+ temp(80) = j % jo % lightning_w
+ temp(81) = j % jo % lightning_div
+ temp(82) = j % jo % lightning_qv
+
call da_proc_sum_real(temp(:))
j % jo % synop_u = temp(1)
@@ -188,6 +191,10 @@ subroutine da_get_var_diagnostics(it, iv, j)
j % jo % rain_r = temp(77)
j % jo % gpseph_eph = temp(79)
+ j % jo % lightning_w = temp(80)
+ j % jo % lightning_div = temp(81)
+ j % jo % lightning_qv = temp(82)
+
if (use_rad) then
jo_radiance = 0.0
do i = 1, iv%num_inst ! loop for sensor
@@ -470,6 +477,14 @@ subroutine da_get_var_diagnostics(it, iv, j)
j % jo % airsr_q, iv % airsr_ef_q, &
0.0, 1.0, 0.0, 1.0, 0.0, 1.0
end if
+ if (iv%info(lightning)%ntotal > 0) then
+ write(unit=jo_unit,fmt='(a30,2i8,10f15.5)')'lightning obs, Jo(actual) = ', &
+ iv%info(lightning)%ntotal, iv%nstats(lightning), &
+ j % jo % lightning_w, iv % lightning_ef_w, &
+ j % jo % lightning_div, iv % lightning_ef_div, &
+ j % jo % lightning_qv, iv % lightning_ef_qv, &
+ 0.0, 1.0, 0.0, 1.0
+ end if
do i = 1, iv%num_inst ! loop for sensor
do k = 1, iv%instid(i)%nchan
if (j % jo % rad(i) % num_ichan(k) > 0) then
diff --git a/var/da/da_minimisation/da_jo_and_grady.inc b/var/da/da_minimisation/da_jo_and_grady.inc
index 4b5a213813..a9fe935d23 100644
--- a/var/da/da_minimisation/da_jo_and_grady.inc
+++ b/var/da/da_minimisation/da_jo_and_grady.inc
@@ -17,7 +17,7 @@ subroutine da_jo_and_grady(iv, re, jot, jo, jo_grad_y)
jo_airep, jo_pilot, jo_satem, &
jo_metar, jo_ships, jo_gpspw, &
jo_ssmi_tb, jo_ssmi_rv, jo_ssmt1, jo_ssmt2, &
- jo_pseudo, jo_qscat, jo_buoy, &
+ jo_pseudo, jo_qscat, jo_buoy, jo_lightning, &
jo_profiler, jo_radar, jo_gpsref, jo_gpseph, jo_bogus, jo_rain, &
jo_radiance, jo_airsr, jo_mtgirs, jo_tamdar, jo_tamdar_sfc
#if (WRF_CHEM == 1)
@@ -416,6 +416,23 @@ subroutine da_jo_and_grady(iv, re, jot, jo, jo_grad_y)
jo_radar = 0.0
end if
+ if (iv%info(lightning)%nlocal > 0) then
+ call da_jo_and_grady_lightning(iv, re, jo, jo_grad_y)
+ jo_lightning = jo%lightning_w + jo%lightning_div + jo%lightning_qv
+ if (print_detail_grad) then
+ write(unit=stdout, fmt='(a, e24.12)') &
+ ' jo_lightning ', jo_lightning, &
+ ' jo%lightning_w ', jo%lightning_w, &
+ ' jo%lightning_div', jo%lightning_w, &
+ ' jo%lightning_qv ', jo%lightning_qv
+ end if
+ else
+ jo % lightning_w = 0.0
+ jo % lightning_div = 0.0
+ jo % lightning_qv = 0.0
+ jo_lightning = 0.0
+ end if
+
if (iv%info(rain)%nlocal > 0) then
call da_jo_and_grady_rain(iv, re, jo, jo_grad_y)
jo_rain = jo%rain_r
@@ -593,7 +610,7 @@ subroutine da_jo_and_grady(iv, re, jot, jo, jo_grad_y)
#if (WRF_CHEM == 1)
jo_chemic_surf + &
#endif
- jo_tamdar + jo_tamdar_sfc + jo_rain
+ jo_tamdar + jo_tamdar_sfc + jo_rain + jo_lightning
jot = jo%total
@@ -633,7 +650,8 @@ subroutine da_jo_and_grady(iv, re, jot, jo, jo_grad_y)
#if (WRF_CHEM == 1)
' jo_chemic_surf ', jo_chemic_surf, &
#endif
- ' jo_rain ', jo_rain
+ ' jo_rain ', jo_rain, &
+ ' jo_lightning ', jo_lightning
end if
diff --git a/var/da/da_minimisation/da_minimisation.f90 b/var/da/da_minimisation/da_minimisation.f90
index 56355d1992..519066af0b 100644
--- a/var/da/da_minimisation/da_minimisation.f90
+++ b/var/da/da_minimisation/da_minimisation.f90
@@ -54,10 +54,10 @@ module da_minimisation
chemic_surf, chemicda_opt, &
#endif
sound, mtgirs, sonde_sfc, synop, profiler, gpsref, gpseph, gpspw, polaramv, geoamv, ships, metar, &
- satem, radar, ssmi_rv, ssmi_tb, ssmt1, ssmt2, airsr, pilot, airep,tamdar, tamdar_sfc, rain, &
+ satem, radar, ssmi_rv, ssmi_tb, ssmt1, ssmt2, airsr, pilot, airep,tamdar, tamdar_sfc, rain, lightning, &
bogus, buoy, qscat,pseudo, radiance, monitor_on, max_ext_its, use_rttov_kmatrix,&
use_crtm_kmatrix,precondition_cg, precondition_factor, use_varbc, varbc_factor, &
- biasprep, qc_rad, num_procs, myproc, use_gpspwobs, use_rainobs, use_gpsztdobs, &
+ biasprep, qc_rad, num_procs, myproc, use_gpspwobs, use_rainobs, use_gpsztdobs, use_lightningobs, &
use_radar_rf, radar_rf_opt,radar_rf_rscl,radar_rv_rscl,use_radar_rhv,use_radar_rqv,pseudo_var, num_pseudo, &
num_ob_indexes, num_ob_vars, npres_print, pptop, ppbot, qcstat_conv_unit, gas_constant, &
orthonorm_gradient, its, ite, jts, jte, kts, kte, ids, ide, jds, jde, kds, kde, cp, &
@@ -140,6 +140,10 @@ module da_minimisation
use da_radar, only : da_calculate_grady_radar, da_ao_stats_radar, &
da_oi_stats_radar, da_get_innov_vector_radar, da_residual_radar, &
da_jo_and_grady_radar
+
+ use da_lightning, only : da_calculate_grady_lightning, da_ao_stats_lightning, &
+ da_oi_stats_lightning, da_get_innov_vector_lightning, da_residual_lightning, &
+ da_jo_and_grady_lightning
use da_rain, only : da_calculate_grady_rain, da_ao_stats_rain, &
da_oi_stats_rain, da_get_innov_vector_rain, da_residual_rain, &
diff --git a/var/da/da_minimisation/da_write_diagnostics.inc b/var/da/da_minimisation/da_write_diagnostics.inc
index 55f33a0426..18a1998f11 100644
--- a/var/da/da_minimisation/da_write_diagnostics.inc
+++ b/var/da/da_minimisation/da_write_diagnostics.inc
@@ -58,6 +58,7 @@ use da_control, only : stats_unit2
if (iv%info(profiler)%ntotal > 0) call da_oi_stats_profiler (stats_unit, iv, ob)
if (iv%info(buoy)%ntotal > 0) call da_oi_stats_buoy (stats_unit, iv, ob)
if (iv%info(radar)%ntotal > 0) call da_oi_stats_radar (stats_unit, iv)
+ if (iv%info(lightning)%ntotal> 0) call da_oi_stats_lightning(stats_unit, iv)
if (iv%info(bogus)%ntotal > 0) call da_oi_stats_bogus (stats_unit, iv)
if (iv%info(airsr)%ntotal > 0) call da_oi_stats_airsr (stats_unit, iv)
if (iv%info(rain)%ntotal > 0) call da_oi_stats_rain (stats_unit, iv)
@@ -101,6 +102,7 @@ if (.not. anal_type_verify) then
if (iv%info(profiler)%ntotal > 0) call da_ao_stats_profiler (stats_unit, iv, re, ob)
if (iv%info(buoy)%ntotal > 0) call da_ao_stats_buoy (stats_unit, iv, re, ob)
if (iv%info(radar)%ntotal > 0) call da_ao_stats_radar (stats_unit, iv, re)
+ if (iv%info(lightning)%ntotal> 0) call da_ao_stats_lightning(stats_unit, iv, re)
if (iv%info(bogus)%ntotal > 0) call da_ao_stats_bogus (stats_unit, iv, re)
if (iv%info(airsr)%ntotal > 0) call da_ao_stats_airsr (stats_unit, iv, re)
if (iv%info(rain)%ntotal > 0) call da_ao_stats_rain (stats_unit, iv, re)
diff --git a/var/da/da_obs/da_fill_obs_structures.inc b/var/da/da_obs/da_fill_obs_structures.inc
index 48a877b889..860114da80 100644
--- a/var/da/da_obs/da_fill_obs_structures.inc
+++ b/var/da/da_obs/da_fill_obs_structures.inc
@@ -93,6 +93,10 @@ subroutine da_fill_obs_structures(iv, ob, uvq_direct)
iv % radar_ef_rv = 1.0
iv % radar_ef_rf = 1.0
+ iv % lightning_ef_w = 1.0
+ iv % lightning_ef_div = 1.0
+ iv % lightning_ef_qv = 1.0
+
iv % rain_ef_r = 1.0
iv % bogus_ef_u = 1.0
@@ -525,6 +529,19 @@ subroutine da_fill_obs_structures(iv, ob, uvq_direct)
end do
end if
+ ! [2.21] Transfer lightning obs
+
+ if (iv%info(lightning)%nlocal > 0) then
+ do n = 1, iv%info(lightning)%nlocal
+ do k = 1, iv%info(lightning)%levels(n)
+ ! Copy observation variables:
+ ob % lightning(n) % w(k) = iv % lightning(n) % w(k) % inv
+ ob % lightning(n) % div(k) = iv % lightning(n) % div(k) % inv
+ ob % lightning(n) % qv(k) = iv % lightning(n) % qv(k) % inv
+ end do
+ end do
+ end if
+
! Transfer AIRS retrievals:
if (iv%info(airsr)%nlocal > 0) then
diff --git a/var/da/da_obs/da_fill_obs_structures_lightning.inc b/var/da/da_obs/da_fill_obs_structures_lightning.inc
new file mode 100644
index 0000000000..de96586cfe
--- /dev/null
+++ b/var/da/da_obs/da_fill_obs_structures_lightning.inc
@@ -0,0 +1,48 @@
+subroutine da_fill_obs_structures_lightning(iv, ob)
+
+ !----------------------------------------------------------------------------
+ ! Purpose: Allocates observation structure and fills it from iv.
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !----------------------------------------------------------------------------
+
+ implicit none
+
+ type (iv_type), intent(inout) :: iv ! Obs and header structure.
+ type (y_type), intent(out) :: ob ! (Smaller) observation structure.
+
+ integer :: n, k ! Loop counters.
+ integer :: i,j
+
+ if (trace_use) call da_trace_entry("da_fill_obs_structures_lightning")
+
+ !---------------------------------------------------------------------------
+ ! Initialise obs error factors (which will be overwritten in use_obs_errfac)
+ !---------------------------------------------------------------------------
+
+ iv % lightning_ef_w = 1.0
+ iv % lightning_ef_div = 1.0
+ iv % lightning_ef_qv = 1.0
+ !----------------------------------------------------------------------
+ ! [1.0] Allocate innovation vector and observation structures:
+ !----------------------------------------------------------------------
+ call da_allocate_y_lightning(iv, ob)
+
+ !----------------------------------------------------------------------
+ ! [2.0] Transfer observations:
+ !----------------------------------------------------------------------
+
+ ! [2.20] Transfer lightning obs:
+
+ if (iv%info(lightning)%nlocal > 0) then
+ do n = 1, iv%info(lightning)%nlocal
+ do k = 1, iv%info(lightning)%levels(n)
+ ob%lightning(n)%w(k) = iv%lightning(n)%w(k)%inv
+ ob%lightning(n)%div(k) = iv%lightning(n)%div(k)%inv
+ ob%lightning(n)%qv(k) = iv%lightning(n)%qv(k)%inv
+ end do
+ end do
+ end if
+
+ if (trace_use) call da_trace_exit("da_fill_obs_structures_lightning")
+
+end subroutine da_fill_obs_structures_lightning
diff --git a/var/da/da_obs/da_obs.f90 b/var/da/da_obs/da_obs.f90
index 998f6fa5c5..4f5f20422e 100644
--- a/var/da/da_obs/da_obs.f90
+++ b/var/da/da_obs/da_obs.f90
@@ -5,7 +5,7 @@ module da_obs
da_allocate_y_chem_sfc, da_deallocate_y_chem_sfc, &
#endif
field_type, each_level_type,da_allocate_y, da_random_seed,da_allocate_y_rain, &
- da_allocate_y_radar
+ da_allocate_y_radar, da_allocate_y_lightning
#if (WRF_CHEM == 1)
use module_domain, only : domain, x_type, xchem_type
use da_chem_sfc, only : da_transform_xtoy_chem_sfc, da_transform_xtoy_chem_sfc_adj
@@ -28,7 +28,7 @@ module da_obs
rtm_option_crtm,use_rad, base_temp, base_lapse, base_pres, &
ob_format,ob_format_ascii,filename_len, trace_use_dull, &
sound, mtgirs, synop, profiler, gpsref, gpseph, gpspw, polaramv, geoamv, ships, metar, &
- satem, radar, ssmi_rv, ssmi_tb, ssmt1, ssmt2, airsr, pilot, airep, sonde_sfc,rain, &
+ satem, radar, ssmi_rv, ssmi_tb, ssmt1, ssmt2, airsr, pilot, airep, sonde_sfc, rain, lightning, &
bogus, buoy, qscat, tamdar, tamdar_sfc, pseudo, num_ob_indexes, its,ite,jds,jts,jte,ids, &
#if (WRF_CHEM == 1)
chemic_surf, &
@@ -62,6 +62,7 @@ module da_obs
use da_qscat, only : da_transform_xtoy_qscat,da_transform_xtoy_qscat_adj
use da_radar, only : da_transform_xtoy_radar,da_transform_xtoy_radar_adj
use da_rain, only : da_transform_xtoy_rain,da_transform_xtoy_rain_adj
+ use da_lightning, only : da_transform_xtoy_lightning,da_transform_xtoy_lightning_adj
use da_reporting, only : da_error, message, da_warning, da_message
#ifdef RTTOV
use da_rttov, only : da_transform_xtoy_rttov,da_transform_xtoy_rttov_adj
@@ -69,9 +70,9 @@ module da_obs
use da_satem, only : da_transform_xtoy_satem, da_transform_xtoy_satem_adj
use da_ships, only : da_transform_xtoy_ships, da_transform_xtoy_ships_adj
use da_sound, only : da_transform_xtoy_sound, da_transform_xtoy_sonde_sfc, &
- da_transform_xtoy_sound_adj, da_transform_xtoy_sonde_sfc_adj
+ da_transform_xtoy_sound_adj, da_transform_xtoy_sonde_sfc_adj
use da_mtgirs, only : da_transform_xtoy_mtgirs, da_transform_xtoy_mtgirs_adj
- use da_tamdar, only : da_transform_xtoy_tamdar, da_transform_xtoy_tamdar_adj, &
+ use da_tamdar, only : da_transform_xtoy_tamdar, da_transform_xtoy_tamdar_adj, &
da_transform_xtoy_tamdar_sfc, da_transform_xtoy_tamdar_sfc_adj
use da_ssmi, only : da_transform_xtoy_ssmt1, da_transform_xtoy_ssmt2, &
da_transform_xtoy_ssmi_tb, da_transform_xtoy_ssmi_rv, &
@@ -96,6 +97,7 @@ module da_obs
#include "da_fill_obs_structures.inc"
#include "da_fill_obs_structures_radar.inc"
#include "da_fill_obs_structures_rain.inc"
+#include "da_fill_obs_structures_lightning.inc"
#if (WRF_CHEM == 1)
#include "da_fill_obs_structures_chem_sfc.inc"
#endif
diff --git a/var/da/da_obs/da_obs_sensitivity.inc b/var/da/da_obs/da_obs_sensitivity.inc
index 8bf9bbb65b..19d56dd9b7 100644
--- a/var/da/da_obs/da_obs_sensitivity.inc
+++ b/var/da/da_obs/da_obs_sensitivity.inc
@@ -506,7 +506,7 @@ subroutine da_obs_sensitivity(ktr, iv)
write(unit=message(imsg),fmt='(A)') 'Impact of Conventional Observations for each observation type: '
do i = 1, num_ob_indexes
if ( (i == ssmi_tb) .or. (i == ssmt1) .or. (i == ssmt2) .or. &
- (i == radar ) .or. (i == radiance) .or. (i == airsr) .or. &
+ (i == radar ) .or. (i == radiance) .or. (i == airsr) .or. (i == lightning) .or. &
(i == sonde_sfc) .or. (i == tamdar_sfc) .or. (i == rain) ) cycle
imsg = imsg + 1
write(unit=message(imsg),fmt='(3x,a,e15.5)') obs_names(i), SUM(ktd_global(i,:))
diff --git a/var/da/da_obs/da_transform_xtoy.inc b/var/da/da_obs/da_transform_xtoy.inc
index 83817517a8..2b99bde777 100644
--- a/var/da/da_obs/da_transform_xtoy.inc
+++ b/var/da/da_obs/da_transform_xtoy.inc
@@ -51,6 +51,7 @@ subroutine da_transform_xtoy(cv_size, cv, grid, iv, y)
if (iv%info(bogus)%nlocal > 0) call da_transform_xtoy_bogus (grid, iv, y)
if (iv%info(airsr)%nlocal > 0) call da_transform_xtoy_airsr (grid, iv, y)
if (iv%info(pseudo)%nlocal > 0) call da_transform_xtoy_pseudo (grid, iv, y)
+ if (iv%info(lightning)%nlocal > 0) call da_transform_xtoy_lightning(grid, iv, y)
#if (WRF_CHEM == 1)
if (iv%info(chemic_surf)%nlocal > 0) &
diff --git a/var/da/da_obs/da_transform_xtoy_adj.inc b/var/da/da_obs/da_transform_xtoy_adj.inc
index dbbe9ddd15..2c8cf6cf7d 100644
--- a/var/da/da_obs/da_transform_xtoy_adj.inc
+++ b/var/da/da_obs/da_transform_xtoy_adj.inc
@@ -111,6 +111,7 @@ subroutine da_transform_xtoy_adj(cv_size, cv, grid, iv, jo_grad_y, jo_grad_x &
if (iv%info(bogus)%nlocal > 0) call da_transform_xtoy_bogus_adj (grid, iv, jo_grad_y, jo_grad_x)
if (iv%info(airsr)%nlocal > 0) call da_transform_xtoy_airsr_adj (iv, jo_grad_y, jo_grad_x)
if (iv%info(pseudo)%nlocal > 0) call da_transform_xtoy_pseudo_adj (iv, jo_grad_y, jo_grad_x)
+ if (iv%info(lightning)%nlocal> 0) call da_transform_xtoy_lightning_adj(grid, iv, jo_grad_y, jo_grad_x)
#if defined(CRTM) || defined(RTTOV)
if (use_rad) then
diff --git a/var/da/da_obs_io/da_final_write_obs.inc b/var/da/da_obs_io/da_final_write_obs.inc
index 02b603876f..9c7f1453fa 100644
--- a/var/da/da_obs_io/da_final_write_obs.inc
+++ b/var/da/da_obs_io/da_final_write_obs.inc
@@ -536,6 +536,26 @@ subroutine da_final_write_obs(it,iv)
end do
end if
+ !------------------------------------------------------------------
+ ! [22] writing lightning
+ !------------------------------------------------------------------
+
+ num_obs = 0
+ if (iv%info(lightning)%nlocal > 0) then
+ do n = 1, iv%info(lightning)%nlocal
+ if(iv%info(lightning)%proc_domain(1,n)) num_obs = num_obs + 1
+ end do
+ end if
+ call da_proc_sum_int(num_obs)
+ if_wind_sd = .false.
+ if (num_obs > 0 .and. rootproc) then
+ write(omb_unit,'(a20,i8)')'lightning', num_obs
+ num_obs = 0
+ do k = 0,num_procs-1
+ call da_read_omb_tmp(filename(k),iunit,num_obs,'lightning',5,if_wind_sd)
+ end do
+ end if
+
if (rootproc) then
close(iunit)
@@ -548,5 +568,3 @@ subroutine da_final_write_obs(it,iv)
if (trace_use) call da_trace_exit("da_final_write_obs")
end subroutine da_final_write_obs
-
-
diff --git a/var/da/da_obs_io/da_obs_io.f90 b/var/da/da_obs_io/da_obs_io.f90
index 7e25443288..7c9760ed1a 100644
--- a/var/da/da_obs_io/da_obs_io.f90
+++ b/var/da/da_obs_io/da_obs_io.f90
@@ -4,7 +4,7 @@ module da_obs_io
use da_control, only : xmiss, missing_r, fmt_each, fmt_info, trace_use, &
fmt_srfc, filtered_obs_unit, num_procs,missing, ierr,comm, rand_unit, &
- obs_qc_pointer, rootproc, omb_unit,omb_add_noise,use_airepobs, &
+ obs_qc_pointer, rootproc, omb_unit,omb_add_noise,use_airepobs, use_lightningobs, &
use_airepobs,use_bogusobs,use_gpspwobs,use_gpsztdobs,use_gpsrefobs,use_geoamvobs, &
use_metarobs,use_profilerobs,use_pilotobs,use_buoyobs,use_shipsobs,use_rainobs, &
use_synopobs,use_soundobs,use_mtgirsobs,use_tamdarobs,use_qscatobs,use_radarobs, &
@@ -23,7 +23,7 @@ module da_obs_io
obs_names, num_ob_indexes, fm_index, ids,ide, ite, jte, &
sound, mtgirs,synop, pilot, satem, geoamv, polaramv, airep, gpspw, gpsref, &
tamdar, tamdar_sfc, metar, ships, ssmi_rv, ssmi_tb, ssmt1, ssmt2, qscat, profiler, buoy, bogus, pseudo, &
- radar, radiance, airsr, sonde_sfc, trace_use_dull, num_fgat_time, time_slots, myproc, &
+ radar, radiance, airsr, sonde_sfc, trace_use_dull, num_fgat_time, time_slots, myproc, lightning, &
qmarker_retain, anal_type_verify, top_km_gpsro, bot_km_gpsro, thin_rainobs, &
sfc_assi_options, sfc_assi_options_1, sfc_assi_options_2,print_detail_rain,max_rain_input,rain, &
pi, ob_format_gpsro, ob_format_ascii, analysis_date, kms,kme, v_interp_h,v_interp_p, &
@@ -33,6 +33,7 @@ module da_obs_io
lsac_use_u, lsac_use_v, lsac_use_t, lsac_use_q, lsac_u_error, lsac_v_error, lsac_t_error, lsac_q_error, &
gpsro_drift, max_gpseph_input, use_gpsephobs, gpseph, gpseph_loadbalance, kds, kde, kts, kte, &
use_radar_rhv, use_radar_rqv, use_radar_rf, use_radar_rv, multi_inc, &
+ use_lightning_w, use_lightning_div, use_lightning_qv, lightning_min_rh, min_flashrate, &
thin_conv_opt, no_thin, thin_single, thin_multi, thin_superob, thin_superob_hv, &
thin_mesh_vert_conv, use_satwnd_bufr, uv_error_opt, uv_error_val, error_opt_nml
@@ -54,7 +55,7 @@ module da_obs_io
use da_define_structures, only : iv_type, multi_level_type, multi_level_type_BUFR, &
radar_multi_level_type, y_type, field_type, each_level_type, &
radar_each_level_type, info_type, model_loc_type,gpsref_type, rain_single_level_type, rain_each_type, &
- gpseph_type
+ gpseph_type, lightning_each_level_type, lightning_multi_level_type
use da_grid_definitions, only : da_ffdduv,da_ffdduv_model,da_ffdduv_diagnose
use da_obs, only : da_count_filtered_obs,da_check_missing,da_obs_proc_station, da_set_obs_missing, da_set_3d_obs_missing
use da_par_util1, only : da_proc_sum_int
@@ -97,6 +98,8 @@ module da_obs_io
#include "da_scan_obs_ascii.inc"
#include "da_read_obs_radar.inc"
#include "da_scan_obs_radar.inc"
+#include "da_read_obs_lightning.inc"
+#include "da_scan_obs_lightning.inc"
#include "da_scan_obs_rain.inc"
#include "da_read_obs_rain.inc"
#if (WRF_CHEM == 1)
diff --git a/var/da/da_obs_io/da_read_iv_for_multi_inc.inc b/var/da/da_obs_io/da_read_iv_for_multi_inc.inc
index f2ad1bd4b4..ca40e42f36 100644
--- a/var/da/da_obs_io/da_read_iv_for_multi_inc.inc
+++ b/var/da/da_obs_io/da_read_iv_for_multi_inc.inc
@@ -824,6 +824,35 @@ subroutine da_read_iv_for_multi_inc(file_index, iv)
close (unit_in)
end if ! nobs_tot > 0
+ ! [26] lightning obs:
+
+ if (iv%info(lightning)%plocal(iv%time)-iv%info(lightning)%plocal(iv%time-1) > 0) then
+
+ open(unit=unit_in,file=trim(filename)//'.lightning',form='formatted',status='old',iostat=ios)
+ if (ios /= 0) Then
+ call da_error(__FILE__,__LINE__, &
+ (/"Cannot open file"//filename/))
+ end if
+
+ read(unit_in,'(a20,i8)', end = 999, err = 1000) ob_type_string, num_obs
+ if ( trim(adjustl(ob_type_string)) .ne. 'lightning' ) &
+ call da_error(__FILE__,__LINE__, &
+ (/"Cannot find lightning marker. "/))
+ gn = 0
+ do n = iv%info(lightning)%plocal(iv%time-1) + 1, &
+ iv%info(lightning)%plocal(iv%time)
+ call da_search_obs (ob_type_string, unit_in, num_obs, n, iv, found_flag)
+ if (found_flag .eqv. .false.) &
+ call da_error(__FILE__,__LINE__, &
+ (/"Cannot find lightning obs. "/))
+ gn = gn + 1
+ end do
+ if (gn /= iv%info(lightning)%plocal(iv%time)-iv%info(lightning)%plocal(iv%time-1)) &
+ call da_error(__FILE__,__LINE__, &
+ (/"Unequal obs. found "/))
+ close (unit_in)
+ end if
+
999 continue
close (unit_in)
call da_free_unit(unit_in)
diff --git a/var/da/da_obs_io/da_read_obs_lightning.inc b/var/da/da_obs_io/da_read_obs_lightning.inc
new file mode 100644
index 0000000000..4fd0f53b32
--- /dev/null
+++ b/var/da/da_obs_io/da_read_obs_lightning.inc
@@ -0,0 +1,220 @@
+subroutine da_read_obs_lightning (iv, filename, grid)
+
+ !-----------------------------------------------------------------------
+ ! Purpose: Read the lightning observation file
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !----------------------------------------------------------------------------------------!
+
+ implicit none
+
+ type (iv_type), intent(inout) :: iv
+ character(len=*), intent(in) :: filename
+ type(domain), intent(in) :: grid ! first guess state.
+
+ integer :: i, n, iost
+ integer :: iunit
+
+ integer :: i1, j1, k ! Index dimension.
+ real :: dx, dxm ! Interpolation weights
+ real :: dy, dym ! Interpolation weights
+ real :: zlcl
+
+ type (lightning_multi_level_type) :: platform
+
+ character (len = 120) :: char_total_lightning, char_total_levels
+ character (len = 160) :: info_string
+ integer :: total_lightning, nlevels, lightning_qc, rh_indicator
+ real :: flashrate, wmax, lightning_error
+ real, allocatable,dimension(:):: height, coff
+ logical :: outside, outside_all
+ integer :: nlocal
+
+ if (trace_use) call da_trace_entry("da_read_obs_lightning")
+
+ nlocal = 0
+
+ ! 1. open file
+ call da_get_unit(iunit)
+ open(unit = iunit, &
+ FILE = trim(filename), &
+ FORM = 'FORMATTED', &
+ ACCESS = 'SEQUENTIAL', &
+ iostat = iost, &
+ STATUS = 'OLD')
+
+ if (iost /= 0) then
+ write(unit=message(1),fmt='(A,I5,A)') &
+ "Error",iost," opening lightning obs file "//trim(filename)
+ call da_warning(__FILE__,__LINE__,message(1:1))
+ call da_free_unit(iunit)
+ if (trace_use) call da_trace_exit("da_read_obs_lightning")
+ return
+ end if
+
+ ! 2. read basic info
+
+ ! 2.1 read the number of total lightning observation and vertical layers
+ read (unit=iunit, fmt = '(A)', iostat = iost) char_total_lightning
+ read (unit=iunit, fmt = '(A)', iostat = iost) char_total_levels
+ read (unit=char_total_levels(9:15),fmt='(I7)', iostat = iost) nlevels
+
+ ! skip one line
+ read (unit=iunit, fmt = '(A)', iostat = iost)
+
+ ! 2.2 read height and coefficient
+ allocate(height(nlevels))
+ allocate(coff(nlevels))
+ do i = 1, nlevels
+ read (unit = iunit, iostat = iost, fmt = '(2F12.3)') height(i), coff(i)
+ end do
+
+ ! 2.3 read header info
+ head_info: do
+ read (unit=iunit, fmt = '(A)', iostat = iost) info_string
+ if (iost /= 0) then
+ write(unit=message(1),fmt='(A,I3,A,I3)') &
+ "Error",iost,"reading lightning obs header on unit",iunit
+ call da_warning(__FILE__,__LINE__,message(1:1))
+ if (trace_use) call da_trace_exit("da_scan_obs_lightning")
+ return
+ end if
+ if (info_string(1:6) == 'data ') exit
+ end do head_info
+
+ ! 2.4 read total lightning data info
+ read (unit=char_total_lightning (8:14),fmt='(I7)', iostat = iost) total_lightning
+
+ ! 2.5 skip one line
+ read (unit=iunit, fmt = '(A)', iostat = iost)
+
+ ! 3. read lightning data
+ reports: do n = 1, total_lightning
+ ! 3.1 read station general info
+ read (unit = iunit, iostat = iost, &
+ fmt = '(A12,1X,A19,1X,I6,2(F12.3,2X),F8.1,1X,A5)') &
+ platform%info%platform, &
+ platform%info%date_char, &
+ platform%info%levels, &
+ platform%info%lat, &
+ platform%info%lon, &
+ platform%info%elv, &
+ platform%info%id
+
+ call da_llxy (platform%info, platform%loc, outside, outside_all)
+
+! Height information is from xb, get horizontal interpolation weights:
+ i1 = platform%loc%i
+ j1 = platform%loc%j
+ dx = platform%loc%dx
+ dy = platform%loc%dy
+ dxm = platform%loc%dxm
+ dym = platform%loc%dym
+
+ ! 3.2 read lightning flash rate and its qc and error info
+ read (unit = iunit, fmt = '(F12.3,I4,F12.3,I4)') flashrate, lightning_qc, lightning_error, rh_indicator
+
+ !turn lighting flash rate into the maximum wmax
+ if(flashrate .ge. min_flashrate .and. flashrate .le. min_flashrate+10.0)then
+ wmax = 5!14.6
+ end if
+ if(flashrate .gt.min_flashrate+10.0 .and. flashrate .le. min_flashrate+20.0)then
+ wmax = 8!17.07
+ end if
+ if(flashrate .gt.min_flashrate+20.0 .and. flashrate.le.min_flashrate+30.0)then
+ wmax = 12!18.67
+ end if
+ if(flashrate .gt.min_flashrate+30.0)then
+ wmax = 15!24.4 !m/s
+ end if
+
+ zlcl = 125.0*(grid%xb%t(i1,j1,1)-grid%xb%td(i1,j1,1)) + grid%xb%terr(i1,j1)
+ zlcl = amax1(grid%xb%terr(i1,j1)+1000.,zlcl)
+ zlcl = amin1(3000. ,zlcl)
+
+ do i = 1, nlevels !vertical layers
+ platform%each(i) = lightning_each_level_type(missing_r, missing, -1.0, &
+ field_type(missing_r, missing, missing_r, missing, missing_r), & ! w
+ field_type(missing_r, missing, missing_r, missing, missing_r), & ! div
+ field_type(missing_r, missing, missing_r, missing, missing_r)) ! qv
+
+ platform%each(i)%height = grid%xb%h(i1,j1,k) !height(i)
+
+ if(flashrate .ge. min_flashrate .and. i .gt. 1) then
+ ! vertical velocity
+ platform%each(i)%w%inv = wmax*coff(i)
+ platform%each(i)%w%qc = 0
+ platform%each(i)%w%error = amax1(1.0, 0.20*abs(platform%each(i)%w%inv))
+ ! divergence
+ platform%each(i)%div%inv = -wmax*(coff(i)-coff(i-1))/(height(i)-height(i-1))
+ platform%each(i)%div%qc = 0
+ platform%each(i)%div%error = amax1(0.0001, 0.20*abs(platform%each(i)%div%inv))
+ else
+ platform%each(i)%w%qc = missing_data
+ platform%each(i)%w%error = missing_r
+ platform%each(i)%div%qc = missing_data
+ platform%each(i)%div%error = missing_r
+ end if
+
+
+ if(flashrate .ge. 10.0 .and. rh_indicator .gt. -1 .and. height(i) .ge. zlcl .and. height(i) .le.15000)then
+ platform%each(i)%qv%inv = 0.01*(2*rh_indicator+lightning_min_rh)*grid%xb%qs(i1,j1,i)
+ platform%each(i)%qv%qc = 0
+ platform%each(i)%qv%error = amax1(0.001,0.20*platform%each(i)%qv%inv)
+ else
+ platform%each(i)%qv%qc = missing_data
+ platform%each(i)%qv%error = missing_r
+ end if
+ end do !vertical layers
+
+ if(outside)then
+ cycle
+ end if
+ nlocal = nlocal+1
+
+ iv%info(lightning)%levels(nlocal) = nlevels
+ iv%info(lightning)%name(nlocal) = platform%info%name
+ iv%info(lightning)%platform(nlocal) = platform%info%platform
+ iv%info(lightning)%id(nlocal) = platform%info%id
+ iv%info(lightning)%date_char(nlocal) = platform%info%date_char
+ iv%info(lightning)%lat(:,nlocal) = platform%info%lat
+ iv%info(lightning)%lon(:,nlocal) = platform%info%lon
+ iv%info(lightning)%elv(nlocal) = platform%info%elv
+ iv%info(lightning)%pstar(nlocal) = platform%info%pstar
+
+ iv%info(lightning)%slp(nlocal) = platform%loc%slp
+ iv%info(lightning)%pw(nlocal) = platform%loc%pw
+ iv%info(lightning)%x(:,nlocal) = platform%loc%x
+ iv%info(lightning)%y(:,nlocal) = platform%loc%y
+ iv%info(lightning)%i(:,nlocal) = platform%loc%i
+ iv%info(lightning)%j(:,nlocal) = platform%loc%j
+ iv%info(lightning)%dx(:,nlocal) = platform%loc%dx
+ iv%info(lightning)%dxm(:,nlocal) = platform%loc%dxm
+ iv%info(lightning)%dy(:,nlocal) = platform%loc%dy
+ iv%info(lightning)%dym(:,nlocal) = platform%loc%dym
+ iv%info(lightning)%proc_domain(:,nlocal) = platform%loc%proc_domain
+ iv%info(lightning)%obs_global_index(nlocal) = nlocal
+
+ allocate(iv%lightning(nlocal)%height(1:nlevels))
+ allocate(iv%lightning(nlocal)%height_qc(1:nlevels))
+ allocate(iv%lightning(nlocal)%w(1:nlevels))
+ allocate(iv%lightning(nlocal)%qv(1:nlevels))
+ allocate(iv%lightning(nlocal)%div(1:nlevels))
+
+ do i = 1, nlevels
+ iv%lightning(nlocal)%height(i) = platform%each(i)%height
+ iv%lightning(nlocal)%height_qc(i)= platform%each(i)%height_qc
+ iv%lightning(nlocal)%w(i) = platform%each(i)%w
+ iv%lightning(nlocal)%qv(i) = platform%each(i)%qv
+ iv%lightning(nlocal)%div(i) = platform%each(i)%div
+ end do
+
+ end do reports
+ deallocate(height)
+ deallocate(coff)
+ close(iunit)
+ call da_free_unit(iunit)
+
+ if (trace_use) call da_trace_exit("da_read_obs_lightning")
+
+
+end subroutine da_read_obs_lightning
diff --git a/var/da/da_obs_io/da_read_omb_tmp.inc b/var/da/da_obs_io/da_read_omb_tmp.inc
index f4a0ad47ef..ff83dd642a 100644
--- a/var/da/da_obs_io/da_read_omb_tmp.inc
+++ b/var/da/da_obs_io/da_read_omb_tmp.inc
@@ -39,8 +39,10 @@ subroutine da_read_omb_tmp(filename,unit_in,num,obs_type_in,nc,if_wind_sd)
spd_obs, spd_inv, spd_err, spd_inc, &
ref_obs, ref_inv, ref_error, ref_inc, &
eph_obs, eph_inv, eph_error, eph_inc, &
- rain_obs, rain_inv, rain_error, rain_inc, zk
- integer :: u_qc, v_qc, t_qc, p_qc, q_qc, tpw_qc, spd_qc, ref_qc, rain_qc
+ rain_obs, rain_inv, rain_error, rain_inc, zk, &
+ w_obs, w_inv, w_error, w_inc, & ! lightning
+ div_obs, div_inv, div_error, div_inc ! lightning
+ integer :: u_qc, v_qc, t_qc, p_qc, q_qc, tpw_qc, spd_qc, ref_qc, rain_qc, w_qc, div_qc
#if (WRF_CHEM == 1)
real :: chem_obs, chem_inv, chem_err, chem_inc, &
chem_obs2, chem_inv2, chem_err2, chem_inc2, &
@@ -453,6 +455,34 @@ subroutine da_read_omb_tmp(filename,unit_in,num,obs_type_in,nc,if_wind_sd)
if (if_write) exit reports
cycle reports
+ case ('lightning' )
+ if (num_obs > 0) then
+ do n = 1, num_obs
+ read(unit_in,'(2i8)') levels, ifgat
+ if (if_write) then
+ write(omb_unit,'(2i8)')levels, ifgat
+ num = num + 1
+ end if
+ do k = 1, levels
+ read(unit_in,'(2i8,a5,2f9.2,f17.7,3(2f17.7,i8,2f17.7))', err= 1000)&
+ kk,l, stn_id, & ! Station
+ lat, lon, height, & ! Lat/lon, height
+ w_obs, w_inv, w_qc, w_error, w_inc, & ! vertical velocity
+ div_obs, div_inv, div_qc, div_error, div_inc, & ! divergence
+ q_obs, q_inv, q_qc, q_error, q_inc ! water vapor
+ if (if_write) &
+ write(omb_unit,'(2i8,a5,2f9.2,f17.7,3(2f17.7,i8,2f17.7))', err= 1000)&
+ num,k,stn_id, & ! Station
+ lat, lon, height, & ! Lat/lon, height
+ w_obs, w_inv, w_qc, w_error, w_inc, & ! vertical velocity
+ div_obs, div_inv, div_qc, div_error, div_inc, & ! divergence
+ q_obs, q_inv, q_qc, q_error, q_inc ! water vapor
+ end do
+ end do
+ end if
+ if (if_write) exit reports
+ cycle reports
+
#if (WRF_CHEM == 1)
case ('chem' )
if (num_obs > 0) then
diff --git a/var/da/da_obs_io/da_scan_obs_lightning.inc b/var/da/da_obs_io/da_scan_obs_lightning.inc
new file mode 100644
index 0000000000..d21f4304d2
--- /dev/null
+++ b/var/da/da_obs_io/da_scan_obs_lightning.inc
@@ -0,0 +1,130 @@
+subroutine da_scan_obs_lightning (iv, filename, grid)
+
+ !---------------------------------------------------------------------------
+ ! Purpose: Scan the lightning observation file
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !---------------------------------------------------------------------------
+
+ implicit none
+
+ type (iv_type), intent(inout) :: iv
+ character(len=*), intent(in) :: filename
+ type(domain), intent(in) :: grid ! first guess state.
+
+ integer :: i, n, iost
+ integer :: iunit
+
+ type (lightning_multi_level_type) :: platform
+
+ character (len = 120) :: char_total_lightning, char_total_levels
+ character (len = 160) :: info_string
+ integer :: total_lightning, nlevels, lightning_qc, rh_indicator
+ real :: flashrate, lightning_error
+ real, allocatable,dimension(:):: height, coff
+ logical :: outside, outside_all
+ integer :: nlocal, ntotal
+
+ if (trace_use) call da_trace_entry("da_scan_obs_lightning")
+
+ nlocal = 0
+ ntotal = 0
+
+ ! 1. open file
+ ! ============
+ call da_get_unit(iunit)
+ open(unit = iunit, &
+ FILE = trim(filename), &
+ FORM = 'FORMATTED', &
+ ACCESS = 'SEQUENTIAL', &
+ iostat = iost, &
+ STATUS = 'OLD')
+
+ if (iost /= 0) then
+ write(unit=message(1),fmt='(A,I5,A)') &
+ "Error",iost," opening lightning obs file "//trim(filename)
+ call da_warning(__FILE__,__LINE__,message(1:1))
+ call da_free_unit(iunit)
+ if (trace_use) call da_trace_exit("da_scan_obs_lightning")
+ return
+ end if
+
+ ! 2. read basic info
+
+ ! 2.1 read the number of total lightning observation and vertical layers
+ read (unit=iunit, fmt = '(A)', iostat = iost) char_total_lightning
+ read (unit=iunit, fmt = '(A)', iostat = iost) char_total_levels
+ read (unit=char_total_levels(9:15),fmt='(I7)', iostat = iost) nlevels
+
+ ! skip one line
+ read (unit=iunit, fmt = '(A)', iostat = iost)
+
+ ! 2.2 read height and coefficient
+ allocate(height(nlevels))
+ allocate(coff(nlevels))
+ do i = 1, nlevels
+ read (unit = iunit, iostat = iost, fmt = '(2F12.3)') height(i), coff(i)
+ end do
+
+ if (iost /= 0) then
+ ! Does matter if present and unreadable
+ call da_error(__FILE__,__LINE__, &
+ (/"Cannot read lightning file"/))
+ end if
+
+ ! 2.3 read header info
+ head_info: do
+ read (unit=iunit, fmt = '(A)', iostat = iost) info_string
+ if (iost /= 0) then
+ write(unit=message(1),fmt='(A,I3,A,I3)') &
+ "Error",iost,"reading lightning obs header on unit",iunit
+ call da_warning(__FILE__,__LINE__,message(1:1))
+ if (trace_use) call da_trace_exit("da_scan_obs_lightning")
+ return
+ end if
+ if (info_string(1:6) == 'data ') exit
+ end do head_info
+
+ ! 2.4 read total lightning data info
+ read (unit=char_total_lightning(8:14),fmt='(I7)', iostat = iost) total_lightning
+
+ ! 2.5 skip one line
+ read (unit=iunit, fmt = '(A)', iostat = iost)
+
+
+ ! 3. read lightning data
+ reports: do n = 1, total_lightning
+ ! 3.1 read station general info
+ read (unit = iunit, iostat = iost, &
+ fmt = '(A12,1X,A19,1X,I6,2(F12.3,2X),F8.1,1X,A5)') &
+ platform%info%platform, &
+ platform%info%date_char, &
+ platform%info%levels, &
+ platform%info%lat, &
+ platform%info%lon, &
+ platform%info%elv, &
+ platform%info%id
+
+ ! 3.2 read lightning flash rate and its qc and error info
+ read (unit = iunit, fmt = '(F12.3,I4,F12.3,I4)') flashrate, lightning_qc, lightning_error, rh_indicator
+
+ call da_llxy (platform%info, platform%loc, outside, outside_all)
+ ntotal = ntotal + 1
+ if(outside)then
+ cycle
+ end if
+ nlocal = nlocal + 1
+ end do reports
+
+ iv%info(lightning)%max_lev = nlevels
+ iv%info(lightning)%ntotal = ntotal
+ iv%info(lightning)%nlocal = nlocal
+
+ deallocate(height)
+ deallocate(coff)
+ close (iunit)
+ call da_free_unit(iunit)
+
+ if (trace_use) call da_trace_exit("da_scan_obs_lightning")
+
+end subroutine da_scan_obs_lightning
+
diff --git a/var/da/da_obs_io/da_search_obs.inc b/var/da/da_obs_io/da_search_obs.inc
index b664655497..9fb3439960 100644
--- a/var/da/da_obs_io/da_search_obs.inc
+++ b/var/da/da_obs_io/da_search_obs.inc
@@ -740,6 +740,34 @@ subroutine da_search_obs (ob_type_string, unit_in, num_obs, nth, iv, found_flag)
rewind (unit_in)
read(unit_in,*)
+ CASE ('lightning')
+
+ do n = 1, num_obs
+ read(unit_in,'(2i8,2E22.13)') n_dummy, levels, lat, lon
+
+ if ( abs(iv%info(lightning)%lat(1,nth) - lat ) < MIN_ERR .and. &
+ abs(iv%info(lightning)%lon(1,nth) - lon ) < MIN_ERR ) then
+
+ do k = 1, levels
+ read(unit_in,'(3(E22.13,i8,3E22.13))')&
+ iv%lightning(nth)%w(k),&
+ iv%lightning(nth)%div(k),&
+ iv%lightning(nth)%qv(k)
+ enddo
+
+ !found_flag = .true.
+ rewind (unit_in)
+ read(unit_in,*)
+ if (trace_use) call da_trace_exit("da_search_obs")
+ return
+ else
+ read(unit_in,*)
+ endif
+ enddo
+ !found_flag = .false.
+ rewind (unit_in)
+ read(unit_in,*)
+
CASE default;
write(unit=message(1), fmt='(a,a20,a,i3)') &
diff --git a/var/da/da_obs_io/da_write_iv_for_multi_inc.inc b/var/da/da_obs_io/da_write_iv_for_multi_inc.inc
index 1d359c7f5f..523a10cf95 100644
--- a/var/da/da_obs_io/da_write_iv_for_multi_inc.inc
+++ b/var/da/da_obs_io/da_write_iv_for_multi_inc.inc
@@ -890,6 +890,35 @@ subroutine da_write_iv_for_multi_inc(file_index, iv)
end if ! nobs_tot > 0
+ ! [26] lightning obs:
+
+ if (iv%info(lightning)%plocal(iv%time) - iv%info(lightning)%plocal(iv%time-1) > 0) then
+
+ open (unit=ounit,file=trim(filename)//'.lightning',form='formatted',status='replace', &
+ iostat=ios)
+ if (ios /= 0) then
+ call da_error(__FILE__,__LINE__, &
+ (/"Cannot open conventional observation omb file"//filename/))
+ end if
+
+ write(ounit,'(a20,i8)')'radar', iv%info(lightning)%plocal(iv%time) - &
+ iv%info(lightning)%plocal(iv%time-1)
+ do n = iv%info(lightning)%plocal(iv%time-1) + 1, &
+ iv%info(lightning)%plocal(iv%time)
+ write(ounit,'(2i8,2E22.13)')&
+ n, iv%info(lightning)%levels(n), &
+ iv%info(lightning)%lat(1,n), & ! Latitude
+ iv%info(lightning)%lon(1,n) ! Longitude
+ do k = 1 , iv%info(lightning)%levels(n)
+ write(ounit,'(E22.13,(E22.13,i8,3E22.13))')&
+ iv%lightning(n)%w(k) ,& ! lightning-w
+ iv%lightning(n)%div(k), & ! lightning-div
+ iv%lightning(n)%qv(k) ! lightning-qv
+ enddo
+ end do
+ close (ounit)
+ end if
+
!-------------------------------------------------------------------------------
diff --git a/var/da/da_obs_io/da_write_obs.inc b/var/da/da_obs_io/da_write_obs.inc
index 9d1ba17aa2..7148b480d2 100644
--- a/var/da/da_obs_io/da_write_obs.inc
+++ b/var/da/da_obs_io/da_write_obs.inc
@@ -935,6 +935,51 @@ subroutine da_write_obs(it,ob, iv, re)
end if
end do
end if
+
+ !! lightning
+ num_obs = 0
+ do n = 1, iv%info(lightning)%nlocal
+ if (iv%info(lightning)%proc_domain(1,n)) num_obs = num_obs + 1
+ end do
+ if (num_obs > 0) then
+ write(ounit,'(a20,i8)')'lightning', num_obs
+ num_obs = 0
+ do n = 1, iv%info(lightning)%nlocal
+ do itime = 1, num_fgat_time
+ if ( n >= iv%info(lightning)%plocal(itime-1)+1 .and. &
+ n <= iv%info(lightning)%plocal(itime) ) then
+ ifgat = itime
+ exit
+ end if
+ end do
+ if (iv%info(lightning)%proc_domain(1,n)) then
+ num_obs = num_obs + 1
+ write(ounit,'(2i8)')iv%info(lightning)%levels(n), ifgat
+ do k = 1, iv%info(lightning)%levels(n)
+ write(ounit,'(2i8,a5,2f9.2,f17.7,3(2f17.7,i8,2f17.7))')&
+ num_obs , k, iv%info(lightning)%id(n), & ! Station
+ iv%info(lightning)%lat(1,n), & ! Latitude
+ iv%info(lightning)%lon(1,n), & ! Longitude
+ iv%lightning(n)%height(k), & ! Obs Height
+ ob%lightning(n)%w(k), &
+ iv%lightning(n)%w(k)%inv, &
+ iv%lightning(n)%w(k)%qc, &
+ iv%lightning(n)%w(k)%error, &
+ re%lightning(n)%w(k), &
+ ob%lightning(n)%div(k), &
+ iv%lightning(n)%div(k)%inv, &
+ iv%lightning(n)%div(k)%qc, &
+ iv%lightning(n)%div(k)%error,&
+ re%lightning(n)%div(k), &
+ ob%lightning(n)%qv(k), &
+ iv%lightning(n)%qv(k)%inv, &
+ iv%lightning(n)%qv(k)%qc, &
+ iv%lightning(n)%qv(k)%error, &
+ re%lightning(n)%qv(k)
+ end do
+ end if
+ end do
+ end if
close (ounit)
call da_free_unit(ounit)
diff --git a/var/da/da_setup_structures/da_setup_obs_structures.inc b/var/da/da_setup_structures/da_setup_obs_structures.inc
index ebbd62457e..76573c9647 100644
--- a/var/da/da_setup_structures/da_setup_obs_structures.inc
+++ b/var/da/da_setup_structures/da_setup_obs_structures.inc
@@ -75,6 +75,10 @@ subroutine da_setup_obs_structures( grid, ob, iv, j_cost)
use_radarobs = .false.
use_radar_rv = .false.
use_radar_rf = .false.
+ use_lightningobs = .false.
+ use_lightning_w = .false.
+ use_lightning_div = .false.
+ use_lightning_qv = .false.
#if (WRF_CHEM == 1)
use_chemic_surfobs = .false.
#endif
@@ -158,6 +162,10 @@ subroutine da_setup_obs_structures( grid, ob, iv, j_cost)
use_radarobs = .false.
use_radar_rv = .false.
use_radar_rf = .false.
+ use_lightningobs = .false.
+ use_lightning_w = .false.
+ use_lightning_div = .false.
+ use_lightning_qv = .false.
#if (WRF_CHEM == 1)
use_chemic_surfobs = .false.
#endif
@@ -188,6 +196,7 @@ subroutine da_setup_obs_structures( grid, ob, iv, j_cost)
if ( use_profilerobs ) obs_use(profiler) = .true.
if ( use_qscatobs ) obs_use(qscat) = .true.
if ( use_radarobs ) obs_use(radar) = .true.
+ if ( use_lightningobs ) obs_use(lightning) = .true.
if ( use_rainobs ) obs_use(rain) = .true.
if ( use_satemobs ) obs_use(satem) = .true.
if ( use_shipsobs ) obs_use(ships) = .true.
@@ -277,6 +286,7 @@ subroutine da_setup_obs_structures( grid, ob, iv, j_cost)
thin_conv_opt(radar) = no_thin
thin_conv_opt(radiance) = no_thin
thin_conv_opt(rain) = no_thin
+ thin_conv_opt(lightning) = no_thin
if ( thin_conv .and. ob_format==ob_format_bufr ) then
! gpsref horizontal thinning is not implemented for bufr input
thin_conv_opt(gpsref) = no_thin
@@ -392,6 +402,12 @@ subroutine da_setup_obs_structures( grid, ob, iv, j_cost)
call da_setup_obs_structures_radar (grid, ob, iv)
end if
+ if (use_lightningobs) then
+ ! Lightning obs are read from separate file(s)
+ call da_message((/'Using ASCII format lightning observation input'/))
+ call da_setup_obs_structures_lightning (grid, ob, iv)
+ end if
+
if (use_rainobs .and. var4d) then
call da_message((/'Using ASCII format precipitation observation input'/))
call da_setup_obs_structures_rain (grid, ob, iv)
diff --git a/var/da/da_setup_structures/da_setup_obs_structures_ascii.inc b/var/da/da_setup_structures/da_setup_obs_structures_ascii.inc
index 49fca83d9d..7a0e313a8d 100644
--- a/var/da/da_setup_structures/da_setup_obs_structures_ascii.inc
+++ b/var/da/da_setup_structures/da_setup_obs_structures_ascii.inc
@@ -81,7 +81,7 @@ subroutine da_setup_obs_structures_ascii( ob, iv, grid )
endif
do i=1,num_ob_indexes
- if (i == radar) cycle
+ if (i == radar .or. i == lightning) cycle
iv%info(i)%plocal(iv%time) = iv%info(i)%nlocal
iv%info(i)%ptotal(iv%time) = iv%info(i)%ntotal
end do
@@ -114,7 +114,7 @@ subroutine da_setup_obs_structures_ascii( ob, iv, grid )
end if
do i=1,num_ob_indexes
- if (i == radar) cycle
+ if (i == radar .or. i==lightning) cycle
iv%info(i)%thin_ptotal(n) = iv%info(i)%thin_ntotal
iv%info(i)%thin_plocal(n) = iv%info(i)%thin_nlocal
end do
@@ -134,7 +134,7 @@ subroutine da_setup_obs_structures_ascii( ob, iv, grid )
end if
do i=1,num_ob_indexes
- if (i == radar) cycle
+ if (i == radar .or. i == lightning) cycle
iv%info(i)%thin_ptotal(iv%time) = iv%info(i)%thin_ntotal
iv%info(i)%thin_plocal(iv%time) = iv%info(i)%thin_nlocal
end do
@@ -154,7 +154,7 @@ subroutine da_setup_obs_structures_ascii( ob, iv, grid )
if ( thin_conv_ascii ) then
do i = 1, num_ob_indexes
if ( thin_conv_opt(i) <= no_thin ) cycle
- if (i == radar) cycle
+ if (i == radar .or. i == lightning) cycle
if ( iv%info(i)%ntotal > 0 ) then
if ( iv%info(i)%nlocal > 0 ) then
if ( ANY(iv%info(i)%thinned(:,:)) ) then
diff --git a/var/da/da_setup_structures/da_setup_obs_structures_lightning.inc b/var/da/da_setup_structures/da_setup_obs_structures_lightning.inc
new file mode 100644
index 0000000000..9bafc27805
--- /dev/null
+++ b/var/da/da_setup_structures/da_setup_obs_structures_lightning.inc
@@ -0,0 +1,116 @@
+subroutine da_setup_obs_structures_lightning( grid, ob, iv )
+
+ !-------------------------------------------------------------------------
+ ! Purpose: Define, allocate and read lightning observation structure.
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-------------------------------------------------------------------------
+
+ implicit none
+
+ type (y_type), intent(out) :: ob ! Observation structure.
+ type (iv_type), intent(inout) :: iv ! O-B structure.
+ type (domain), intent(inout) :: grid ! First guess structure
+
+ character(len=filename_len) :: filename
+ integer :: n, i, j, k
+ integer :: istart,iend,jstart,jend
+ real :: rlonlat(4)
+
+ if (trace_use) call da_trace_entry("da_setup_obs_structures_lightning")
+
+ call init_constants_derived
+
+ !--------------------------------------------------------------------------
+ ! [1.0] Scan lightning observation header and get number of obs:
+ !--------------------------------------------------------------------------
+ if (num_fgat_time > 1) then
+ do n=1, num_fgat_time
+
+ iv%time = n
+ filename = ' '
+
+ ! scan lightning observation file
+ write(filename(1:10), fmt='(a, i2.2, a)') 'ob', n,'.lightning'
+ call da_scan_obs_lightning(iv, filename, grid)
+
+ iv%info(lightning)%plocal(n) = iv%info(lightning)%nlocal
+ iv%info(lightning)%ptotal(n) = iv%info(lightning)%ntotal
+ end do
+ else
+ iv%time = 1
+ ! scan main body of lightning observation file
+ call da_scan_obs_lightning(iv, 'ob.lightning', grid)
+ iv%info(lightning)%plocal(iv%time) = iv%info(lightning)%nlocal
+ iv%info(lightning)%ptotal(iv%time) = iv%info(lightning)%ntotal
+ end if
+
+ !--------------------------------------------------------------------------
+ ! Allocate based on input number of obs:
+ !--------------------------------------------------------------------------
+ ! This logic was originally found in da_allocate_observations; moved here
+ if (iv%info(lightning)%nlocal > 0) allocate(iv%lightning (1:iv%info(lightning)%nlocal))
+ if (iv%info(lightning)%nlocal > 0) then
+ allocate (iv%info(lightning)%name(iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%platform(iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%id(iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%date_char(iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%levels(iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%lat(iv%info(lightning)%max_lev,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%lon(iv%info(lightning)%max_lev,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%elv(iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%pstar(iv%info(lightning)%nlocal))
+
+ allocate (iv%info(lightning)%slp(iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%pw(iv%info(lightning)%nlocal))
+
+ allocate (iv%info(lightning)%x (kms:kme,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%y (kms:kme,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%i (kms:kme,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%j (kms:kme,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%dx (kms:kme,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%dxm(kms:kme,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%dy (kms:kme,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%dym(kms:kme,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%k (iv%info(lightning)%max_lev,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%dz (iv%info(lightning)%max_lev,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%dzm(iv%info(lightning)%max_lev,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%zk (iv%info(lightning)%max_lev,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%proc_domain(iv%info(lightning)%max_lev,iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%obs_global_index(iv%info(lightning)%nlocal))
+ allocate (iv%info(lightning)%thinned(iv%info(lightning)%max_lev,iv%info(lightning)%nlocal))
+
+ iv%info(lightning)%proc_domain(:,:) = .false.
+ iv%info(lightning)%thinned(:,:) = .false.
+ iv%info(lightning)%zk(:,:) = missing_r
+ end if
+
+ if (num_fgat_time > 1) then
+
+ do n=1, num_fgat_time
+ iv%time = n
+ filename = ' '
+
+ ! read lightning observation file
+ write(filename(1:10), fmt='(a, i2.2, a)') 'ob', n,'.lightning'
+ call da_read_obs_lightning(iv, filename, grid)
+
+ end do
+ else
+ iv%time = 1
+
+ ! read lightning observation file
+ call da_read_obs_lightning(iv, 'ob.lightning', grid)
+ end if
+
+ !--------------------------------------------------------------------------
+ ! [3.0] Calculate innovation vector (O-B) and create (smaller) ob structure:
+ !--------------------------------------------------------------------------
+
+ call da_fill_obs_structures_lightning(iv, ob)
+
+ iv%time = 1
+
+ if (trace_use) call da_trace_exit("da_setup_obs_structures_lightning")
+end subroutine da_setup_obs_structures_lightning
+
+
diff --git a/var/da/da_setup_structures/da_setup_structures.f90 b/var/da/da_setup_structures/da_setup_structures.f90
index 582a14a112..22997feacc 100644
--- a/var/da/da_setup_structures/da_setup_structures.f90
+++ b/var/da/da_setup_structures/da_setup_structures.f90
@@ -14,15 +14,15 @@ module da_setup_structures
#endif
multi_level_type,each_level_type, da_allocate_observations_rain
use da_define_structures, only : da_allocate_obs_info, da_allocate_y, da_allocate_y_radar, &
- da_allocate_y_rain
+ da_allocate_y_rain, da_allocate_y_lightning
use da_wrf_interfaces, only : wrf_debug, &
wrf_dm_bcast_string, wrf_dm_bcast_integer, wrf_dm_bcast_real
use da_control, only : trace_use,vert_evalue,stdout,rootproc, myproc, &
analysis_date,coarse_ix,coarse_ds,map_projection,coarse_jy, c2,dsm,phic, &
pole, cone_factor, start_x,base_pres,ptop,psi1,start_y, base_lapse,base_temp,truelat2_3dv, &
truelat1_3dv,xlonc,t0,num_fft_factors,pi,print_detail_spectral, global, print_detail_obs, &
- use_radar_rf, use_radar_rhv, use_radar_rqv, radar_rf_opt, &
- num_ob_indexes,kts, kte, time_window_max, time_window_min, &
+ use_radar_rf, use_radar_rhv, use_radar_rqv, radar_rf_opt, use_lightning_w, use_lightning_div, &
+ use_lightning_qv, num_ob_indexes,kts, kte, time_window_max, time_window_min, &
max_fgat_time, num_fgat_time, dt_cloud_model, &
use_ssmiretrievalobs,use_radarobs,use_ssmitbobs,use_qscatobs, num_procs, use_rainobs, &
#if (WRF_CHEM == 1)
@@ -32,7 +32,7 @@ module da_setup_structures
num_pseudo, missing, ob_format, ob_format_bufr,ob_format_ascii, ob_format_madis, ob_format_gpsro, &
use_airepobs, use_tamdarobs, test_dm_exact, use_amsuaobs, use_amsubobs, &
use_airsobs, use_bogusobs, sfc_assi_options, use_eos_amsuaobs, &
- use_filtered_rad, use_gpsrefobs, use_hirs2obs, &
+ use_filtered_rad, use_gpsrefobs, use_hirs2obs, use_lightningobs, &
use_hsbobs,use_hirs3obs, use_gpspwobs, use_gpsztdobs, use_metarobs, use_msuobs, &
use_kma1dvar,use_pilotobs, use_polaramvobs, use_rad, crtm_cloud, use_soundobs,use_mtgirsobs, &
use_ssmt1obs,use_ssmt2obs, use_shipsobs, use_satemobs, use_synopobs, &
@@ -57,7 +57,7 @@ module da_setup_structures
vert_corr_2, alphacv_method_xa, vert_evalue_global, &
vert_evalue_local, obs_names, thin_conv, thin_conv_ascii, &
sound, sonde_sfc, mtgirs, tamdar, tamdar_sfc, synop, profiler, gpsref, gpspw, polaramv, geoamv, ships, metar, &
- satem, radar, ssmi_rv, ssmi_tb, ssmt1, ssmt2, airsr, pilot, airep, rain, &
+ satem, radar, ssmi_rv, ssmi_tb, ssmt1, ssmt2, airsr, pilot, airep, rain, lightning, &
bogus, buoy, qscat, radiance, pseudo, trace_use_dull, kts,kte, &
use_simulated_rad, use_pseudo_rad, pseudo_rad_platid, pseudo_rad_satid, &
pseudo_rad_senid, rtminit_nsensor, rtminit_platform, rtminit_satid, &
@@ -89,11 +89,13 @@ module da_setup_structures
#if (WRF_CHEM == 1)
da_fill_obs_structures_chem_sfc, &
#endif
- da_fill_obs_structures_rain, da_fill_obs_structures_radar, da_set_obs_missing,da_set_3d_obs_missing
+ da_fill_obs_structures_rain, da_fill_obs_structures_radar, da_fill_obs_structures_lightning, &
+ da_set_obs_missing, da_set_3d_obs_missing
use da_obs_io, only : da_read_obs_bufr,da_read_obs_radar, &
da_scan_obs_radar,da_scan_obs_ascii,da_read_obs_ascii, &
da_read_obs_bufrgpsro, da_scan_obs_rain, da_read_obs_rain, &
da_read_obs_lsac, da_scan_obs_lsac, da_read_obs_bufrgpsro_eph, &
+ da_read_obs_lightning, da_scan_obs_lightning, &
da_read_obs_bufr_satwnd, oetab
#if (WRF_CHEM == 1)
use da_obs_io, only : da_read_obs_chem_sfc, da_scan_obs_chem_sfc
@@ -155,6 +157,7 @@ module da_setup_structures
#include "da_setup_obs_structures_madis.inc"
#include "da_setup_obs_structures_rain.inc"
#include "da_setup_obs_structures_radar.inc"
+#include "da_setup_obs_structures_lightning.inc"
#include "da_setup_pseudo_obs.inc"
#if (WRF_CHEM == 1)
#include "da_setup_obs_structures_chem_sfc.inc"
diff --git a/var/da/da_statistics/da_analysis_stats.inc b/var/da/da_statistics/da_analysis_stats.inc
index 672946b14e..652dbc9ba3 100644
--- a/var/da/da_statistics/da_analysis_stats.inc
+++ b/var/da/da_statistics/da_analysis_stats.inc
@@ -29,7 +29,7 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
integer :: kdim ! k range
real :: um, vm, tm, pm, qm , qcwm, qrnm ! On local domain.
- real :: qcim, qsnm, qgrm
+ real :: qcim, qsnm, qgrm, wm
real :: rij_g, rijk_g ! On global domain.
type (maxmin_field_type) :: max_u(kts:kte), max_v(kts:kte), &
@@ -45,6 +45,8 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
min_qcw(kts:kte), min_qrn(kts:kte), &
min_qci(kts:kte), min_qsn(kts:kte), &
min_qgr(kts:kte)
+ type (maxmin_field_type) :: max_w(kts:kte), min_w(kts:kte)
+
#if (WRF_CHEM == 1)
type (maxmin_field_type) :: max_chem(kts:kte,num_chem), min_chem(kts:kte,num_chem)
real :: chemm(num_chem), chemv(kts:kte,num_chem)
@@ -57,6 +59,7 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
real :: qcwv(kts:kte), qrnv(kts:kte), &
qciv(kts:kte), qsnv(kts:kte), &
qgrv(kts:kte)
+ real :: wv(kts:kte)
call da_trace_entry("da_analysis_stats")
@@ -70,40 +73,78 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
if (rootproc) then
write(unit=stats_unit, fmt='(/a/)') ' Minimum of gridded analysis increments'
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(6a/)') &
- ' Lvl ', &
- 'u i j ', &
- 'v i j ', &
- 't i j ', &
- 'p i j ', &
- 'q i j'
- case ( 1 )
- write(unit=stats_unit, fmt='(8a/)') &
- ' Lvl ', &
- 'u i j ', &
- 'v i j ', &
- 't i j ', &
- 'p i j ', &
- 'q i j ', &
- 'qcw i j ', &
- 'qrn i j'
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(11a/)') &
- ' Lvl ', &
- 'u i j ', &
- 'v i j ', &
- 't i j ', &
- 'p i j ', &
- 'q i j ', &
- 'qcw i j ', &
- 'qrn i j ', &
- 'qci i j ', &
- 'qsn i j ', &
- 'qgr i j'
- end select
-
+ if (use_cv_w) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(7a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 'w i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j'
+ case ( 1 )
+ write(unit=stats_unit, fmt='(8a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 'w i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j ', &
+ 'qcw i j ', &
+ 'qrn i j'
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(12a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 'w i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j ', &
+ 'qcw i j ', &
+ 'qrn i j ', &
+ 'qci i j ', &
+ 'qsn i j ', &
+ 'qgr i j'
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(6a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j'
+ case ( 1 )
+ write(unit=stats_unit, fmt='(8a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j ', &
+ 'qcw i j ', &
+ 'qrn i j'
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(11a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j ', &
+ 'qcw i j ', &
+ 'qrn i j ', &
+ 'qci i j ', &
+ 'qsn i j ', &
+ 'qgr i j'
+ end select
+ end if
#if (WRF_CHEM == 1)
write(unit=stats_unit2, fmt='(/a/)') ' Minimum of gridded analysis increments'
select case ( chem_cv_options )
@@ -162,6 +203,11 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
call da_proc_maxmin_combine(kdim, max_qgr, min_qgr)
end if
+ if ( use_cv_w ) then
+ call da_maxmin_in_field(grid%xa%w(its:ite,jts:jte,kts:kte), max_w, min_w)
+ call da_proc_maxmin_combine(kdim, max_w, min_w)
+ end if
+
#if (WRF_CHEM == 1)
if ( chem_cv_options >= 10 ) then
do ic=PARAM_FIRST_SCALAR, num_chem
@@ -183,6 +229,8 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
qsnm = 999999.0
qgrm = 999999.0
+ wm = 999999.0
+
#if (WRF_CHEM == 1)
chemm = 999999.0
#endif
@@ -190,20 +238,35 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
do k = kts, kte
if (rootproc) then
if ( abs(min_q(k)%value) < 1.e-30 ) min_q(k)%value = 0.0
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),e12.4,2i5)') k, &
- min_u(k), min_v(k), min_t(k), min_p(k), min_q(k)
- case ( 1 )
- write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),3(e12.4,2i5))') k, &
- min_u(k), min_v(k), min_t(k), min_p(k), min_q(k), &
- min_qcw(k), min_qrn(k)
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),6(e12.4,2i5))') k, &
- min_u(k), min_v(k), min_t(k), min_p(k), min_q(k), &
- min_qcw(k), min_qrn(k), min_qci(k), min_qsn(k), min_qgr(k)
- end select
-
+ if (use_cv_w) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(i4,5(f12.4,2i5),e12.4,2i5)') k, &
+ min_u(k), min_v(k), min_w(k), min_t(k), min_p(k), min_q(k)
+ case ( 1 )
+ write(unit=stats_unit, fmt='(i4,5(f12.4,2i5),3(e12.4,2i5))') k, &
+ min_u(k), min_v(k), min_w(k), min_t(k), min_p(k), min_q(k), &
+ min_qcw(k), min_qrn(k)
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(i4,5(f12.4,2i5),6(e12.4,2i5))') k, &
+ min_u(k), min_v(k), min_w(k), min_t(k), min_p(k), min_q(k), &
+ min_qcw(k), min_qrn(k), min_qci(k), min_qsn(k), min_qgr(k)
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),e12.4,2i5)') k, &
+ min_u(k), min_v(k), min_t(k), min_p(k), min_q(k)
+ case ( 1 )
+ write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),3(e12.4,2i5))') k, &
+ min_u(k), min_v(k), min_t(k), min_p(k), min_q(k), &
+ min_qcw(k), min_qrn(k)
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),6(e12.4,2i5))') k, &
+ min_u(k), min_v(k), min_t(k), min_p(k), min_q(k), &
+ min_qcw(k), min_qrn(k), min_qci(k), min_qsn(k), min_qgr(k)
+ end select
+ end if
#if (WRF_CHEM == 1)
select case ( chem_cv_options )
case ( 10 )
@@ -241,6 +304,9 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
qsnm=minval(min_qsn(:)%value)
qgrm=minval(min_qgr(:)%value)
end if
+ if ( use_cv_w ) then
+ wm=minval(min_w(:)%value)
+ end if
end do
#if (WRF_CHEM == 1)
@@ -250,17 +316,31 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
#endif
if (rootproc) then
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(a,4(f12.4,10x),e12.4)') ' ALL', &
- um, vm, tm, pm, qm
- case ( 1 )
- write(unit=stats_unit, fmt='(a,4(f12.4,10x),3(e12.4,10x))') ' ALL', &
- um, vm, tm, pm, qm, qcwm, qrnm
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(a,4(f12.4,10x),6(e12.4,10x))') ' ALL', &
- um, vm, tm, pm, qm, qcwm, qrnm, qcim, qsnm, qgrm
- end select
+ if ( use_cv_w ) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a,5(f12.4,10x),e12.4)') ' ALL', &
+ um, vm, wm, tm, pm, qm
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a,5(f12.4,10x),3(e12.4,10x))') ' ALL', &
+ um, vm, wm, tm, pm, qm, qcwm, qrnm
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a,5(f12.4,10x),6(e12.4,10x))') ' ALL', &
+ um, vm, wm, tm, pm, qm, qcwm, qrnm, qcim, qsnm, qgrm
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a,4(f12.4,10x),e12.4)') ' ALL', &
+ um, vm, tm, pm, qm
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a,4(f12.4,10x),3(e12.4,10x))') ' ALL', &
+ um, vm, tm, pm, qm, qcwm, qrnm
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a,4(f12.4,10x),6(e12.4,10x))') ' ALL', &
+ um, vm, tm, pm, qm, qcwm, qrnm, qcim, qsnm, qgrm
+ end select
+ end if
#if (WRF_CHEM == 1)
select case ( chem_cv_options )
@@ -305,57 +385,112 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
end select
#endif
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(6a/)') &
- ' Lvl ', &
- 'u i j ', &
- 'v i j ', &
- 't i j ', &
- 'p i j ', &
- 'q i j'
- case ( 1 )
- write(unit=stats_unit, fmt='(8a/)') &
- ' Lvl ', &
- 'u i j ', &
- 'v i j ', &
- 't i j ', &
- 'p i j ', &
- 'q i j ', &
- 'qcw i j ', &
- 'qrn i j'
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(11a/)') &
- ' Lvl ', &
- 'u i j ', &
- 'v i j ', &
- 't i j ', &
- 'p i j ', &
- 'q i j ', &
- 'qcw i j ', &
- 'qrn i j ', &
- 'qci i j ', &
- 'qsn i j ', &
- 'qgr i j'
- end select
- end if !rootproc
-
- do k = kts, kte
- if (rootproc) then
- if ( abs(max_q(k)%value) < 1.e-30 ) max_q(k)%value = 0.0
+ if (use_cv_w) then
select case ( cloud_cv_options )
case ( 0 )
- write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),e12.4,2i5)') k, &
- max_u(k), max_v(k), max_t(k), max_p(k), max_q(k)
+ write(unit=stats_unit, fmt='(7a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 'w i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j'
case ( 1 )
- write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),3(e12.4,2i5))') k, &
- max_u(k), max_v(k), max_t(k), max_p(k), max_q(k), &
- max_qcw(k), max_qrn(k)
+ write(unit=stats_unit, fmt='(8a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 'w i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j ', &
+ 'qcw i j ', &
+ 'qrn i j'
case ( 2, 3 )
- write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),6(e12.4,2i5))') k, &
- max_u(k), max_v(k), max_t(k), max_p(k), max_q(k), &
- max_qcw(k), max_qrn(k), max_qci(k), max_qsn(k), max_qgr(k)
+ write(unit=stats_unit, fmt='(12a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 'w i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j ', &
+ 'qcw i j ', &
+ 'qrn i j ', &
+ 'qci i j ', &
+ 'qsn i j ', &
+ 'qgr i j'
end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(6a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j'
+ case ( 1 )
+ write(unit=stats_unit, fmt='(8a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j ', &
+ 'qcw i j ', &
+ 'qrn i j'
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(11a/)') &
+ ' Lvl ', &
+ 'u i j ', &
+ 'v i j ', &
+ 't i j ', &
+ 'p i j ', &
+ 'q i j ', &
+ 'qcw i j ', &
+ 'qrn i j ', &
+ 'qci i j ', &
+ 'qsn i j ', &
+ 'qgr i j'
+ end select
+ end if
+ end if !rootproc
+
+ do k = kts, kte
+ if (rootproc) then
+ if ( abs(max_q(k)%value) < 1.e-30 ) max_q(k)%value = 0.0
+ if ( use_cv_w ) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(i4,5(f12.4,2i5),e12.4,2i5)') k, &
+ max_u(k), max_v(k), max_w(k), max_t(k), max_p(k), max_q(k)
+ case ( 1 )
+ write(unit=stats_unit, fmt='(i4,5(f12.4,2i5),3(e12.4,2i5))') k, &
+ max_u(k), max_v(k), max_w(k), max_t(k), max_p(k), max_q(k), &
+ max_qcw(k), max_qrn(k)
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(i4,5(f12.4,2i5),6(e12.4,2i5))') k, &
+ max_u(k), max_v(k), max_w(k), max_t(k), max_p(k), max_q(k), &
+ max_qcw(k), max_qrn(k), max_qci(k), max_qsn(k), max_qgr(k)
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),e12.4,2i5)') k, &
+ max_u(k), max_v(k), max_t(k), max_p(k), max_q(k)
+ case ( 1 )
+ write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),3(e12.4,2i5))') k, &
+ max_u(k), max_v(k), max_t(k), max_p(k), max_q(k), &
+ max_qcw(k), max_qrn(k)
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(i4,4(f12.4,2i5),6(e12.4,2i5))') k, &
+ max_u(k), max_v(k), max_t(k), max_p(k), max_q(k), &
+ max_qcw(k), max_qrn(k), max_qci(k), max_qsn(k), max_qgr(k)
+ end select
+ end if
#if (WRF_CHEM == 1)
select case ( chem_cv_options )
@@ -394,6 +529,9 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
qsnm=maxval(max_qsn(:)%value)
qgrm=maxval(max_qgr(:)%value)
end if
+ if (use_cv_w) then
+ wm=maxval(max_w(:)%value)
+ end if
end do
#if (WRF_CHEM == 1)
@@ -403,18 +541,31 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
#endif
if (rootproc) then
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(a,4(f12.4,10x),e12.4)') ' ALL', &
- um, vm, tm, pm, qm
- case ( 1 )
- write(unit=stats_unit, fmt='(a,4(f12.4,10x),3(e12.4,10x))') ' ALL', &
- um, vm, tm, pm, qm, qcwm, qrnm
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(a,4(f12.4,10x),6(e12.4,10x))') ' ALL', &
- um, vm, tm, pm, qm, qcwm, qrnm, qcim, qsnm, qgrm
- end select
-
+ if (use_cv_w) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a,5(f12.4,10x),e12.4)') ' ALL', &
+ um, vm, wm, tm, pm, qm
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a,5(f12.4,10x),3(e12.4,10x))') ' ALL', &
+ um, vm, wm, tm, pm, qm, qcwm, qrnm
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a,5(f12.4,10x),6(e12.4,10x))') ' ALL', &
+ um, vm, wm, tm, pm, qm, qcwm, qrnm, qcim, qsnm, qgrm
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a,4(f12.4,10x),e12.4)') ' ALL', &
+ um, vm, tm, pm, qm
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a,4(f12.4,10x),3(e12.4,10x))') ' ALL', &
+ um, vm, tm, pm, qm, qcwm, qrnm
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a,4(f12.4,10x),6(e12.4,10x))') ' ALL', &
+ um, vm, tm, pm, qm, qcwm, qrnm, qcim, qsnm, qgrm
+ end select
+ end if
#if (WRF_CHEM == 1)
select case ( chem_cv_options )
case ( 10 )
@@ -447,17 +598,31 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
end select
#endif
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(a/)') &
- ' Lvl u v t p q'
- case ( 1 )
- write(unit=stats_unit, fmt='(a/)') &
- ' Lvl u v t p q qcw qrn'
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(a/)') &
- ' Lvl u v t p q qcw qrn qci qsn qgr'
- end select
+ if ( use_cv_w ) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v w t p q'
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v w t p q qcw qrn'
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v w t p q qcw qrn qci qsn qgr'
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v t p q'
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v t p q qcw qrn'
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v t p q qcw qrn qci qsn qgr'
+ end select
+ end if
end if !rootproc
um = 0.0
@@ -515,26 +680,54 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
call da_proc_sum_real (qgrv)
end if
+ if ( use_cv_w ) then
+ wm = 0.0
+ do k = kts, kte
+ wv(k) = sum(grid%xa%w(its:ite,jts:jte,k))
+ end do
+ call da_proc_sum_real (wv)
+ end if
+
if (rootproc) then
do k = kts, kte
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(i4,4f12.4,e12.4)') k, &
- uv(k)*rij_g, vv(k)*rij_g, tv(k)*rij_g, &
- pv(k)*rij_g, qv(k)*rij_g
- case ( 1 )
- write(unit=stats_unit, fmt='(i4,4f12.4,3e12.4)') k, &
- uv(k)*rij_g, vv(k)*rij_g, tv(k)*rij_g, &
- pv(k)*rij_g, qv(k)*rij_g, &
- qcwv(k)*rij_g, qrnv(k)*rij_g
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(i4,4f12.4,6e12.4)') k, &
- uv(k)*rij_g, vv(k)*rij_g, tv(k)*rij_g, &
- pv(k)*rij_g, qv(k)*rij_g, &
- qcwv(k)*rij_g, qrnv(k)*rij_g, qciv(k)*rij_g, &
- qsnv(k)*rij_g, qgrv(k)*rij_g
- end select
-
+ if ( use_cv_w ) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(i4,5f12.4,e12.4)') k, &
+ uv(k)*rij_g, vv(k)*rij_g, wv(k)*rij_g, &
+ tv(k)*rij_g, pv(k)*rij_g, qv(k)*rij_g
+ case ( 1 )
+ write(unit=stats_unit, fmt='(i4,5f12.4,3e12.4)') k, &
+ uv(k)*rij_g, vv(k)*rij_g, wv(k)*rij_g, &
+ tv(k)*rij_g, pv(k)*rij_g, qv(k)*rij_g, &
+ qcwv(k)*rij_g, qrnv(k)*rij_g
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(i4,5f12.4,6e12.4)') k, &
+ uv(k)*rij_g, vv(k)*rij_g, wv(k)*rij_g, &
+ tv(k)*rij_g, pv(k)*rij_g, qv(k)*rij_g, &
+ qcwv(k)*rij_g, qrnv(k)*rij_g, qciv(k)*rij_g, &
+ qsnv(k)*rij_g, qgrv(k)*rij_g
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(i4,4f12.4,e12.4)') k, &
+ uv(k)*rij_g, vv(k)*rij_g, tv(k)*rij_g, &
+ pv(k)*rij_g, qv(k)*rij_g
+ case ( 1 )
+ write(unit=stats_unit, fmt='(i4,4f12.4,3e12.4)') k, &
+ uv(k)*rij_g, vv(k)*rij_g, tv(k)*rij_g, &
+ pv(k)*rij_g, qv(k)*rij_g, &
+ qcwv(k)*rij_g, qrnv(k)*rij_g
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(i4,4f12.4,6e12.4)') k, &
+ uv(k)*rij_g, vv(k)*rij_g, tv(k)*rij_g, &
+ pv(k)*rij_g, qv(k)*rij_g, &
+ qcwv(k)*rij_g, qrnv(k)*rij_g, qciv(k)*rij_g, &
+ qsnv(k)*rij_g, qgrv(k)*rij_g
+ end select
+ end if
+
#if (WRF_CHEM == 1)
select case ( chem_cv_options )
case ( 10 )
@@ -576,23 +769,42 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
qsnm = qsnm + qsnv(k)
qgrm = qgrm + qgrv(k)
end if
+ if ( use_cv_w ) then
+ wm=wm+wv(k)
+ end if
end do !k loop
end if !rootproc
if (rootproc) then
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(a,4f12.4,e12.4)') ' ALL', &
- um*rijk_g, vm*rijk_g, tm*rijk_g, pm*rijk_g, qm*rijk_g
- case ( 1 )
- write(unit=stats_unit, fmt='(a,4f12.4,3e12.4)') ' ALL', &
- um*rijk_g, vm*rijk_g, tm*rijk_g, pm*rijk_g, qm*rijk_g, &
- qcwm*rijk_g, qrnm*rijk_g
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(a,4f12.4,6e12.4)') ' ALL', &
- um*rijk_g, vm*rijk_g, tm*rijk_g, pm*rijk_g, qm*rijk_g, &
- qcwm*rijk_g, qrnm*rijk_g, qcim*rijk_g, qsnm*rijk_g, qgrm*rijk_g
- end select
+ if ( use_cv_w ) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(i4,6f12.4,e12.4)') k, &
+ um*rijk_g, vm*rijk_g, wm*rijk_g, tm*rijk_g, pm*rijk_g, qm*rijk_g
+ case ( 1 )
+ write(unit=stats_unit, fmt='(i4,6f12.4,3e12.4)') k, &
+ um*rijk_g, vm*rijk_g, wm*rijk_g, tm*rijk_g, pm*rijk_g, qm*rijk_g, &
+ qcwm*rijk_g, qrnm*rijk_g
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(i4,5f12.4,6e12.4)') k, &
+ um*rijk_g, vm*rijk_g, wm*rijk_g, tm*rijk_g, pm*rijk_g, qm*rijk_g, &
+ qcwm*rijk_g, qrnm*rijk_g, qcim*rijk_g, qsnm*rijk_g, qgrm*rijk_g
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a,4f12.4,e12.4)') ' ALL', &
+ um*rijk_g, vm*rijk_g, tm*rijk_g, pm*rijk_g, qm*rijk_g
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a,4f12.4,3e12.4)') ' ALL', &
+ um*rijk_g, vm*rijk_g, tm*rijk_g, pm*rijk_g, qm*rijk_g, &
+ qcwm*rijk_g, qrnm*rijk_g
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a,4f12.4,6e12.4)') ' ALL', &
+ um*rijk_g, vm*rijk_g, tm*rijk_g, pm*rijk_g, qm*rijk_g, &
+ qcwm*rijk_g, qrnm*rijk_g, qcim*rijk_g, qsnm*rijk_g, qgrm*rijk_g
+ end select
+ end if
#if (WRF_CHEM == 1)
select case ( chem_cv_options )
@@ -628,26 +840,43 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
end select
#endif
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(a/)') &
- ' Lvl u v t p q'
- case ( 1 )
- write(unit=stats_unit, fmt='(a/)') &
- ' Lvl u v t p q qcw qrn'
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(a/)') &
- ' Lvl u v t p q qcw qrn qci qsn qgr'
- end select
+ if ( use_cv_w ) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v w t p q'
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v w t p q qcw qrn'
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v w t p q qcw qrn qci qsn qgr'
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v t p q'
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v t p q qcw qrn'
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a/)') &
+ ' Lvl u v t p q qcw qrn qci qsn qgr'
+ end select
+ end if
+
end if !rootproc
um = 0.0
vm = 0.0
+ wm = 0.0
tm = 0.0
pm = 0.0
qm = 0.0
uv = 0.0
vv = 0.0
+ wv = 0.0
tv = 0.0
pv = 0.0
qv = 0.0
@@ -725,40 +954,86 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
call da_proc_sum_real (qsnv)
call da_proc_sum_real (qgrv)
end if
+
+ if ( use_cv_w ) then
+ do k = kts, kte
+ do j=jts,jte
+ do i=its,ite
+ wv(k) = wv(k) + grid%xa%w(i,j,k) * grid%xa%w(i,j,k)
+ end do
+ end do
+ end do
+ call da_proc_sum_real (wv)
+ end if
if (rootproc) then
do k = kts, kte
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(i4,4f12.4,e12.4)') k, &
- sqrt(uv(k)*rij_g), &
- sqrt(vv(k)*rij_g), &
- sqrt(tv(k)*rij_g), &
- sqrt(pv(k)*rij_g), &
- sqrt(qv(k)*rij_g)
- case ( 1 )
- write(unit=stats_unit, fmt='(i4,4f12.4,3e12.4)') k, &
- sqrt(uv(k)*rij_g), &
- sqrt(vv(k)*rij_g), &
- sqrt(tv(k)*rij_g), &
- sqrt(pv(k)*rij_g), &
- sqrt(qv(k)*rij_g), &
- sqrt(qcwv(k)*rij_g), &
- sqrt(qrnv(k)*rij_g)
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(i4,4f12.4,6e12.4)') k, &
- sqrt(uv(k)*rij_g), &
- sqrt(vv(k)*rij_g), &
- sqrt(tv(k)*rij_g), &
- sqrt(pv(k)*rij_g), &
- sqrt(qv(k)*rij_g), &
- sqrt(qcwv(k)*rij_g), &
- sqrt(qrnv(k)*rij_g), &
- sqrt(qciv(k)*rij_g), &
- sqrt(qsnv(k)*rij_g), &
- sqrt(qgrv(k)*rij_g)
- end select
-
+ if ( use_cv_w ) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(i4,5f12.4,e12.4)') k, &
+ sqrt(uv(k)*rij_g), &
+ sqrt(vv(k)*rij_g), &
+ sqrt(wv(k)*rij_g), &
+ sqrt(tv(k)*rij_g), &
+ sqrt(pv(k)*rij_g), &
+ sqrt(qv(k)*rij_g)
+ case ( 1 )
+ write(unit=stats_unit, fmt='(i4,5f12.4,3e12.4)') k, &
+ sqrt(uv(k)*rij_g), &
+ sqrt(vv(k)*rij_g), &
+ sqrt(wv(k)*rij_g), &
+ sqrt(tv(k)*rij_g), &
+ sqrt(pv(k)*rij_g), &
+ sqrt(qv(k)*rij_g), &
+ sqrt(qcwv(k)*rij_g), &
+ sqrt(qrnv(k)*rij_g)
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(i4,5f12.4,6e12.4)') k, &
+ sqrt(uv(k)*rij_g), &
+ sqrt(vv(k)*rij_g), &
+ sqrt(wv(k)*rij_g), &
+ sqrt(tv(k)*rij_g), &
+ sqrt(pv(k)*rij_g), &
+ sqrt(qv(k)*rij_g), &
+ sqrt(qcwv(k)*rij_g), &
+ sqrt(qrnv(k)*rij_g), &
+ sqrt(qciv(k)*rij_g), &
+ sqrt(qsnv(k)*rij_g), &
+ sqrt(qgrv(k)*rij_g)
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(i4,4f12.4,e12.4)') k, &
+ sqrt(uv(k)*rij_g), &
+ sqrt(vv(k)*rij_g), &
+ sqrt(tv(k)*rij_g), &
+ sqrt(pv(k)*rij_g), &
+ sqrt(qv(k)*rij_g)
+ case ( 1 )
+ write(unit=stats_unit, fmt='(i4,4f12.4,3e12.4)') k, &
+ sqrt(uv(k)*rij_g), &
+ sqrt(vv(k)*rij_g), &
+ sqrt(tv(k)*rij_g), &
+ sqrt(pv(k)*rij_g), &
+ sqrt(qv(k)*rij_g), &
+ sqrt(qcwv(k)*rij_g), &
+ sqrt(qrnv(k)*rij_g)
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(i4,4f12.4,6e12.4)') k, &
+ sqrt(uv(k)*rij_g), &
+ sqrt(vv(k)*rij_g), &
+ sqrt(tv(k)*rij_g), &
+ sqrt(pv(k)*rij_g), &
+ sqrt(qv(k)*rij_g), &
+ sqrt(qcwv(k)*rij_g), &
+ sqrt(qrnv(k)*rij_g), &
+ sqrt(qciv(k)*rij_g), &
+ sqrt(qsnv(k)*rij_g), &
+ sqrt(qgrv(k)*rij_g)
+ end select
+ end if
#if (WRF_CHEM == 1)
select case ( chem_cv_options )
case ( 10 )
@@ -805,27 +1080,50 @@ use module_state_description, only : num_chem, PARAM_FIRST_SCALAR
qcim=qcim+qciv(k)
qsnm=qsnm+qsnv(k)
end if
+ if ( use_cv_w ) then
+ wm=wm+wv(k)
+ end if
end do !k loop
end if !rootproc
if (rootproc) then
- select case ( cloud_cv_options )
- case ( 0 )
- write(unit=stats_unit, fmt='(a,4f12.4,e12.4)') ' ALL', &
- sqrt(um*rijk_g), sqrt(vm*rijk_g), sqrt(tm*rijk_g), &
- sqrt(pm*rijk_g), sqrt(qm*rijk_g)
- case ( 1 )
- write(unit=stats_unit, fmt='(a,4f12.4,3e12.4)') ' ALL', &
- sqrt(um*rijk_g), sqrt(vm*rijk_g), sqrt(tm*rijk_g), &
- sqrt(pm*rijk_g), sqrt(qm*rijk_g), &
- sqrt(qcwm*rijk_g), sqrt(qrnm*rijk_g)
- case ( 2, 3 )
- write(unit=stats_unit, fmt='(a,4f12.4,6e12.4)') ' ALL', &
- sqrt(um*rijk_g), sqrt(vm*rijk_g), sqrt(tm*rijk_g), &
- sqrt(pm*rijk_g), sqrt(qm*rijk_g), &
- sqrt(qcwm*rijk_g), sqrt(qrnm*rijk_g), sqrt(qcim*rijk_g), &
- sqrt(qsnm*rijk_g), sqrt(qgrm*rijk_g)
- end select
+ if ( use_cv_w ) then
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a,5f12.4,e12.4)') ' ALL', &
+ sqrt(um*rijk_g), sqrt(vm*rijk_g), sqrt(wm*rijk_g), &
+ sqrt(tm*rijk_g), sqrt(pm*rijk_g), sqrt(qm*rijk_g)
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a,5f12.4,3e12.4)') ' ALL', &
+ sqrt(um*rijk_g), sqrt(vm*rijk_g), sqrt(wm*rijk_g), &
+ sqrt(tm*rijk_g), sqrt(pm*rijk_g), sqrt(qm*rijk_g), &
+ sqrt(qcwm*rijk_g), sqrt(qrnm*rijk_g)
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a,5f12.4,6e12.4)') ' ALL', &
+ sqrt(um*rijk_g), sqrt(vm*rijk_g), sqrt(wm*rijk_g), &
+ sqrt(tm*rijk_g), sqrt(pm*rijk_g), sqrt(qm*rijk_g), &
+ sqrt(qcwm*rijk_g), sqrt(qrnm*rijk_g), sqrt(qcim*rijk_g), &
+ sqrt(qsnm*rijk_g), sqrt(qgrm*rijk_g)
+ end select
+ else
+ select case ( cloud_cv_options )
+ case ( 0 )
+ write(unit=stats_unit, fmt='(a,4f12.4,e12.4)') ' ALL', &
+ sqrt(um*rijk_g), sqrt(vm*rijk_g), sqrt(tm*rijk_g), &
+ sqrt(pm*rijk_g), sqrt(qm*rijk_g)
+ case ( 1 )
+ write(unit=stats_unit, fmt='(a,4f12.4,3e12.4)') ' ALL', &
+ sqrt(um*rijk_g), sqrt(vm*rijk_g), sqrt(tm*rijk_g), &
+ sqrt(pm*rijk_g), sqrt(qm*rijk_g), &
+ sqrt(qcwm*rijk_g), sqrt(qrnm*rijk_g)
+ case ( 2, 3 )
+ write(unit=stats_unit, fmt='(a,4f12.4,6e12.4)') ' ALL', &
+ sqrt(um*rijk_g), sqrt(vm*rijk_g), sqrt(tm*rijk_g), &
+ sqrt(pm*rijk_g), sqrt(qm*rijk_g), &
+ sqrt(qcwm*rijk_g), sqrt(qrnm*rijk_g), sqrt(qcim*rijk_g), &
+ sqrt(qsnm*rijk_g), sqrt(qgrm*rijk_g)
+ end select
+ end if
#if (WRF_CHEM == 1)
select case ( chem_cv_options )
diff --git a/var/da/da_statistics/da_statistics.f90 b/var/da/da_statistics/da_statistics.f90
index 90f3bca9df..d8aca611b9 100644
--- a/var/da/da_statistics/da_statistics.f90
+++ b/var/da/da_statistics/da_statistics.f90
@@ -11,7 +11,7 @@ module da_statistics
#if (WRF_CHEM == 1)
chem_cv_options, &
#endif
- obs_names, ob_vars, filename_len, cloud_cv_options
+ obs_names, ob_vars, filename_len, cloud_cv_options, use_cv_w
use da_define_structures, only : iv_type, maxmin_type, x_type, maxmin_field_type
use da_par_util1, only : da_proc_sum_real, da_proc_sum_int, da_proc_sum_ints
use da_par_util, only : da_proc_maxmin_combine
diff --git a/var/da/da_test/da_check_xtoy_adjoint.inc b/var/da/da_test/da_check_xtoy_adjoint.inc
index 6b966820ab..820897820c 100644
--- a/var/da/da_test/da_check_xtoy_adjoint.inc
+++ b/var/da/da_test/da_check_xtoy_adjoint.inc
@@ -338,6 +338,7 @@ print*,__FILE__,jte,' xa2_v.xa2_v for row= ',jte+1,sum(xa2_v(its:ite, jte+1, kts
if (iv%info(airep)%nlocal > 0) call da_check_xtoy_adjoint_airep (iv, y, partial_lhs, pertile_lhs)
if (iv%info(pilot)%nlocal > 0) call da_check_xtoy_adjoint_pilot (iv, y, partial_lhs, pertile_lhs)
if (iv%info(radar)%nlocal > 0) call da_check_xtoy_adjoint_radar (iv, y, partial_lhs, pertile_lhs)
+ if (iv%info(lightning)%nlocal> 0) call da_check_xtoy_adjoint_lightning(iv, y, partial_lhs, pertile_lhs)
if (iv%info(satem)%nlocal > 0) call da_check_xtoy_adjoint_satem (iv, y, partial_lhs, pertile_lhs)
if (iv%info(metar)%nlocal > 0) call da_check_xtoy_adjoint_metar (iv, y, partial_lhs, pertile_lhs)
if (iv%info(ships)%nlocal > 0) call da_check_xtoy_adjoint_ships (iv, y, partial_lhs, pertile_lhs)
diff --git a/var/da/da_test/da_check_xtoy_adjoint_lightning.inc b/var/da/da_test/da_check_xtoy_adjoint_lightning.inc
new file mode 100644
index 0000000000..bba61b3c13
--- /dev/null
+++ b/var/da/da_test/da_check_xtoy_adjoint_lightning.inc
@@ -0,0 +1,36 @@
+subroutine da_check_xtoy_adjoint_lightning(iv, y, adjtest_lhs, pertile_lhs)
+
+ !-----------------------------------------------------------------------
+ ! Purpose: TBD
+ ! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP)
+ !-----------------------------------------------------------------------
+
+ implicit none
+
+ type (iv_type), intent(in) :: iv ! obs. inc. vector (o-b).
+ type (y_type) , intent(inout) :: y ! y = h (xa)
+ real , intent(inout) :: adjtest_lhs, pertile_lhs
+
+ integer :: n, k ! Loop counter.
+
+ if (trace_use_dull) call da_trace_entry("da_check_xtoy_adjoint_lightning")
+
+ do n=iv%info(lightning)%n1, iv%info(lightning)%n2
+ if (iv%info(lightning)%proc_domain(1,n)) then
+ do k=1, iv%info(lightning)%levels(n)
+ adjtest_lhs = adjtest_lhs + (y%lightning(n)%div(k)/typical_div_rms)**2 + (y%lightning(n)%qv(k)/typical_q_rms)**2
+ end do
+ end if
+
+ do k=1, iv%info(lightning)%levels(n)
+ pertile_lhs = pertile_lhs + (y%lightning(n)%qv(k)/typical_div_rms)**2 + (y%lightning(n)%qv(k)/typical_q_rms)**2
+ y%lightning(n)%div(k) = y%lightning(n)%div(k)/typical_div_rms** 2
+ y%lightning(n)%qv(k) = y%lightning(n)%qv(k)/typical_q_rms** 2
+ end do
+ end do
+
+ if (trace_use_dull) call da_trace_exit("da_check_xtoy_adjoint_lightning")
+
+end subroutine da_check_xtoy_adjoint_lightning
+
+
diff --git a/var/da/da_test/da_get_y_lhs_value.inc b/var/da/da_test/da_get_y_lhs_value.inc
index 41f4d014c7..c88b035a3a 100644
--- a/var/da/da_test/da_get_y_lhs_value.inc
+++ b/var/da/da_test/da_get_y_lhs_value.inc
@@ -26,6 +26,7 @@ subroutine da_get_y_lhs_value (iv, y, partial_lhs, pertile_lhs, adj_ttl_lhs)
if (iv%info(airep)%nlocal > 0) call da_check_xtoy_adjoint_airep (iv, y, partial_lhs, pertile_lhs)
if (iv%info(pilot)%nlocal > 0) call da_check_xtoy_adjoint_pilot (iv, y, partial_lhs, pertile_lhs)
if (iv%info(radar)%nlocal > 0) call da_check_xtoy_adjoint_radar (iv, y, partial_lhs, pertile_lhs)
+ if (iv%info(lightning)%nlocal > 0) call da_check_xtoy_adjoint_lightning(iv, y, partial_lhs, pertile_lhs)
if (iv%info(satem)%nlocal > 0) call da_check_xtoy_adjoint_satem (iv, y, partial_lhs, pertile_lhs)
if (iv%info(metar)%nlocal > 0) call da_check_xtoy_adjoint_metar (iv, y, partial_lhs, pertile_lhs)
if (iv%info(ships)%nlocal > 0) call da_check_xtoy_adjoint_ships (iv, y, partial_lhs, pertile_lhs)
diff --git a/var/da/da_test/da_test.f90 b/var/da/da_test/da_test.f90
index a490164cfb..ba2711317c 100644
--- a/var/da/da_test/da_test.f90
+++ b/var/da/da_test/da_test.f90
@@ -24,7 +24,7 @@ module da_test
use da_control, only : trace_use,ierr, trace_use_dull, comm,global,stdout,rootproc, &
sfc_assi_options,typical_qrn_rms,typical_qci_rms,typical_qsn_rms,typical_qgr_rms,jcdfi_use, jcdfi_diag, &
typical_u_rms,typical_v_rms,typical_w_rms,typical_t_rms, typical_p_rms, typical_rain_rms, &
- typical_q_rms,typical_qcw_rms,print_detail_testing,typical_rh_rms, &
+ typical_q_rms,typical_qcw_rms,print_detail_testing,typical_rh_rms, typical_div_rms,&
fg_format, fg_format_wrf_arw_global, fg_format_wrf_arw_regional,fg_format_wrf_nmm_regional, &
typical_rf_rms,typical_rv_rms, typical_thickness_rms, typical_tb19v_rms,typical_tb37h_rms, &
typical_tb85h_rms,typical_tb37v_rms,typical_tb85v_rms,typical_tb22v_rms, &
@@ -35,10 +35,11 @@ module da_test
balance_geocyc, var4d, num_fgat_time,cv_options_hum_specific_humidity, &
cv_options_hum_relative_humidity, ids, ide, jds, jde, kds, kde, &
sound, sonde_sfc, mtgirs, synop, profiler, gpsref, gpspw, polaramv, geoamv, ships, metar, &
- satem, radar, ssmi_rv, ssmi_tb, ssmt1, ssmt2, airsr, pilot, airep, tamdar, tamdar_sfc, rain, &
+ satem, radar, lightning, ssmi_rv, ssmi_tb, ssmt1, ssmt2, airsr, pilot, airep, tamdar, tamdar_sfc, rain, &
bogus, buoy, qscat, pseudo, radiance, use_radarobs, use_ssmiretrievalobs,use_rainobs, &
- use_gpsrefobs, use_ssmt1obs, use_ssmitbobs, use_ssmt2obs, use_gpspwobs, &
+ use_gpsrefobs, use_ssmt1obs, use_ssmitbobs, use_ssmt2obs, use_gpspwobs, use_lightningobs, &
use_gpsztdobs, use_radar_rf, use_radar_rhv, use_rad, crtm_cloud, cloud_cv_options, &
+ use_lightning_qv, use_lightning_w, use_lightning_div, &
ids,ide,jds,jde,kds,kde, ims,ime,jms,jme,kms,kme, fgat_rain_flags, &
its,ite,jts,jte,kts,kte, ips,ipe,jps,jpe,kps,kpe, cv_options, cv_size, &
cloud_cv_options, cp, gas_constant, test_dm_exact, cv_size_domain, &
@@ -132,6 +133,7 @@ module da_test
#include "da_check_xtoy_adjoint_ships.inc"
#include "da_check_xtoy_adjoint_radar.inc"
#include "da_check_xtoy_adjoint_rain.inc"
+#include "da_check_xtoy_adjoint_lightning.inc"
#include "da_check_xtoy_adjoint_bogus.inc"
#include "da_check_xtoy_adjoint_sound.inc"
#include "da_check_xtoy_adjoint_sonde_sfc.inc"