####################################################
#
#    Makefile for the Fortran 90 program
#
####################################################
#
#
####################################################
#
#    Declaration of Variables
#
####################################################
#
.SILENT:
#
STDROOT      = ${PWD}
SRCDIR       = $(STDROOT)/src
OBJDIR       = $(STDROOT)/obj
WORKDIR      = $(STDROOT)/work
#
#
#  change compiler, options and libraries according to your needs
#
#########
#  NEC SX
#########
#    Compiler directives:
#
# compiler call



F90          = sxmpif90 -ftrace -sx9 -c -I $(SRCDIR) -I/e/uhome/hanlauf/SX/include  -V -w     \
               -Wf"-pvctl vr256 noassume loopcnt=2000000 vwork=stack vworksz=100M novlchk noverrchk chgpwr"   \
               -Wf,"-M setall fxovf flovf inv zdiv" \
               -Wf"-L fmtlist transform summary map" \
               -Wf"-s -msg b"                        \
#	       -Wf"-O fullmsg"
### very slow, but showing array bound violations: Subscript error -eC

F902         = sxmpif90 -ftrace -sx9 -c -I $(SRCDIR) -I/e/uhome/hanlauf/SX/include  -V -w    \ 
               -Wf"-pvctl vr256 noassume loopcnt=2000000 vwork=stack vworksz=100M novlchk noverrchk chgpwr"      \
               -Wf"-M setall fxovf flovf inv zdiv"



#F90            = sxmpif90 -sx9 -ftrace -c -I $(SRCDIR) -I/e/uhome/hanlauf/SX/include  -V -w                \
#              -Wf "loopcnt=2000000 vwork=stack vworksz=100M novlchk noverrchk chgpwr"       \
#               -Wf"-pvctl vr256 noassume loopcnt=2000000 vwork=stack vworksz=100M novlchk noverrchk chgpwr"       \
#               -Wf,"-M setall fxovf flovf inv zdiv"  \
#               -Wf"-L fmtlist transform summary map" \
#               -Wf"-s -msg b"  ### very slow, but showing array bound violations: Subscript error -eC
#
## No vectorization messages; but complete inline expansions (current application will crash, but it's
## useful for compile-time debugging)

F90db          = sxmpif90 -sx9 -c -I $(SRCDIR) -I/e/uhome/hanlauf/SX/include  -V -w                                           \
               -Wf"-O nomsg"                                                                                            \
               -Wf"-pvctl nomsg vr256 noassume loopcnt=2000000 vwork=stack vworksz=100M novlchk noverrchk chgpwr"       \
               -Wf,"-M setall fxovf flovf inv zdiv"

#F902         = sxmpif90 -sx9 -c -I $(SRCDIR) -I/e/uhome/hanlauf/SX/include  -NV -w                               \
#               -Wf"-O nomsg -pvctl nomsg vr256 noassume loopcnt=2000000 vwork=stack vworksz=100M novlchk noverrchk chgpwr"      \
#               -Wf"-M setall fxovf flovf inv zdiv"

# loader call
LDPAR        = sxmpif90
#
PROGRAM      = lmparbin
#
# options used for compilation

# options for debugging or profiling
# profiling: add -ftrace
#COMFLG      = -g -eC -Wf"-init stack=nan heap=nan"

COMFLG       = -Cvopt -Pstack                                                                                           \
               -pi auto exp=udsdx,udsdx_up5_xy,coe_th,cu_cond                                                           \
                 expin=../src/numeric_utilities_rk.f90                                                                  \
                 expin=../src/numeric_utilities.f90                                                                     \
                      noexp=mean_over_box,mean_cov_over_box,vert_avg,interpol_sl_trilin,proplab,two_elements            \
                 expin=../src/src_radiation.f90                                                                         \
                 expin=../src/utilities.f90
COMFLG2      = $(COMFLG)
COMFLG3      = -Cvsafe -Pstack
COMFLG4      =
#
# options used for linking
LDFLG       = -ftrace
#-Wl,"-d -m -sum" -Wl,"-f nan"
#
# Archive maintainer
AR          = sxar
LIB          = /usr/local/pkg-sx/libdwd/lib/libgrib1.a    \
               /usr/local/pkg-sx/libdwd/lib/libmisc.a \
               /usr/local/pkg-sx/for0adm/lib/libRTTOV7_synsat_vector.a \
                /e/uhome/hanlauf/SX/lib/libnetcdf.a
#
#########
#  IBM
#########
#
# compiler
#F90          = mpxlf90_r -c -g -qnolm -qsuffix=f=f90:cpp=F90 -qmaxmem=-1 \
#              -I /rhome/for0adm/include \
#              -WF,-DFPEABORT
#              -qlanglvl=90std 
#             -qflttrap=overflow:zerodivide:invalid:enable -qsigtrap
#
# linker
#LDPAR        = mpxlf90_r
#LDSEQ        = xlf_r
#
#
# standard binary
#PROGRAM      = lmparbin
#
# compile-flags
#COMFLG       = -O3 -qstrict -qarch=pwr5 -qtune=pwr5
#COMFLG2      = -O3 -qstrict -qarch=pwr5 -qtune=pwr5
#COMFLG3      = -O3 -qstrict -qarch=pwr5 -qtune=pwr5
#COMFLG4      = -O3 -qstrict -qarch=pwr5 -qtune=pwr5
#
# link-flags
#LDFLG        = -g -lmass -bmaxdata:2048000000
#              -bloadmap:lm.map -bnoquiet
#
# debug binary
#PROGRAM      = lmpar_debug
#
# debug-compile-flags
#COMFLG       = -qfullpath -qinitauto=ff -qcheck -qflttrap=OV:ZERO:INV:EN
#COMFLG2      = -qfullpath -qinitauto=ff -qcheck -qflttrap=OV:ZERO:INV:EN
#COMFLG3      = -qfullpath -qinitauto=ff -qcheck -qflttrap=OV:ZERO:INV:EN
#COMFLG4      = -qfullpath -qinitauto=ff -qcheck -qflttrap=OV:ZERO:INV:EN
#
# debug-link-flags
#LDFLG        = -g -qfullpath -lmass -bmaxdata:2048000000 -bnoobjreorder
#
#
# special flags
#COMFLGVAMP   = -I/usr/local/vampir40/include
#COMFLGHPM    = -I/uhome/uschaett/lib/ACTC_pmtoolkit_beta/HPM_V2.2/include -qsuffix=cpp=F90
#
#LIB          = /rhome/routarz/libdwd/lib/libgrib1.a                        \
#               /rhome/routarz/libdwd/lib/libmisc.a                         \
#               /rhome/for0adm/lib/libFPE_trap.a                            \
#               /uhome/uschaett/lib/libRTTOV7_synsat_vector.a                      \
#               /rhome/for0adm/lib/libnetcdf.a
#LIB          =  /uhome/uschaett/lib/libgrib1.a
#               /rhome/for0adm/lib/libRTTOV7.a
#
#########
#  NEC SX6
#########
#    Compiler directives:
#
# compiler call
#F90          = sxmpif90  -c -I $(SRCDIR) -I/uhome/hanlauf/NEC/include
#
# loader call
LDPAR        = sxmpif90
#
#PROGRAM      = lmparbin
#
# options used for compilation
#COMFLG       = -p -V -R5 \
#COMFLG       = -p -ftrace -V -R5
#              -Wf"-s -msg b" -Cvopt \
#              -Wf"-L fmtlist transform summary map" \
#              -pi auto exp=udsdx,udsdx_up5_xy,coe_th,cu_cond \
#                expin=../src/numeric_utilities_rk.f90 \
#                expin=../src/numeric_utilities.f90 noexp=mean_over_box,mean_cov_over_box,vert_avg,interpol_sl_trilin \
#                expin=../src/src_radiation.f90 \
#                expin=../src/utilities.f90 \
#              -Wf"-pvctl fullmsg vr256 noassume loopcnt=100000 \
#                         vwork=stack vworksz=100M \
#                         novlchk noverrchk chgpwr"
#COMFLG2      = $(COMFLG)
#COMFLG3      = $(COMFLG)
#COMFLG4      = $(COMFLG)
#
# options for debugging purposes. This may slow down your program
#COMFLG      = -g -eC -Wf"-init stack=nan heap=nan"
#
# options used for linking
#LDFLG       = -p -ftrace
#LDFLG       = -p
#
# Archive maintainer
#AR          = sxar
#LIB          = /uhome/routarz/libdwd/lib/libgrib1.a    \
#               /uhome/routarz/libdwd/lib/libmisc.a     \
#               /uhome/hanlauf/NEC/lib/libnetcdf.a
#               /rhome/for0adm/lib/libnetcdf.a
#
#########
#  Portland Group
#########
#
#F90          = pgf90 -c -Mpreprocess
#F90          = mpi90 -c -Mpreprocess
#
#COMFLG       = -fast -fastsse -O3 -Mvect -Mcray=pointer
#COMFLG2      = -fast -fastsse -O3 -Mvect -Mcray=pointer
#COMFLG3      = -fast -fastsse -O3 -Mvect -Mcray=pointer
#COMFLG4      = -fast -fastsse -O3 -Mvect -Mcray=pointer
#
# linker
#LDPAR        = mpi90
#LDSEQ        = pgf90
#LDFLG        = 
#
# standard binary
#PROGRAM      = lmparbin
#
#LIB          = 
#
#########
#  Intel
#########
#
#F90          = ifort -c
#
#COMFLG       = -O2
#COMFLG2      = -O2
#COMFLG3      = -O2
#COMFLG4      = -O2
#
# linker
#LDPAR        =
#LDSEQ        = ifort -static
#
# standard binary
#PROGRAM      = lmseqbin
#
#LIB          =  /home/uschaett/NEW_PACKAGE/DWD-libgrib1_060516/libgrib1.a
#
#########
#  SGI
#########
#
#F90          = f90
#COMFLG       = -c -64 -mips4 -r10000 -O2 -OPT:Olimit=0
#COMFLG2      = -c -64 -mips4 -r10000 -O2 -OPT:Olimit=0
#COMFLG3      = -c -64 -mips4 -r10000 -O1 -OPT:Olimit=0
#COMFLG4      = -c -64 -mips4 -r10000 -O1 -OPT:Olimit=0
#COMFLGDEB    = -c -64 -mips4 -r10000 -g
#
#
#LDPAR        = f90
#LDSEQ        = f90
#LDFLG        = -64 -mips4 -r10000
#
#
#LIB          = /rhome/routarz/libdwd-64.a
#
####################################################
#
#     Declaration of the Object Files
#
####################################################
#
DATAOBJ      =   $(OBJDIR)/data_1d_global.o          \
                 $(OBJDIR)/data_constants.o          \
                 $(OBJDIR)/data_convection.o         \
                 $(OBJDIR)/data_fields.o             \
                 $(OBJDIR)/data_flake.o              \
                 $(OBJDIR)/data_gscp.o               \
                 $(OBJDIR)/data_io.o                 \
                 $(OBJDIR)/data_lheat_nudge.o        \
                 $(OBJDIR)/data_lhn_diag.o           \
                 $(OBJDIR)/data_modelconfig.o        \
                 $(OBJDIR)/data_nudge_all.o          \
                 $(OBJDIR)/data_nudge_gather.o       \
                 $(OBJDIR)/data_nudge_local.o        \
                 $(OBJDIR)/data_nudge_spread.o       \
                 $(OBJDIR)/data_obs_process.o        \
                 $(OBJDIR)/data_obs_record.o         \
                 $(OBJDIR)/data_parallel.o           \
                 $(OBJDIR)/data_parameters.o         \
                 $(OBJDIR)/data_radiation.o          \
                 $(OBJDIR)/data_runcontrol.o         \
                 $(OBJDIR)/data_satellites.o         \
                 $(OBJDIR)/data_soil.o               \
                 $(OBJDIR)/data_turbulence.o         \
                 $(OBJDIR)/data_lightning.o
#
UTILOBJ      =   $(OBJDIR)/environment.o             \
                 $(OBJDIR)/io_utilities.o            \
                 $(OBJDIR)/meteo_utilities.o         \
                 $(OBJDIR)/numeric_utilities.o       \
                 $(OBJDIR)/numeric_utilities_rk.o    \
                 $(OBJDIR)/parallel_utilities.o      \
                 $(OBJDIR)/pp_utilities.o            \
                 $(OBJDIR)/time_utilities.o          \
                 $(OBJDIR)/utilities.o
#
EXTOBJ        =  $(OBJDIR)/dfi_initialization.o      \
                 $(OBJDIR)/hori_diffusion.o          \
                 $(OBJDIR)/fast_waves.o              \
                 $(OBJDIR)/fast_waves_rk.o           \
                 $(OBJDIR)/near_surface.o            \
                 $(OBJDIR)/organize_assimilation.o   \
                 $(OBJDIR)/organize_data.o           \
                 $(OBJDIR)/organize_diagnosis.o      \
                 $(OBJDIR)/organize_dynamics.o       \
                 $(OBJDIR)/organize_eps.o            \
                 $(OBJDIR)/organize_physics.o        \
                 $(OBJDIR)/organize_satellites.o     \
                 $(OBJDIR)/semi_implicit.o           \
                 $(OBJDIR)/slow_tendencies.o         \
                 $(OBJDIR)/lmorg.o
#
SRCOBJ       =   $(OBJDIR)/src_2timelevel.o          \
                 $(OBJDIR)/src_advection_rk.o        \
                 $(OBJDIR)/src_allocation.o          \
                 $(OBJDIR)/src_artifdata.o           \
                 $(OBJDIR)/src_conv_tiedtke.o        \
                 $(OBJDIR)/src_conv_kainfri.o        \
                 $(OBJDIR)/src_conv_shallow.o        \
                 $(OBJDIR)/src_correl_cutoff.o       \
                 $(OBJDIR)/src_diagbudget.o          \
                 $(OBJDIR)/src_flake.o               \
                 $(OBJDIR)/src_gather_info.o         \
                 $(OBJDIR)/src_gridpoints.o          \
                 $(OBJDIR)/src_gscp.o                \
                 $(OBJDIR)/src_input.o               \
                 $(OBJDIR)/src_integrals.o           \
                 $(OBJDIR)/src_flake_sfcflx.o        \
                 $(OBJDIR)/src_leapfrog.o            \
                 $(OBJDIR)/src_lheat_nudge.o         \
                 $(OBJDIR)/src_lheating.o            \
                 $(OBJDIR)/src_lightning.o            \
                 $(OBJDIR)/src_meanvalues.o         \
                 $(OBJDIR)/src_mult_local.o          \
                 $(OBJDIR)/src_mult_spread.o         \
                 $(OBJDIR)/src_nudging.o             \
                 $(OBJDIR)/src_obs_1dvar_org.o       \
                 $(OBJDIR)/src_obs_proc_air.o        \
                 $(OBJDIR)/src_obs_proc_aof.o        \
                 $(OBJDIR)/src_obs_proc_cdf.o        \
                 $(OBJDIR)/src_obs_proc_util.o       \
                 $(OBJDIR)/src_obs_processing.o      \
                 $(OBJDIR)/src_output.o              \
                 $(OBJDIR)/src_radiation.o           \
                 $(OBJDIR)/src_relaxation.o          \
                 $(OBJDIR)/src_runge_kutta.o         \
                 $(OBJDIR)/src_sat_tbs.o             \
                 $(OBJDIR)/src_setup.o               \
                 $(OBJDIR)/src_setup_vartab.o        \
                 $(OBJDIR)/src_sfcana.o              \
                 $(OBJDIR)/src_sing_local.o          \
                 $(OBJDIR)/src_sing_spread.o         \
                 $(OBJDIR)/src_slow_tendencies_rk.o  \
                 $(OBJDIR)/src_soil.o                \
                 $(OBJDIR)/src_soil_multlay.o        \
                 $(OBJDIR)/src_spectral_nudging.o    \
                 $(OBJDIR)/src_sso.o                 \
                 $(OBJDIR)/src_turbdiff.o            \
                 $(OBJDIR)/src_turbulence.o          
#
PUBLICUTILS =    $(OBJDIR)/mpe_io.o                  \
                 $(OBJDIR)/dummy_db.o
#                $(OBJDIR)/dummy_netcdf.o
#                $(OBJDIR)/dummy_rttov.o
#
####################################################
#
#     Actions that can be performed
#
####################################################
#
exe:    parexe
#
parexe:  $(DATAOBJ) $(PUBLICUTILS) $(UTILOBJ) $(EXTOBJ) $(SRCOBJ)
	echo linking parallel program
	( $(LDPAR) $(LDFLG) -o $(PROGRAM) $(DATAOBJ) $(UTILOBJ) $(EXTOBJ) \
                                    $(PUBLICUTILS) $(SRCOBJ) $(LIB) )
#
vampir:  addmods / $(DATAOBJ) $(PUBLICUTILS) $(UTILOBJ) $(EXTOBJ) $(SRCOBJ)
	echo linking parallel program
	( $(LDPAR) $(LDFLG) -o lmpar_vampir $(DATAOBJ) $(UTILOBJ) $(EXTOBJ) \
                                    $(PUBLICUTILS) $(SRCOBJ) $(LIB)     \
              -L/usr/local/vampir40/lib -lVT -lld  )
#
hpmlib:  addmods / $(DATAOBJ) $(PUBLICUTILS) $(UTILOBJ) $(EXTOBJ) $(SRCOBJ)
	echo linking parallel program
	( $(LDPAR) $(LDFLG) -o lmpar_hpmlib $(DATAOBJ) $(UTILOBJ) $(EXTOBJ) \
                                    $(PUBLICUTILS) $(SRCOBJ) $(LIB)     \
            -L/uhome/uschaett/lib/ACTC_pmtoolkit_beta/HPM_V2.2/lib      \
            -l pmapi -l hpm -l m )
#
seqexe:  addmods / $(DATAOBJ) $(PUBLICUTILS) $(UTILOBJ) $(EXTOBJ) $(SRCOBJ) \
         $(OBJDIR)/dummy_mpi.o
	echo linking sequential program
	( $(LDSEQ) $(LDFLG) -o $(PROGRAM) $(DATAOBJ) $(PUBLICUTILS)         \
         $(UTILOBJ) $(OBJDIR)/dummy_mpi.o $(EXTOBJ) $(SRCOBJ) $(LIB) )
#
addmods:
	for DATEI in `ls -x $(WORKDIR)` ; do \
	   cp -p $(WORKDIR)/$${DATEI}  $(SRCDIR) ; \
	done
#
clean:
	echo cleaning up
	rm -f $(PROGRAM)
	rm -f $(OBJDIR)/*.o
	rm -f $(OBJDIR)/*.T
	rm -f $(OBJDIR)/*.mod
	rm -f $(OBJDIR)/*.lst
#
####################################################
#
#     Dependencies of the Data Modules
#
####################################################
#
$(OBJDIR)/data_1d_global.o:            $(SRCDIR)/data_1d_global.f90           \
           $(OBJDIR)/data_parameters.o
	echo compiling data_1d_global.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_1d_global.f90 )
#
$(OBJDIR)/data_constants.o:            $(SRCDIR)/data_constants.f90           \
           $(OBJDIR)/data_parameters.o
	echo compiling data_constants.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_constants.f90 )
#
$(OBJDIR)/data_convection.o:           $(SRCDIR)/data_convection.f90         \
           $(OBJDIR)/data_parameters.o
	echo compiling data_convection.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_convection.f90 )
#
$(OBJDIR)/data_fields.o:               $(SRCDIR)/data_fields.f90              \
           $(OBJDIR)/data_parameters.o
	echo compiling data_fields.f90      
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_fields.f90 )
#
$(OBJDIR)/data_flake.o:                $(SRCDIR)/data_flake.f90               \
           $(OBJDIR)/data_parameters.o
	echo compiling data_flake.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_flake.f90 )
#
$(OBJDIR)/data_gscp.o:                 $(SRCDIR)/data_gscp.f90               \
           $(OBJDIR)/data_parameters.o
	echo compiling data_gscp.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_gscp.f90 )
#
$(OBJDIR)/data_io.o:                   $(SRCDIR)/data_io.f90                  \
           $(OBJDIR)/data_parameters.o
	echo compiling data_io.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_io.f90 )
#
$(OBJDIR)/data_lheat_nudge.o:          $(SRCDIR)/data_lheat_nudge.f90         \
           $(OBJDIR)/data_parameters.o
	echo compiling data_lheat_nudge.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_lheat_nudge.f90 )
#
$(OBJDIR)/data_lhn_diag.o:             $(SRCDIR)/data_lhn_diag.f90            \
           $(OBJDIR)/data_parameters.o
	echo compiling data_lhn_diag.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_lhn_diag.f90 )
#
$(OBJDIR)/data_modelconfig.o:          $(SRCDIR)/data_modelconfig.f90         \
           $(OBJDIR)/data_parameters.o
	echo compiling data_modelconfig.f90 
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_modelconfig.f90 )
#
$(OBJDIR)/data_nudge_all.o:            $(SRCDIR)/data_nudge_all.f90           \
           $(OBJDIR)/data_parameters.o
	echo compiling data_nudge_all.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_nudge_all.f90 )
#
$(OBJDIR)/data_nudge_gather.o:         $(SRCDIR)/data_nudge_gather.f90        \
           $(OBJDIR)/data_parameters.o
	echo compiling data_nudge_gather.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_nudge_gather.f90 )
#
$(OBJDIR)/data_nudge_local.o:          $(SRCDIR)/data_nudge_local.f90         \
           $(OBJDIR)/data_parameters.o
	echo compiling data_nudge_local.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_nudge_local.f90 )
#
$(OBJDIR)/data_nudge_spread.o:         $(SRCDIR)/data_nudge_spread.f90        \
           $(OBJDIR)/data_parameters.o
	echo compiling data_nudge_spread.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_nudge_spread.f90 )
#
$(OBJDIR)/data_obs_process.o:          $(SRCDIR)/data_obs_process.f90         \
           $(OBJDIR)/data_parameters.o
	echo compiling data_obs_process.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_obs_process.f90 )
#
$(OBJDIR)/data_obs_record.o:           $(SRCDIR)/data_obs_record.f90          \
           $(OBJDIR)/data_parameters.o
	echo compiling data_obs_record.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_obs_record.f90 )
#
$(OBJDIR)/data_parallel.o:             $(SRCDIR)/data_parallel.f90            \
           $(OBJDIR)/data_parameters.o
	echo compiling data_parallel.f90  
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_parallel.f90 )
#
$(OBJDIR)/data_parameters.o:           $(SRCDIR)/data_parameters.f90
	echo compiling data_parameters.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_parameters.f90 )
#
$(OBJDIR)/data_radiation.o:            $(SRCDIR)/data_radiation.f90           \
           $(OBJDIR)/data_parameters.o
	echo compiling data_radiation.f90   
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_radiation.f90 )
#
$(OBJDIR)/data_runcontrol.o:           $(SRCDIR)/data_runcontrol.f90          \
           $(OBJDIR)/data_parameters.o
	echo compiling data_runcontrol.f90  
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_runcontrol.f90 )
#
$(OBJDIR)/data_satellites.o:           $(SRCDIR)/data_satellites.f90          \
           $(OBJDIR)/data_parameters.o
	echo compiling data_satellites.f90  
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_satellites.f90 )
#
$(OBJDIR)/data_soil.o:                 $(SRCDIR)/data_soil.f90                \
           $(OBJDIR)/data_parameters.o
	echo compiling data_soil.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_soil.f90 )
#
$(OBJDIR)/data_turbulence.o:           $(SRCDIR)/data_turbulence.f90          \
           $(OBJDIR)/data_parameters.o
	echo compiling data_turbulence.f90  
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_turbulence.f90 )
#
$(OBJDIR)/data_lightning.o:           $(SRCDIR)/data_lightning.f90           \
	  $(OBJDIR)/data_parameters.o  
	echo compiling data_lightning.f90  
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/data_lightning.f90 )
#
####################################################
#
#     Dependencies of the Utility Modules
#
####################################################
#
$(OBJDIR)/environment.o:                     $(SRCDIR)/environment.f90        \
          $(OBJDIR)/data_parameters.o
	echo compiling environment.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/environment.f90 )
#
$(OBJDIR)/io_utilities.o:                    $(SRCDIR)/io_utilities.f90       \
          $(OBJDIR)/data_parameters.o                                         \
          $(OBJDIR)/mpe_io.o
	echo compiling io_utilities.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/io_utilities.f90 )
#
$(OBJDIR)/meteo_utilities.o:                 $(SRCDIR)/meteo_utilities.f90    \
          $(OBJDIR)/data_parameters.o
	echo compiling meteo_utilities.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/meteo_utilities.f90 )
#
$(OBJDIR)/numeric_utilities.o:               $(SRCDIR)/numeric_utilities.f90  \
          $(OBJDIR)/data_parameters.o
	echo compiling numeric_utilities.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG2) $(SRCDIR)/numeric_utilities.f90 )
#
$(OBJDIR)/numeric_utilities_rk.o:           $(SRCDIR)/numeric_utilities_rk.f90 \
          $(OBJDIR)/data_parameters.o       $(OBJDIR)/data_runcontrol.o        \
          $(OBJDIR)/data_parallel.o         $(OBJDIR)/data_modelconfig.o       \
          $(OBJDIR)/data_fields.o           $(OBJDIR)/data_constants.o         \
          $(OBJDIR)/environment.o           $(OBJDIR)/parallel_utilities.o
	echo compiling numeric_utilities_rk.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG2) $(SRCDIR)/numeric_utilities_rk.f90 )
#
$(OBJDIR)/parallel_utilities.o:              $(SRCDIR)/parallel_utilities.f90 \
          $(OBJDIR)/data_parameters.o
	echo compiling parallel_utilities.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/parallel_utilities.f90 )
#
$(OBJDIR)/pp_utilities.o:                    $(SRCDIR)/pp_utilities.f90       \
          $(OBJDIR)/data_parameters.o                                         \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_constants.o       \
          $(OBJDIR)/data_fields.o            $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/numeric_utilities.o    \
          $(OBJDIR)/environment.o
	echo compiling pp_utilities.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/pp_utilities.f90 )
#
$(OBJDIR)/time_utilities.o:                  $(SRCDIR)/time_utilities.f90     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o
	echo compiling time_utilities.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/time_utilities.f90 )
#
$(OBJDIR)/utilities.o:                       $(SRCDIR)/utilities.f90          \
          $(OBJDIR)/data_parameters.o
	echo compiling utilities.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/utilities.f90 )
#
####################################################
#
#     Dependencies of the Public Utilities
#
####################################################
#
$(OBJDIR)/mpe_io.o:                          $(SRCDIR)/mpe_io.f90
	echo compiling mpe_io.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/mpe_io.f90 )
#
$(OBJDIR)/dummy_db.o:                        $(SRCDIR)/dummy_db.f90
	echo compiling dummy_db.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/dummy_db.f90 )
#
$(OBJDIR)/dummy_rttov.o:                     $(SRCDIR)/dummy_rttov.f90
	echo compiling dummy_rttov.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/dummy_rttov.f90 )
#
$(OBJDIR)/dummy_netcdf.o:                    $(SRCDIR)/dummy_netcdf.f90
	echo compiling dummy_netcdf.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/dummy_netcdf.f90 )
#
# only on sequential platforms
#
$(OBJDIR)/dummy_mpi.o:                       $(SRCDIR)/dummy_mpi.f90
	echo compiling dummy_mpi.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/dummy_mpi.f90 )
#
####################################################
#
#     Dependencies of the Source Modules
#
####################################################
#
$(OBJDIR)/src_2timelevel.o:                  $(SRCDIR)/src_2timelevel.f90     \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_lheat_nudge.o       $(OBJDIR)/data_modelconfig.o     \
                                             $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/meteo_utilities.o      \
          $(OBJDIR)/numeric_utilities.o      $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/src_lheating.o           $(OBJDIR)/time_utilities.o       \
          $(OBJDIR)/hori_diffusion.o
	echo compiling src_2timelevel.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_2timelevel.f90 )
#
$(OBJDIR)/src_advection_rk.o:                $(SRCDIR)/src_advection_rk.f90   \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o                                         \
          $(OBJDIR)/environment.o            $(OBJDIR)/hori_diffusion.o       \
          $(OBJDIR)/meteo_utilities.o        $(OBJDIR)/numeric_utilities.o    \
          $(OBJDIR)/numeric_utilities_rk.o   $(OBJDIR)/parallel_utilities.o
	echo compiling src_advection_rk.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_advection_rk.f90 )
#
$(OBJDIR)/src_allocation.o:                  $(SRCDIR)/src_allocation.f90     \
          $(OBJDIR)/data_fields.o            $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_lheat_nudge.o       $(OBJDIR)/data_lhn_diag.o        \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o
	echo compiling src_allocation.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_allocation.f90 )
#
$(OBJDIR)/src_artifdata.o:                   $(SRCDIR)/src_artifdata.f90      \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/data_soil.o              $(OBJDIR)/environment.o          \
          $(OBJDIR)/meteo_utilities.o        $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/utilities.o
	echo compiling src_artifdata.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_artifdata.f90 )
#
$(OBJDIR)/src_conv_kainfri.o:                $(SRCDIR)/src_conv_kainfri.f90   \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o
	echo compiling src_conv_kainfri.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_conv_kainfri.f90 )
#
$(OBJDIR)/src_conv_tiedtke.o:                $(SRCDIR)/src_conv_tiedtke.f90   \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_convection.o      \
          $(OBJDIR)/data_fields.o            $(OBJDIR)/data_lheat_nudge.o     \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/src_lheating.o
	echo compiling src_conv_tiedtke.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_conv_tiedtke.f90 )
#
$(OBJDIR)/src_conv_shallow.o:                $(SRCDIR)/src_conv_shallow.f90   \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_convection.o      \
          $(OBJDIR)/data_fields.o            $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o
	echo compiling src_conv_shallow.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_conv_shallow.f90 )
#
$(OBJDIR)/src_correl_cutoff.o:               $(SRCDIR)/src_correl_cutoff.f90  \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_nudge_gather.o      $(OBJDIR)/data_nudge_spread.o    \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o
	echo compiling src_correl_cutoff.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_correl_cutoff.f90 )
#
$(OBJDIR)/src_diagbudget.o:                  $(SRCDIR)/src_diagbudget.f90     \
          $(OBJDIR)/data_fields.o            $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o
	echo compiling src_diagbudget.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_diagbudget.f90 )
#
$(OBJDIR)/src_flake.o:                       $(SRCDIR)/src_flake.f90          \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_flake.o             $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o                                         \
          $(OBJDIR)/src_flake_sfcflx.o
	echo compiling src_flake.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_flake.f90 )
#
$(OBJDIR)/src_gather_info.o:                 $(SRCDIR)/src_gather_info.f90    \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_nudge_gather.o      $(OBJDIR)/data_nudge_spread.o    \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/environment.o          \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/time_utilities.o
	echo compiling src_gather_info.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_gather_info.f90 )
#
$(OBJDIR)/src_gridpoints.o:                  $(SRCDIR)/src_gridpoints.f90     \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/data_soil.o              $(OBJDIR)/environment.o          \
          $(OBJDIR)/utilities.o
	echo compiling src_gridpoints.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_gridpoints.f90 )
#
$(OBJDIR)/src_gscp.o:                        $(SRCDIR)/src_gscp.f90           \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_gscp.o              $(OBJDIR)/data_lheat_nudge.o     \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/meteo_utilities.o        $(OBJDIR)/pp_utilities.o         \
          $(OBJDIR)/src_lheating.o
	echo compiling src_gscp.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_gscp.f90 )
#
$(OBJDIR)/src_input.o:                       $(SRCDIR)/src_input.f90          \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/data_soil.o            \
          $(OBJDIR)/environment.o            $(OBJDIR)/io_utilities.o         \
          $(OBJDIR)/meteo_utilities.o        $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/time_utilities.o         $(OBJDIR)/utilities.o
	echo compiling src_input.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_input.f90 )
#
$(OBJDIR)/src_integrals.o:                   $(SRCDIR)/src_integrals.f90      \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/parallel_utilities.o
	echo compiling src_integrals.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_integrals.f90 )
#
$(OBJDIR)/src_flake_sfcflx.o:                $(SRCDIR)/src_flake_sfcflx.f90   \
          $(OBJDIR)/data_flake.o             $(OBJDIR)/data_parameters.o
	echo compiling src_flake_sfcflx.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_flake_sfcflx.f90 )
#
#
$(OBJDIR)/src_leapfrog.o:                    $(SRCDIR)/src_leapfrog.f90       \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_lheat_nudge.o       $(OBJDIR)/data_modelconfig.o     \
                                             $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/meteo_utilities.o      \
          $(OBJDIR)/numeric_utilities.o      $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/src_lheating.o           $(OBJDIR)/time_utilities.o       \
          $(OBJDIR)/hori_diffusion.o
	echo compiling src_leapfrog.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_leapfrog.f90 )
#
$(OBJDIR)/src_lheat_nudge.o:                 $(SRCDIR)/src_lheat_nudge.f90    \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_lheat_nudge.o     \
          $(OBJDIR)/data_lhn_diag.o          $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/environment.o          \
          $(OBJDIR)/meteo_utilities.o        $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/pp_utilities.o           $(OBJDIR)/utilities.o
	echo compiling src_lheat_nudge.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_lheat_nudge.f90 )
#
$(OBJDIR)/src_lheating.o:                    $(SRCDIR)/src_lheating.f90       \
          $(OBJDIR)/data_fields.o            $(OBJDIR)/data_lheat_nudge.o     \
                                             $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o
	echo compiling src_lheating.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_lheating.f90 )
#
$(OBJDIR)/src_lightning.o:		     $(SRCDIR)/src_lightning.f90     \
	  $(OBJDIR)/data_constants.o	     $(OBJDIR)/data_fields.o         \
	  $(OBJDIR)/data_modelconfig.o	     $(OBJDIR)/data_parallel.o       \
	  $(OBJDIR)/data_parameters.o	     $(OBJDIR)/data_runcontrol.o     \
	  $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/environment.o         \
	  $(OBJDIR)/data_lightning.o	     $(OBJDIR)/utilities.o 	     
	echo compiling src_lightning.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_lightning.f90 )
#
$(OBJDIR)/src_meanvalues.o:                  $(SRCDIR)/src_meanvalues.f90     \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/utilities.o
	echo compiling src_meanvalues.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_meanvalues.f90 )
#
$(OBJDIR)/src_mult_local.o:                  $(SRCDIR)/src_mult_local.f90     \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_nudge_gather.o      $(OBJDIR)/data_nudge_local.o     \
          $(OBJDIR)/data_obs_record.o        $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o
	echo compiling src_mult_local.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_mult_local.f90 )
#
$(OBJDIR)/src_mult_spread.o:                 $(SRCDIR)/src_mult_spread.f90    \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_nudge_gather.o      $(OBJDIR)/data_nudge_spread.o    \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/src_correl_cutoff.o
	echo compiling src_mult_spread.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_mult_spread.f90 )
#
$(OBJDIR)/src_nudging.o:                     $(SRCDIR)/src_nudging.f90        \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_lheat_nudge.o     \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_nudge_spread.o      $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/meteo_utilities.o      \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/src_gather_info.o      \
          $(OBJDIR)/src_lheating.o           $(OBJDIR)/src_mult_local.o       \
          $(OBJDIR)/src_mult_spread.o        $(OBJDIR)/src_obs_1dvar_org.o    \
          $(OBJDIR)/src_obs_processing.o     $(OBJDIR)/src_obs_proc_cdf.o     \
          $(OBJDIR)/src_sing_local.o         $(OBJDIR)/src_sing_spread.o      \
          $(OBJDIR)/time_utilities.o
	echo compiling src_nudging.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_nudging.f90 )
#
$(OBJDIR)/src_obs_1dvar_org.o:               $(SRCDIR)/src_obs_1dvar_org.f90  \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_obs_process.o       $(OBJDIR)/data_obs_record.o      \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o                                         \
          $(OBJDIR)/environment.o            $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/src_obs_proc_util.o      $(OBJDIR)/utilities.o
	echo compiling src_obs_1dvar_org.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_obs_1dvar_org.f90 )
#
$(OBJDIR)/src_obs_proc_air.o:                $(SRCDIR)/src_obs_proc_air.f90   \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_obs_process.o       $(OBJDIR)/data_obs_record.o      \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o                                         \
          $(OBJDIR)/environment.o            $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/src_obs_proc_util.o      $(OBJDIR)/time_utilities.o
	echo compiling src_obs_proc_air.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_obs_proc_air.f90 )
#
$(OBJDIR)/src_obs_proc_aof.o:                $(SRCDIR)/src_obs_proc_aof.f90   \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_obs_process.o       $(OBJDIR)/data_obs_record.o      \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/environment.o          \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/src_obs_proc_util.o    \
          $(OBJDIR)/utilities.o
	echo compiling src_obs_proc_aof.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_obs_proc_aof.f90 )
#
$(OBJDIR)/src_obs_proc_cdf.o:                $(SRCDIR)/src_obs_proc_cdf.f90   \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_obs_process.o       $(OBJDIR)/data_obs_record.o      \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/environment.o          \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/src_obs_proc_util.o    \
          $(OBJDIR)/src_obs_proc_air.o       $(OBJDIR)/src_obs_processing.o   \
          $(OBJDIR)/utilities.o
	echo compiling src_obs_proc_cdf.f90
	( cd $(OBJDIR) && $(F902) $(COMFLG) $(SRCDIR)/src_obs_proc_cdf.f90 )
#
$(OBJDIR)/src_obs_proc_util.o:               $(SRCDIR)/src_obs_proc_util.f90  \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_obs_process.o       $(OBJDIR)/data_obs_record.o      \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o                                         \
          $(OBJDIR)/environment.o            $(OBJDIR)/parallel_utilities.o
	echo compiling src_obs_proc_util.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_obs_proc_util.f90 )
#
$(OBJDIR)/src_obs_processing.o:              $(SRCDIR)/src_obs_processing.f90 \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_obs_process.o       $(OBJDIR)/data_obs_record.o      \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/environment.o          \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/src_obs_proc_air.o     \
          $(OBJDIR)/src_obs_proc_aof.o       $(OBJDIR)/src_obs_proc_util.o    \
          $(OBJDIR)/utilities.o
	echo compiling src_obs_processing.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_obs_processing.f90 )
#
$(OBJDIR)/src_output.o:                      $(SRCDIR)/src_output.f90         \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/data_satellites.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/io_utilities.o         \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/pp_utilities.o         \
          $(OBJDIR)/time_utilities.o         $(OBJDIR)/utilities.o
	echo compiling src_output.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_output.f90 )
#
$(OBJDIR)/src_radiation.o:                   $(SRCDIR)/src_radiation.f90      \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_flake.o             $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_radiation.o         $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/data_soil.o              $(OBJDIR)/data_turbulence.o      \
          $(OBJDIR)/meteo_utilities.o        $(OBJDIR)/utilities.o
	echo compiling src_radiation.f90 
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_radiation.f90 )
#
$(OBJDIR)/src_relaxation.o:                  $(SRCDIR)/src_relaxation.f90     \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_lheat_nudge.o     \
          $(OBJDIR)/data_modelconfig.o                                        \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/environment.o          \
          $(OBJDIR)/meteo_utilities.o        $(OBJDIR)/src_lheating.o         \
          $(OBJDIR)/utilities.o
	echo compiling src_relaxation.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_relaxation.f90 )
#
$(OBJDIR)/src_runge_kutta.o:                 $(SRCDIR)/src_runge_kutta.f90    \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_lheat_nudge.o       $(OBJDIR)/data_modelconfig.o     \
                                             $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/meteo_utilities.o      \
          $(OBJDIR)/numeric_utilities_rk.o   $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/numeric_utilities.o      $(OBJDIR)/time_utilities.o       \
          $(OBJDIR)/hori_diffusion.o         $(OBJDIR)/fast_waves_rk.o        \
          $(OBJDIR)/src_advection_rk.o       $(OBJDIR)/src_lheating.o         \
          $(OBJDIR)/src_slow_tendencies_rk.o
	echo compiling src_runge_kutta.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_runge_kutta.f90 )
#
$(OBJDIR)/src_sat_tbs.o:                     $(SRCDIR)/src_sat_tbs.f90        \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_satellites.o                                         \
          $(OBJDIR)/parallel_utilities.o
	echo compiling src_sat_tbs.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_sat_tbs.f90 )
#
$(OBJDIR)/src_setup.o:                       $(SRCDIR)/src_setup.f90          \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_convection.o      \
          $(OBJDIR)/data_gscp.o              $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/data_soil.o            \
          $(OBJDIR)/data_turbulence.o                                         \
          $(OBJDIR)/environment.o            $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/utilities.o                                               \
          $(OBJDIR)/src_sso.o
	echo compiling src_setup.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_setup.f90 )
#
$(OBJDIR)/src_setup_vartab.o:                $(SRCDIR)/src_setup_vartab.f90   \
          $(OBJDIR)/data_fields.o            $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/environment.o
	echo compiling src_setup_vartab.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG3) $(SRCDIR)/src_setup_vartab.f90 )
#
$(OBJDIR)/src_sfcana.o:                      $(SRCDIR)/src_sfcana.f90         \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_nudge_all.o         $(OBJDIR)/data_obs_record.o      \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/environment.o          \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/utilities.o
	echo compiling src_sfcana.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_sfcana.f90 )
#
$(OBJDIR)/src_sing_local.o:                  $(SRCDIR)/src_sing_local.f90     \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_nudge_gather.o      $(OBJDIR)/data_nudge_local.o     \
          $(OBJDIR)/data_obs_record.o        $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/data_turbulence.o
	echo compiling src_sing_local.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_sing_local.f90 )
#
$(OBJDIR)/src_sing_spread.o:                 $(SRCDIR)/src_sing_spread.f90    \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_nudge_gather.o      $(OBJDIR)/data_nudge_spread.o    \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/src_correl_cutoff.o
	echo compiling src_sing_spread.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_sing_spread.f90 )
#
$(OBJDIR)/src_slow_tendencies_rk.o:       $(SRCDIR)/src_slow_tendencies_rk.f90\
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/numeric_utilities_rk.o
	echo compiling src_slow_tendencies_rk.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_slow_tendencies_rk.f90 )
#
$(OBJDIR)/src_soil.o:                        $(SRCDIR)/src_soil.f90           \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/data_soil.o            \
          $(OBJDIR)/meteo_utilities.o
	echo compiling src_soil.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_soil.f90 )
#
$(OBJDIR)/src_soil_multlay.o:                $(SRCDIR)/src_soil_multlay.f90   \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/data_soil.o            \
          $(OBJDIR)/meteo_utilities.o
	echo compiling src_soil_multlay.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_soil_multlay.f90 )
#
$(OBJDIR)/src_spectral_nudging.o:          $(SRCDIR)/src_spectral_nudging.f90 \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_runcontrol.o                                         \
          $(OBJDIR)/environment.o            $(OBJDIR)/parallel_utilities.o
	echo compiling src_spectral_nudging.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_spectral_nudging.f90 )
#
$(OBJDIR)/src_sso.o:                         $(SRCDIR)/src_sso.f90            \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o
	echo compiling src_sso.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_sso.f90 )
#
$(OBJDIR)/src_turbdiff.o:                    $(SRCDIR)/src_turbdiff.f90       \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_flake.o                                              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/data_turbulence.o                                         \
          $(OBJDIR)/environment.o            $(OBJDIR)/meteo_utilities.o      \
          $(SRCDIR)/turbdiff.incf            $(SRCDIR)/turbtran.incf          \
          $(SRCDIR)/statement_functs.incf
	echo compiling src_turbdiff.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG2) $(SRCDIR)/src_turbdiff.f90 )
#
$(OBJDIR)/src_turbulence.o:                  $(SRCDIR)/src_turbulence.f90     \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_flake.o             $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/data_turbulence.o
	echo compiling src_turbulence.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/src_turbulence.f90 )
#
#
################################################################################
#
#  Dependencies of the external subroutines
#
################################################################################
#
$(OBJDIR)/dfi_initialization.o:              $(SRCDIR)/dfi_initialization.f90 \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/data_soil.o              $(OBJDIR)/environment.o          \
          $(OBJDIR)/meteo_utilities.o        $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/time_utilities.o         $(OBJDIR)/utilities.o
	echo compiling dfi_initialization.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/dfi_initialization.f90 )
#
$(OBJDIR)/fast_waves.o:                      $(SRCDIR)/fast_waves.f90         \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/time_utilities.o
	echo compiling fast_waves.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/fast_waves.f90 )
#
$(OBJDIR)/fast_waves_rk.o:                   $(SRCDIR)/fast_waves_rk.f90      \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/numeric_utilities_rk.o \
          $(OBJDIR)/time_utilities.o
	echo compiling fast_waves_rk.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/fast_waves_rk.f90 )
#
$(OBJDIR)/hori_diffusion.o:                  $(SRCDIR)/hori_diffusion.f90     \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/numeric_utilities.o    \
          $(OBJDIR)/time_utilities.o
	echo compiling hori_diffusion.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG3) $(SRCDIR)/hori_diffusion.f90 )
#
$(OBJDIR)/near_surface.o:                    $(SRCDIR)/near_surface.f90       \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/data_turbulence.o      \
          $(OBJDIR)/meteo_utilities.o
	echo compiling near_surface.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/near_surface.f90 )
#
$(OBJDIR)/organize_assimilation.o:        $(SRCDIR)/organize_assimilation.f90 \
          $(OBJDIR)/data_lheat_nudge.o                                        \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/environment.o          \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/src_lheat_nudge.o      \
          $(OBJDIR)/src_nudging.o            $(OBJDIR)/src_sfcana.o
	echo compiling organize_assimilation.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/organize_assimilation.f90 )
#
$(OBJDIR)/organize_data.o:                   $(SRCDIR)/organize_data.f90      \
                                             $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_nudge_all.o       \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o                                         \
          $(OBJDIR)/environment.o            $(OBJDIR)/io_utilities.o         \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/src_artifdata.o        \
          $(OBJDIR)/src_input.o              $(OBJDIR)/src_output.o           \
          $(OBJDIR)/src_setup_vartab.o                                        \
          $(OBJDIR)/mpe_io.o
	echo compiling organize_data.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/organize_data.f90 )
#
$(OBJDIR)/organize_diagnosis.o:              $(SRCDIR)/organize_diagnosis.f90 \
          $(OBJDIR)/data_io.o                $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o        $(OBJDIR)/environment.o          \
          $(OBJDIR)/parallel_utilities.o     $(OBJDIR)/utilities.o            \
          $(OBJDIR)/src_diagbudget.o         $(OBJDIR)/src_gridpoints.o       \
          $(OBJDIR)/src_integrals.o          $(OBJDIR)/src_meanvalues.o       \
	  $(OBJDIR)/src_lightning.o	
	echo compiling organize_diagnosis.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/organize_diagnosis.f90 )
#
$(OBJDIR)/organize_dynamics.o:               $(SRCDIR)/organize_dynamics.f90  \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
                                             $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parallel.o          $(OBJDIR)/data_parameters.o      \
          $(OBJDIR)/data_runcontrol.o                                         \
          $(OBJDIR)/environment.o            $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/src_2timelevel.o         $(OBJDIR)/src_leapfrog.o         \
          $(OBJDIR)/src_relaxation.o         $(OBJDIR)/src_runge_kutta.o      \
          $(OBJDIR)/src_spectral_nudging.o
	echo compiling organize_dynamics.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/organize_dynamics.f90 )
#
$(OBJDIR)/organize_eps.o:                    $(SRCDIR)/organize_eps.f90       \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_runcontrol.o                                         \
          $(OBJDIR)/parallel_utilities.o
	echo compiling organize_eps.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/organize_eps.f90 )
#
$(OBJDIR)/organize_physics.o:                $(SRCDIR)/organize_physics.f90   \
          $(OBJDIR)/data_fields.o            $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/src_conv_kainfri.o       $(OBJDIR)/src_conv_tiedtke.o     \
          $(OBJDIR)/src_conv_shallow.o       $(OBJDIR)/src_flake.o            \
          $(OBJDIR)/src_gscp.o               $(OBJDIR)/src_radiation.o        \
          $(OBJDIR)/src_soil_multlay.o       $(OBJDIR)/src_soil.o             \
          $(OBJDIR)/src_sso.o                                                 \
          $(OBJDIR)/src_turbdiff.o           $(OBJDIR)/src_turbulence.o       \
          $(OBJDIR)/time_utilities.o	     $(OBJDIR)/src_lightning.o 
	echo compiling organize_physics.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/organize_physics.f90 )
#
$(OBJDIR)/organize_satellites.o:             $(SRCDIR)/organize_satellites.f90\
          $(OBJDIR)/data_fields.o            $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/data_satellites.o        $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/src_sat_tbs.o
	echo compiling organize_satellites.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/organize_satellites.f90 )
#
$(OBJDIR)/semi_implicit.o:                   $(SRCDIR)/semi_implicit.f90      \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/environment.o            $(OBJDIR)/parallel_utilities.o   \
          $(OBJDIR)/time_utilities.o
	echo compiling semi_implicit.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/semi_implicit.f90 )
#
$(OBJDIR)/slow_tendencies.o:                 $(SRCDIR)/slow_tendencies.f90    \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_flake.o             $(OBJDIR)/data_modelconfig.o     \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o
	echo compiling slow_tendencies.f90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/slow_tendencies.f90 )
#
################################################################################
#
#  Dependencies of the Main Program
#
################################################################################
#
$(OBJDIR)/lmorg.o:                           $(SRCDIR)/lmorg.F90              \
          $(OBJDIR)/data_constants.o         $(OBJDIR)/data_fields.o          \
          $(OBJDIR)/data_flake.o             $(OBJDIR)/data_io.o              \
          $(OBJDIR)/data_modelconfig.o       $(OBJDIR)/data_parallel.o        \
          $(OBJDIR)/data_parameters.o        $(OBJDIR)/data_runcontrol.o      \
          $(OBJDIR)/data_soil.o                                               \
          $(OBJDIR)/environment.o            $(OBJDIR)/meteo_utilities.o      \
          $(OBJDIR)/src_allocation.o         $(OBJDIR)/src_setup.o            \
          $(OBJDIR)/time_utilities.o         $(OBJDIR)/utilities.o            \
          $(OBJDIR)/mpe_io.o               
	echo compiling lmorg.F90
	( cd $(OBJDIR) && $(F90) $(COMFLG) $(SRCDIR)/lmorg.F90 )
#
