diff --git a/flexpart_code/makefile.general.gfortran b/flexpart_code/makefile.general.gfortran index e5cb028ecc9742ca2cefd8e3f6bbcab844020edb..a183dd20a535522edf4114815c9096a18a6d41ff 100644 --- a/flexpart_code/makefile.general.gfortran +++ b/flexpart_code/makefile.general.gfortran @@ -16,15 +16,25 @@ INCPATH = /usr/local/include LIBPATH1 = /usr/local/lib LIBPATH2 = /usr/lib/x86_64-linux-gnu +# NetCDF4 stuff +NC4_ROOT = /dvlscratch/ATM/morton/usr/local +NC4_INCLUDE_FLAGS = -I${NC4_ROOT}/netcdf-fortran-4.4.3/include +NC4_LIB_FLAGS = -Wl,-rpath=${NC4_ROOT}/netcdf-fortran-4.4.3/lib \ + -L${NC4_ROOT}/netcdf-fortran-4.4.3/lib \ + -lnetcdff \ + -Wl,-rpath=${NC4_ROOT}/netcdf-c-4.4.0/lib \ + -L${NC4_ROOT}/netcdf-c-4.4.0/lib \ + -lnetcdf -lnetcdf + # alaskawx #INCPATH = /opt/grib-api/include #LIBPATH1 = /opt/grib-api/lib #LIBPATH2 = /usr/lib/x86_64-linux-gnu -FFLAGS = -O2 -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -I$(INCPATH) +FFLAGS = -O2 -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -I$(INCPATH) ${NC4_INCLUDE_FLAGS} -LDFLAGS = $(FFLAGS) -L$(LIBPATH2) -L$(LIBPATH1) -lgrib_api_f90 -lgrib_api -lm -ljasper +LDFLAGS = $(FFLAGS) -L$(LIBPATH2) -L$(LIBPATH1) -lgrib_api_f90 -lgrib_api -lm -ljasper ${NC4_LIB_FLAGS} MODOBJS = \ diff --git a/flexpart_code/makefile.general.ifort b/flexpart_code/makefile.general.ifort index bdf2a67521b6c6a7efeabb4b95de31b0d6714f62..d0ea70a8194096f41b034d6c37edba3b98cb3f76 100644 --- a/flexpart_code/makefile.general.ifort +++ b/flexpart_code/makefile.general.ifort @@ -6,19 +6,38 @@ GRIB2FLEXPART_EXECUTABLE = grib2flexpart_ifort #DEFS = -DCTBTO ############################################# -INTEL_ROOT = /usr/local/intel/composer_xe_2013.2.146 -GRIB_API_ROOT = /usr/local/src/ifort_grib_api/grib_api-1.12.3 +INTEL_ROOT = /cots/intel/composer_xe_2013.2.146 +GRIB_API_ROOT = /dvl/atm/klinkl/software/local +NC4_ROOT = /dvlscratch/ATM/morton/usrifort/local + + FC = $(INTEL_ROOT)/bin/ifort -INCPATH = $(GRIB_API_ROOT)/fortran -LIBPATH1 = $(GRIB_API_ROOT)/fortran/.libs -LIBPATH2 = $(GRIB_API_ROOT)/src/.libs +#INCPATH = $(GRIB_API_ROOT)/fortran +INCPATH = $(GRIB_API_ROOT)/include +#LIBPATH1 = $(GRIB_API_ROOT)/fortran/.libs +LIBPATH1 = $(GRIB_API_ROOT)/lib +#LIBPATH2 = $(GRIB_API_ROOT)/src/.libs +LIBPATH2 = + +LIBNC4_INCLUDES = -I${NC4_ROOT}/netcdf-fortran-4.4.3/include +LIBNC4_FLAGS = -Wl, -rpath=${NC4_ROOT} /netcdf-fortran-4.4.3/lib \ + -L${NC4_ROOT}/netcdf-fortran-4.4.3/lib \ + -lnetcdff \ + -Wl,-rpath=${NC4_ROOT}/netcdf-c-4.4.0/lib \ + -L${NC4_ROOT}/netcdf-c-4.4.0/lib \ + -lnetcdf -lnetcdf \ + -Wl,-rpath=${INTEL_ROOT}/lib/intel64 \ + -L${INTEL_ROOT}//lib/intel64 \ + -lifport -lifcore -limf -lsvml -lintlc + -FFLAGS = -O2 -mcmodel=medium -convert little_endian -I$(INCPATH) +FFLAGS = -O2 -mcmodel=medium -convert little_endian -I$(INCPATH) \ + ${LIBNC4_INCLUDES} -LDFLAGS = $(FFLAGS) -L$(LIBPATH2) -L$(LIBPATH1) -lgrib_api_f90 -lgrib_api -lm -ljasper +LDFLAGS = $(FFLAGS) -L$(LIBPATH2) -L$(LIBPATH1) ${LIBNC4_FLAGS} -lgrib_api_f90 -lgrib_api -lm -ljasper MODOBJS = \ diff --git a/flexpart_code/makefile.general.ifort.tmpsave b/flexpart_code/makefile.general.ifort.tmpsave new file mode 100644 index 0000000000000000000000000000000000000000..bdf2a67521b6c6a7efeabb4b95de31b0d6714f62 --- /dev/null +++ b/flexpart_code/makefile.general.ifort.tmpsave @@ -0,0 +1,124 @@ +SHELL = /bin/bash +FLEXPART_EXECUTABLE = flexpart_ifort +GRIB2FLEXPART_EXECUTABLE = grib2flexpart_ifort + +############################################# +#DEFS = -DCTBTO +############################################# + +INTEL_ROOT = /usr/local/intel/composer_xe_2013.2.146 +GRIB_API_ROOT = /usr/local/src/ifort_grib_api/grib_api-1.12.3 + +FC = $(INTEL_ROOT)/bin/ifort + +INCPATH = $(GRIB_API_ROOT)/fortran +LIBPATH1 = $(GRIB_API_ROOT)/fortran/.libs +LIBPATH2 = $(GRIB_API_ROOT)/src/.libs + + +FFLAGS = -O2 -mcmodel=medium -convert little_endian -I$(INCPATH) + +LDFLAGS = $(FFLAGS) -L$(LIBPATH2) -L$(LIBPATH1) -lgrib_api_f90 -lgrib_api -lm -ljasper + + +MODOBJS = \ +par_mod.o com_mod.o \ +conv_mod.o hanna_mod.o \ +interpol_mod.o cmapf_mod.o \ +unc_mod.o oh_mod.o \ +xmass_mod.o flux_mod.o \ +point_mod.o outg_mod.o \ +fpmetbinary_mod.o class_vtable_mod.o + + +OBJECTS = \ +grib2check.o fpgridcheck.o \ +writeheader.o assignland.o\ +calcpar.o part0.o \ +calcpar_gfs.o detectformat.o \ +caldate.o partdep.o \ +coordtrafo.o psih.o \ +raerod.o convertfields.o \ +drydepokernel.o random.o \ +erf.o readavailable.o \ +ew.o readcommand.o \ +advance.o readdepo.o \ +releaseparticles.o psim.o \ +readlanduse.o getfpfields.o \ +getfields.o init_domainfill.o\ +interpol_wind.o readoutgrid.o \ +interpol_all.o readpaths.o \ +getrb.o readreceptors.o \ +getrc.o readreleases.o \ +getvdep.o readspecies.o \ +interpol_misslev.o readwind.o \ +readwind_gfs.o richardson_gfs.o \ +conccalc.o richardson.o \ +concoutput.o scalev.o \ +pbl_profile.o readOHfield.o\ +juldate.o timemanager.o \ +interpol_vdep.o interpol_rain.o \ +verttransform_gfs.o partoutput.o \ +verttransform.o \ +hanna.o wetdepokernel.o \ +mean.o wetdepo.o \ +hanna_short.o windalign.o \ +obukhov_gfs.o gridcheck_gfs.o \ +obukhov.o gridcheck.o \ +hanna1.o initialize.o \ + gridcheck_nests.o \ +readwind_nests.o calcpar_nests.o \ +verttransform_nests.o interpol_all_nests.o \ +interpol_wind_nests.o interpol_misslev_nests.o \ +interpol_vdep_nests.o interpol_rain_nests.o \ +readageclasses.o readpartpositions.o \ +calcfluxes.o fluxoutput.o \ +qvsat.o skplin.o \ +convmix.o calcmatrix.o \ +convmix_gfs.o calcmatrix_gfs.o \ +convect43c.o redist.o \ +sort2.o distance.o \ +centerofmass.o plumetraj.o \ +openouttraj.o calcpv.o \ +calcpv_nests.o distance2.o \ +clustering.o interpol_wind_short.o \ +interpol_wind_short_nests.o shift_field_0.o \ +shift_field.o outgrid_init.o \ +openreceptors.o boundcond_domainfill.o\ +partoutput_short.o readoutgrid_nest.o \ +outgrid_init_nest.o writeheader_nest.o \ +concoutput_nest.o wetdepokernel_nest.o \ +drydepokernel_nest.o zenithangle.o \ +ohreaction.o getvdep_nests.o \ +initial_cond_calc.o initial_cond_output.o \ +dynamic_viscosity.o get_settling.o + +all: $(FLEXPART_EXECUTABLE) $(GRIB2FLEXPART_EXECUTABLE) + +flexpart: $(FLEXPART_EXECUTABLE) + +grib2flexpart: $(GRIB2FLEXPART_EXECUTABLE) + +$(FLEXPART_EXECUTABLE): $(MODOBJS) $(OBJECTS) FLEXPART.o + $(FC) FLEXPART.o $(OBJECTS) $(MODOBJS) -o $(FLEXPART_EXECUTABLE) $(LDFLAGS) + +$(GRIB2FLEXPART_EXECUTABLE): $(MODOBJS) $(OBJECTS) GRIB2FLEXPART.o + $(FC) GRIB2FLEXPART.o $(OBJECTS) $(MODOBJS) -o $(GRIB2FLEXPART_EXECUTABLE) $(LDFLAGS) + +$(OBJECTS): $(MODOBJS) + +FLEXPART.o: $(MODOBJS) + +GRIB2FLEXPART.o: $(MODOBJS) + +%.o: %.f90 + $(FC) -c $(FFLAGS) $< + +%.o: %.F90 + $(FC) -c $(FFLAGS) $(DEFS) $< + + +clean: + rm -f *.o *.mod + +