#
#     ##################################################################
#     ##################################################################
#     ######                                                      ######
#     ######      Advanced Regional Prediction System (ARPS)      ######
#     ######                   Version 5.0                        ######
#     ######                                                      ######
#     ######                     Developed by                     ######
#     ######     Center for Analysis and Prediction of Storms     ######
#     ######                University of Oklahoma                ######
#     ######                                                      ######
#     ##################################################################
#     ##################################################################
#
#=======================================================================
#
#  PURPOSE: This makefile generates the EnKF executable and shared
#           library
#
#  AUTHOR:  Mingjing Tong
#           09/02/2002
#
#  Modification history:
#
#
#  OTHER INFORMATION:
#       See the makearps command.
#
#=======================================================================

#-----------------------------------------------------------------------
#
# Default shell
#
#-----------------------------------------------------------------------

# SHELL=/bin/csh

#-----------------------------------------------------------------------
#
# Default names of the loader and tar, can be replaced on the command
# line for other system
#
#-----------------------------------------------------------------------

FTN = f90
LDR = f90
CC  = cc
FTNMP = $(FTN)

ARPS_LD = $(LDR)


TAR = tar
AWK = awk
RM  = rm
LN  = ln

TOPDIR  =
BINDIR  = $(TOPDIR)
INCLDIR = $(TOPDIR)/include
LIBDIR  = $(TOPDIR)/lib
ARPSDIR = $(TOPDIR)/src/arps
ENKFDIR = $(TOPDIR)/src/arpsenkf
MODDIR  = $(TOPDIR)/modules
W2ADIR  = $(TOPDIR)/src/wrf2arps

#-----------------------------------------------------------------------
#
# Compiler Flag of Options. The default is for AIX Fortran xlf.
#
#-----------------------------------------------------------------------

FFLAGS =
CFLAGS =
LDFLAGS =

FREEFLAGS =

#-----------------------------------------------------------------------
#
# Dependencies
# Be aware that there is a tab below .mod.o line!
#-----------------------------------------------------------------------

.SUFFIXES: $(SUFFIXES) .f90

.f.o:
	$(FTN) $(FFLAGS) -c $<
.f90.o:
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c $<
.c.o:
	$(CC)  $(CFLAGS) -c $<
.F.o:
	$(CPP) $(CPPFLAGS) $< $(addsuffix .f90, $(basename $<));
	$(FTNMP) $(FFLAGS) $(FREEFLAGS) -c $(addsuffix .f90, $(basename $<))
.mod.o:     # .mod --> .o dependency dropped


#-----------------------------------------------------------------------
#
# Executable to be generated by this make file:
#
# ENKFEXE = arpsenkf   ENKF executable
#
# INITENSMBLEXE = initensmbl INITENSMBL executable
#
# OSSEDATAEXE = ossedata   OSSEDATA executable
#
# POSTINNOVEXE = postinnov   POSTINNOV executable
#
# ENDGNSEXE = endgns ENDNGS executable
#
# JFN = jfn  JFN executable (calculation of response funtion)
#
# TESTEXE = test  test program executable
#-----------------------------------------------------------------------

ENKFEXE   = arpsenkf
ENKFMPEXE = arpsenkf_mpi
INITENSMBLEXE = initensmbl
OSSEDATAEXE = ossedata
POSTINNOVEXE = postinnov
ENDGNSEXE = endgns
OBSSTDEXE = obsstd
JFNEXE = jfn
TESTEXE = test

#-----------------------------------------------------------------------
#
# Object library to be generated for ARPS solver:
#
# LIBARPS = libarps     ARPS shared library
# LIBENKF = libenkf     ARPSENKF shared library
# LIBADAS = libadas      ADAS shared library
#
#-----------------------------------------------------------------------

LIBARPS = libarps
LIBENKF = libenkf
LIBADAS = libadas
PRDLIB  = prdlib

#-----------------------------------------------------------------------
#
# List of ENKF Source Files:
#
#-----------------------------------------------------------------------

NETOBJ_ON  = wrf_ioncd.o  wrf_ncd_io.o
NETOBJ_OFF = wrf_ncd_io_no.o

NETOBJ  = $(NETOBJ_OFF)

ENKFMAINOBJ = arpsenkf.o

ENKFOBJS1 = enkfda.o covinflt.o stateest.o paraest.o \
            report.o enforcebc.o module_arps_dtaread.o


LIBENKFOBJS = enkfio3d.o enkflib.o initenkf.o initarpspara.o obsio.o  \
              radarlib.o obsoperator.o attenuate.o enkfhelp.o covariance.o \
              dummyenkf.o errscore.o innovation.o rmserror.o  \
              arpsarray.o global_module.o convert2radar.o dualpara.o \
              cvndataread.o radarInfo.o module_mpi_enkf.o     \
              cvndataensrf.o enkfio3d4wrf.o module_wrfio_api.o   \
              get_wrf_join.o get_wrf_split.o $(NETOBJ)

ENKFOBJS = $(LIBENKFOBJS) $(ENKFOBJS1) $(ENKFMAINOBJ)

INITENSMBLOBJ = initensmbl.o module_arps_dtaread.o

OSSEDATAOBJ = ossedata.o global_module.o convert2radar.o dualpara.o \
              cvndataensrf.o module_arps_dtaread.o                  \
              enkfio3d4wrf.o $(NETOBJ)

OBSSTDOBJ = obsstd.o global_module.o convert2radar.o dualpara.o

POSTINNOVOBJ = postinnov.o covinflt.o global_module.o convert2radar.o dualpara.o module_arps_dtaread.o

###ENDGNSOBJ = endgns.o global_module.o convert2radar.o dualpara.o module_arps_dtaread.o
ENDGNSOBJ = endgns.o $(ENKFOBJS1) $(LIBENKFOBJS)

JFNOBJ = jfn.o global_module.o convert2radar.o dualpara.o

TESTOBJ = test.o global_module.o convert2radar.o dualpara.o module_arps_dtaread.o

MODOBJS = $(MODDIR)/arps3darray.mod $(MODDIR)/arps4darray.mod  \
          $(MODDIR)/arpsarray.mod   $(MODDIR)/global_paraest.mod \
          $(MODDIR)/define_observation_conventional.mod \
          $(MODDIR)/module_mpi_enkf.mod $(MODDIR)/radarinfo.mod \
          $(MODDIR)/rdrobsarray.mod $(MODDIR)/rsa_table.mod \
          $(MODDIR)/dualpara.mod

#-----------------------------------------------------------------------
#
# Set Default
#
#-----------------------------------------------------------------------

default: $(ENKFEXE)

#-----------------------------------------------------------------------
#
# Compile and link ENKF model executable arpsenkf
#
#-----------------------------------------------------------------------

$(ENKFEXE): $(BINDIR)/$(ENKFEXE)
	-@$(RM) -f module_mpi_enkf.f90 module_mpi_enkf.o
	ls -l $(BINDIR)/$(ENKFEXE)

$(ENKFMPEXE): $(BINDIR)/$(ENKFMPEXE)
	-@$(RM) -f module_mpi_enkf.f90 module_mpi_enkf.o
	ls -l $(BINDIR)/$(ENKFMPEXE)

$(BINDIR)/$(ENKFEXE): $(ENKFOBJS) $(LIBDIR)/$(LIBARPS).a  \
                                  $(LIBDIR)/$(LIBADAS).a  \
                                  $(LIBDIR)/$(PRDLIB).a   \
                                  $(LIBDIR)/$(LIBENKF).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(ENKFOBJS)  \
                   $(LIBDIR)/$(LIBARPS).a $(LIBDIR)/$(LIBADAS).a \
                   $(LIBDIR)/$(PRDLIB).a   \
                   $(LIBS)

$(BINDIR)/$(ENKFMPEXE): $(ENKFOBJS) $(LIBDIR)/$(LIBARPS).a  \
                                  $(LIBDIR)/$(LIBADAS).a $(LIBDIR)/$(LIBENKF).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(ENKFOBJS)  \
                   $(LIBDIR)/$(LIBARPS).a $(LIBDIR)/$(LIBADAS).a $(LIBS)

#-----------------------------------------------------------------------
#
# Make other independent program: initensmbl, ossedata, postinnov,
#                                 endgns
#
#-----------------------------------------------------------------------

$(INITENSMBLEXE): $(BINDIR)/$(INITENSMBLEXE)
	ls -l $(BINDIR)/$(INITENSMBLEXE)

$(BINDIR)/$(INITENSMBLEXE): $(INITENSMBLOBJ) $(LIBDIR)/$(LIBENKF).a  \
                      $(LIBDIR)/$(LIBARPS).a $(LIBDIR)/$(LIBADAS).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(INITENSMBLOBJ) \
                   $(LIBDIR)/$(LIBENKF).a $(LIBDIR)/$(LIBARPS).a  \
                   $(LIBDIR)/$(LIBADAS).a $(LIBS)

$(OSSEDATAEXE): $(BINDIR)/$(OSSEDATAEXE)
	ls -l $(BINDIR)/$(OSSEDATAEXE)

$(BINDIR)/$(OSSEDATAEXE): $(OSSEDATAOBJ) $(LIBDIR)/$(LIBARPS).a  \
                                         $(LIBDIR)/$(LIBENKF).a  \
                                         $(LIBDIR)/$(LIBADAS).a  \
                                         $(LIBDIR)/$(PRDLIB).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(OSSEDATAOBJ)  \
                   $(LIBDIR)/$(LIBENKF).a $(LIBDIR)/$(LIBARPS).a \
                   $(LIBDIR)/$(LIBADAS).a $(LIBDIR)/$(PRDLIB).a  \
                   $(LIBS)

$(POSTINNOVEXE): $(BINDIR)/$(POSTINNOVEXE)
	ls -l $(BINDIR)/$(POSTINNOVEXE)

$(BINDIR)/$(POSTINNOVEXE): $(POSTINNOVOBJ) $(LIBDIR)/$(LIBARPS).a\
                                           $(LIBDIR)/$(LIBENKF).a\
                                           $(LIBDIR)/$(LIBADAS).a\
                                           $(LIBDIR)/$(PRDLIB).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(POSTINNOVOBJ) \
                   $(LIBDIR)/$(LIBENKF).a $(LIBDIR)/$(LIBARPS).a \
                   $(LIBDIR)/$(LIBADAS).a $(LIBDIR)/$(PRDLIB).a  \
                   $(LIBS)


$(ENDGNSEXE): $(BINDIR)/$(ENDGNSEXE)
	ls -l $(BINDIR)/$(ENDGNSEXE)

$(BINDIR)/$(ENDGNSEXE): $(ENDGNSOBJ) $(LIBDIR)/$(LIBARPS).a  \
                                     $(LIBDIR)/$(LIBENKF).a  \
                                     $(LIBDIR)/$(LIBADAS).a  \
                                     $(LIBDIR)/$(PRDLIB).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(ENDGNSOBJ)  \
                   $(LIBDIR)/$(LIBENKF).a $(LIBDIR)/$(LIBARPS).a \
                   $(LIBDIR)/$(LIBADAS).a $(LIBDIR)/$(PRDLIB).a  \
                   $(LIBS)

$(OBSSTDEXE): $(BINDIR)/$(OBSSTDEXE)
	ls -l $(BINDIR)/$(OBSSTDEXE)

$(BINDIR)/$(OBSSTDEXE): $(OBSSTDOBJ) $(LIBDIR)/$(LIBARPS).a  \
                                     $(LIBDIR)/$(LIBENKF).a  \
                                     $(LIBDIR)/$(LIBADAS).a  \
                                     $(LIBDIR)/$(PRDLIB).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(OBSSTDOBJ)  \
                   $(LIBDIR)/$(LIBARPS).a $(LIBDIR)/$(LIBENKF).a \
                   $(LIBDIR)/$(LIBADAS).a $(LIBDIR)/$(PRDLIB).a  \
                   $(LIBS)

$(JFNEXE): $(BINDIR)/$(JFNEXE)
	ls -l $(BINDIR)/$(JFNEXE)

$(BINDIR)/$(JFNEXE): $(JFNOBJ) $(LIBDIR)/$(LIBARPS).a  \
                                         $(LIBDIR)/$(LIBENKF).a  \
                                         $(LIBDIR)/$(LIBADAS).a  \
                                         $(LIBDIR)/$(PRDLIB).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(JFNOBJ)  \
                   $(LIBDIR)/$(LIBARPS).a $(LIBDIR)/$(LIBENKF).a \
                   $(LIBDIR)/$(LIBADAS).a $(LIBDIR)/$(PRDLIB).a  \
                   $(LIBS)

$(TESTEXE): $(BINDIR)/$(TESTEXE)
	ls -l $(BINDIR)/$(TESTEXE)

$(BINDIR)/$(TESTEXE): $(TESTOBJ) $(LIBDIR)/$(LIBARPS).a  \
                                         $(LIBDIR)/$(LIBENKF).a  \
                                         $(LIBDIR)/$(LIBADAS).a  \
                                         $(LIBDIR)/$(PRDLIB).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(TESTOBJ)  \
                   $(LIBDIR)/$(LIBENKF).a $(LIBDIR)/$(LIBARPS).a \
                   $(LIBDIR)/$(LIBADAS).a $(LIBDIR)/$(PRDLIB).a  \
                   $(LIBS)


#-----------------------------------------------------------------------
#
# Make ENKF shared library
#
#-----------------------------------------------------------------------

$(LIBENKF): $(LIBDIR)/$(LIBENKF).a

$(LIBDIR)/$(LIBENKF).a: $(LIBENKFOBJS)
	$(AR) $(ARFLAG) rc $(LIBDIR)/$(LIBENKF).a $(LIBENKFOBJS)

#-----------------------------------------------------------------------
#
# Remove the object code for individual programs
#
#-----------------------------------------------------------------------

clean: clean.arpsenkf clean.initensmbl clean.ossedata clean.postinnov  \
       clean.endgns clean.libenkf clean.obsstd clean.jfn clean.test

clean.arpsenkf:
	-$(RM) -f $(BINDIR)/$(ENKFEXE) $(BINDIR)/$(ENKFMPEXE) $(ENKFMAINOBJ) $(ENKFOBJS) \
                  $(LIBENKFOBJS) $(MODOBJS) module_mpi_enkf.f90        \
                  $(NETOBJ_ON) $(NETOBJ_OFF)

clean.initensmbl:
	-$(RM) -f $(BINDIR)/$(INITENSMBLEXE) $(INITENSMBLOBJ) $(LIBENKFOBJS)

clean.ossedata:
	-$(RM) -f $(BINDIR)/$(OSSEDATAEXE) $(OSSEDATAOBJ) $(LIBENKFOBJS) \
                  *.mod

clean.postinnov:
	-$(RM) -f $(BINDIR)/$(POSTINNOVEXE) $(POSTINNOVOBJ)

clean.endgns:
	-$(RM) -f $(BINDIR)/$(ENDGNSEXE) $(ENDGNSOBJ) $(LIBENKFOBJS)

clean.libenkf:
	-$(RM) -f $(LIBENKFOBJS) $(LIBDIR)/$(LIBENKF).a

clean.obsstd:
	-$(RM) -f $(BINDIR)/$(OBSSTDEXE) $(OBSSTDOBJ) *.mod

clean.jfn:
	-$(RM) -f $(BINDIR)/$(JFNEXE) $(JFNOBJ) *.mod

clean.test:
	-$(RM) -f $(BINDIR)/$(TESTEXE) $(TESTOBJ)
#-----------------------------------------------------------------------
#
# Object code dependency list:
#
#-----------------------------------------------------------------------

arpsenkf.o      : arpsenkf.f90  arpsarray.o global_module.o \
                  cvndataread.o module_mpi_enkf.o module_arps_dtaread.o \
                  module_wrfio_api.o \
                                 $(INCLDIR)/globcst.inc    \
                                 $(INCLDIR)/arpsenkf.inc  	   \
                                 $(INCLDIR)/indtflg.inc    \
                                 $(INCLDIR)/bndry.inc      \
                                 $(INCLDIR)/grid.inc       \
                                 $(INCLDIR)/phycst.inc

attenuate.o     : attenuate.f90  $(INCLDIR)/globcst.inc    \
                                 $(INCLDIR)/arpsenkf.inc       \
                                 $(INCLDIR)/grid.inc       \
                                 $(INCLDIR)/phycst.inc

covinflt.o      : covinflt.f90   $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/grid.inc    \
                                 $(INCLDIR)/arpsenkf.inc

covariance.o    : covariance.f90 radarInfo.o              \
                                 $(INCLDIR)/arpsenkf.inc      \
                                 $(INCLDIR)/globcst.inc   \
                                 $(INCLDIR)/grid.inc      \
                                 $(INCLDIR)/phycst.inc

enforcebc.o     : enforcebc.f90  $(INCLDIR)/globcst.inc   \
                                 $(INCLDIR)/phycst.inc    \
                                 $(INCLDIR)/bndry.inc     \
                                 $(INCLDIR)/arpsenkf.inc

enkfda.o        : enkfda.f90     radarInfo.o              \
                                 $(INCLDIR)/arpsenkf.inc  \
                                 $(INCLDIR)/globcst.inc   \
                                 $(INCLDIR)/mp.inc

enkfhelp.o      : enkfhelp.f90   arpsarray.o global_module.o \
                                 $(INCLDIR)/arpsenkf.inc \
                                 $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/grid.inc \
                                 $(INCLDIR)/mp.inc


enkfio3d.o      : enkfio3d.f90   arpsarray.o global_module.o  \
                  module_arps_dtaread.o                     \
                                 $(INCLDIR)/arpsenkf.inc    \
                                 $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/grid.inc    \
                                 $(INCLDIR)/phycst.inc  \
                                 $(INCLDIR)/indtflg.inc \
                                 $(INCLDIR)/mp.inc

enkflib.o       : enkflib.f90    $(INCLDIR)/arpsenkf.inc \
                                 $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/grid.inc

errscore.o      : errscore.f90   convert2radar.o  \
                                 $(INCLDIR)/arpsenkf.inc    \
                                 $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/grid.inc    \
                                 $(INCLDIR)/phycst.inc

initenkf.o      : initenkf.f90   $(INCLDIR)/arpsenkf.inc    \
                                 $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/grid.inc    \
                                 $(INCLDIR)/phycst.inc  \
                                 $(INCLDIR)/bndry.inc

initarpspara.o : initarpspara.f90  $(INCLDIR)/bndry.inc \
                                   $(INCLDIR)/exbc.inc \
                                   $(INCLDIR)/globcst.inc \
                                   $(INCLDIR)/phycst.inc \
                                   $(INCLDIR)/soilcst.inc \
                                   $(INCLDIR)/nudging.inc \
                                   $(INCLDIR)/radcst.inc \
                                   $(INCLDIR)/grid.inc \
                                   $(INCLDIR)/mp.inc \
                                   $(INCLDIR)/agricst.inc \
                                   $(INCLDIR)/nodal.inc

innovation.o    : innovation.f90 arpsarray.o  \
                                 $(INCLDIR)/arpsenkf.inc

obsio.o         : obsio.f90      cvndataread.o radarInfo.o  \
                                 $(INCLDIR)/arpsenkf.inc    \
                                 $(INCLDIR)/globcst.inc

obsoperator.o   : obsoperator.f90 radarInfo.o \
                                  $(INCLDIR)/arpsenkf.inc   \
                                  $(INCLDIR)/globcst.inc    \
                                  $(INCLDIR)/phycst.inc

paraest.o       : paraest.f90    $(INCLDIR)/arpsenkf.inc    \
                                 $(INCLDIR)/arpsenkf.inc    \
                                 $(INCLDIR)/globcst.inc     \
                                 $(INCLDIR)/phycst.inc      \
                                 $(INCLDIR)/grid.inc

stateest.o      : stateest.f90   $(INCLDIR)/arpsenkf.inc    \
                                 $(INCLDIR)/globcst.inc     \
                                 $(INCLDIR)/phycst.inc      \
                                 $(INCLDIR)/grid.inc        \
                                 module_mpi_enkf.o

radarlib.o      : radarlib.f90   $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/arpsenkf.inc    \
                                 $(INCLDIR)/grid.inc    \
                                 $(INCLDIR)/arpsenkfic.inc \
                                 module_mpi_enkf.o

report.o        : report.f90     $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/arpsenkf.inc


rmserror.o       : rmserror.f90  $(INCLDIR)/arpsenkf.inc  \
                                 $(INCLDIR)/globcst.inc

initensmbl.o     : initensmbl.f90 arpsarray.o global_module.o \
                                  $(INCLDIR)/arpsenkf.inc    \
                                  $(INCLDIR)/arpsenkf.inc    \
                                  $(INCLDIR)/globcst.inc \
                                  $(INCLDIR)/grid.inc    \
                                  $(INCLDIR)/mp.inc

ossedata.o       : ossedata.f90   convert2radar.o  radarInfo.o\
                                  arpsarray.o global_module.o  \
                                  $(INCLDIR)/globcst.inc \
                                  $(INCLDIR)/arpsenkf.inc    \
                                  $(INCLDIR)/grid.inc    \
                                  $(INCLDIR)/phycst.inc  \
                                  $(INCLDIR)/mp.inc

postinnov.o      : postinnov.f90 arpsarray.o global_module.o \
                                 $(INCLDIR)/globcst.inc    \
                                 $(INCLDIR)/arpsenkf.inc  	   \
                                 $(INCLDIR)/indtflg.inc    \
                                 $(INCLDIR)/bndry.inc      \
                                 $(INCLDIR)/grid.inc       \
                                 $(INCLDIR)/phycst.inc


endgns.o         : endgns.f90     convert2radar.o radarInfo.o  \
                                  arpsarray.o  global_module.o  \
                                  $(INCLDIR)/globcst.inc \
                                  $(INCLDIR)/grid.inc    \
                                  $(INCLDIR)/phycst.inc  \
                                  $(INCLDIR)/arpsenkf.inc    \
                                  $(INCLDIR)/mp.inc

obsstd.o         : obsstd.f90     convert2radar.o \
                                  arpsarray.o \
                                  $(INCLDIR)/globcst.inc \
                                  $(INCLDIR)/grid.inc \
                                  $(INCLDIR)/phycst.inc \
                                  $(INCLDIR)/arpsenkf.inc

jfn.o            : jfn.f90        convert2radar.o \
                                  arpsarray.o  \
                                  global_module.o \
                                  $(INCLDIR)/globcst.inc    \
                                  $(INCLDIR)/arpsenkf.inc  	   \
                                  $(INCLDIR)/grid.inc    \
                                  $(INCLDIR)/phycst.inc  \
                                  $(INCLDIR)/mp.inc

test.o           : test.f90       convert2radar.o  dualpara.o   \
                                  arpsarray.o global_module.o  \
                                  $(INCLDIR)/globcst.inc \
                                  $(INCLDIR)/arpsenkf.inc    \
                                  $(INCLDIR)/grid.inc    \
                                  $(INCLDIR)/phycst.inc  \
                                  $(INCLDIR)/mp.inc

arpsarray.o: arpsarray.f90
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c arpsarray.f90

convert2radar.o: $(TOPDIR)/src/radaremul/convert2radar.f90 \
                 dualpara.o global_module.o \
                 $(INCLDIR)/globcst.inc \
                 $(INCLDIR)/phycst.inc
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c $<

dualpara.o: $(TOPDIR)/src/radaremul/dualpara.f90 global_module.o
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c $<

radarInfo.o: radarInfo.f90
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c radarInfo.f90

global_module.o: $(TOPDIR)/src/radaremul/global_module.f90
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c $<

dummyenkf.o      : dummyenkf.f90
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c $<

cvndataensrf.o      : cvndataensrf.f90 arpsarray.o \
                                 $(INCLDIR)/arpsenkf.inc \
                                 $(INCLDIR)/globcst.inc \
                                 $(INCLDIR)/grid.inc \
                                 $(INCLDIR)/mp.inc
cvndataread.o: cvndataread.f90
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c cvndataread.f90

module_arps_dtaread.o : $(ARPSDIR)/module_arps_dtaread.f90
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c $<

enkfio3d4wrf.o : enkfio3d4wrf.f90 module_wrfio_api.o          \
                 $(INCLDIR)/globcst.inc $(INCLDIR)/grid.inc   \
                 $(INCLDIR)/indtflg.inc $(INCLDIR)/phycst.inc \
                 $(INCLDIR)/bndry.inc   $(INCLDIR)/exbc.inc   \
                 $(INCLDIR)/mp.inc
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c enkfio3d4wrf.f90

wrf_ioncd.o : $(W2ADIR)/wrf_ioncd.f90
	$(FTN) $(FFLAGS) $(FREEFLAGS) -o $@ -c $<

wrf_ncd_io_no.o : wrf_ncd_io_no.f90

#-----------------------------------------------------------------------
#
# Object code dependency for shared library:
#
#-----------------------------------------------------------------------
