Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 99 additions & 16 deletions prj/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#Portabilityn
#ifdef ComSpec
ifeq ($(OS), Windows_NT)
#Windows
# Windows
INFO = Compiling for Windows 64bit
RM = if exist FILE del /F /Q FILE
MV = if exist FILE move FILE DESTINATION
Expand All @@ -18,12 +18,12 @@ ifeq ($(OS), Windows_NT)
PATHSEP2 = \\
LDFLAGS = -shared-libgcc
else
#Unix
# Unix
RM = rm -f FILE
MV = mv FILE DESTINATION || true
RP_EXE = eddypro_rp
FCC_EXE = eddypro_fcc
FC = gfortran
FC = gfortran
MAKE_DIR = @mkdir -p DIR
PATHSEP2 = /
platform=$(shell uname)
Expand All @@ -34,15 +34,16 @@ else
OS_DIR = mac
INFO = Compiling for Mac OS
endif
LDLAGS = -shared-libgcc
LDFLAGS = -shared-libgcc
endif

PATHSEP=$(strip $(PATHSEP2))

#Dirs as seen by Make
##RP
RP_SRC_DIR_f90d1 = ../src/src_rp/
RP_SRC_DIR_Fd2 = ../src/src_rp/fft4/
# RP_SRC_DIR_Fd2 = ../src/src_rp/fft4/
RP_SRC_DIR_f90d3 = ../src/src_rp/fftpack/src/
##FCC
FCC_SRC_DIR_f90d1 = ../src/src_fcc/
##Common
Expand All @@ -53,7 +54,8 @@ EXE_DIR = ../bin/$(OS_DIR)/
#Dirs as seen by OS
##RP
OS_RP_SRC_DIR_f90d1 = ..$(PATHSEP)src$(PATHSEP)src_rp$(PATHSEP)
OS_RP_SRC_DIR_Fd2 = ..$(PATHSEP)src$(PATHSEP)src_rp$(PATHSEP)fft4$(PATHSEP)
# OS_RP_SRC_DIR_Fd2 = ..$(PATHSEP)src$(PATHSEP)src_rp$(PATHSEP)fft4$(PATHSEP)
OS_RP_SRC_DIR_f90d3 = ..$(PATHSEP)src$(PATHSEP)src_rp$(PATHSEP)fftpack$(PATHSEP)src$(PATHSEP)
##FCC
OS_FCC_SRC_DIR_f90d1 = ..$(PATHSEP)src$(PATHSEP)src_fcc$(PATHSEP)
##Common
Expand All @@ -64,7 +66,8 @@ OS_EXE_DIR = ..$(PATHSEP)bin$(PATHSEP)$(OS_DIR)$(PATHSEP)
#List of source file basenames (.f90, .F)
##RP
RP_SRCS_f90d1 = $(notdir $(wildcard $(RP_SRC_DIR_f90d1)*.f90))
RP_SRCS_Fd2 = $(notdir $(wildcard $(RP_SRC_DIR_Fd2)*.F))
# RP_SRCS_Fd2 = $(notdir $(wildcard $(RP_SRC_DIR_Fd2)*.F))
RP_SRCS_f90d3 = $(notdir $(wildcard $(RP_SRC_DIR_f90d3)*.f90))
##FCC
FCC_SRCS_f90d1 = $(notdir $(wildcard $(FCC_SRC_DIR_f90d1)*.f90))
##Common
Expand All @@ -73,7 +76,8 @@ COMMON_SRCS_f90d1 = $(notdir $(wildcard $(COMMON_SRC_DIR_f90d1)*.f90))
#List of object file basenames (.o)
##RP
RP_OBJS_f90d1=$(patsubst %.f90, %.o, $(RP_SRCS_f90d1))
RP_OBJS_Fd2=$(patsubst %.F, %.o, $(RP_SRCS_Fd2))
# RP_OBJS_Fd2=$(patsubst %.F, %.o, $(RP_SRCS_Fd2))
RP_OBJS_f90d3=$(patsubst %.f90, %.o, $(RP_SRCS_f90d3))
##FCC
FCC_OBJS_f90d1=$(patsubst %.f90, %.o, $(FCC_SRCS_f90d1))
##Common
Expand All @@ -83,24 +87,28 @@ COMMON_OBJS_f90d1=$(patsubst %.f90, %.o, $(COMMON_SRCS_f90d1))
#CFLAGS = -g -fcheck=all -Wall -pedantic -fall-intrinsics -fbounds-check -Wextra -Wcharacter-truncation -Wunderflow -Wno-compare-reals -std=f2003 -O3 -I $(OBJS_DIR)
CFLAGS = -Wall -pedantic -fall-intrinsics -fbounds-check -Wextra -Wcharacter-truncation -Wunderflow -Wno-compare-reals -std=f2008 -O3 -I $(OBJS_DIR)

VPATH = $(RP_SRC_DIR_f90d1):$(RP_SRC_DIR_Fd2):$(FCC_SRC_DIR_f90d1):$(COMMON_SRC_DIR_f90d1):$(OBJS_DIR)
RP_OBJS = $(addprefix $(OBJS_DIR), $(RP_OBJS_f90d1) $(RP_OBJS_Fd2)$(COMMON_OBJS_f90d1))
# VPATH = $(RP_SRC_DIR_f90d1):$(RP_SRC_DIR_Fd2):$(RP_SRC_DIR_f90d3):$(FCC_SRC_DIR_f90d1):$(COMMON_SRC_DIR_f90d1):$(OBJS_DIR)
# RP_OBJS = $(addprefix $(OBJS_DIR), $(RP_OBJS_f90d1) $(RP_OBJS_Fd2) $(RP_OBJS_f90d3) $(COMMON_OBJS_f90d1))
VPATH = $(RP_SRC_DIR_f90d1):$(RP_SRC_DIR_f90d3):$(FCC_SRC_DIR_f90d1):$(COMMON_SRC_DIR_f90d1):$(OBJS_DIR)
RP_OBJS = $(addprefix $(OBJS_DIR), $(RP_OBJS_f90d1) $(RP_OBJS_f90d3) $(COMMON_OBJS_f90d1))
FCC_OBJS = $(addprefix $(OBJS_DIR), $(FCC_OBJS_f90d1) $(COMMON_OBJS_f90d1))

$(info $(INFO))

#Targets
all : rp fcc

rp : $(RP_OBJS_f90d1) $(RP_OBJS_Fd2) $(COMMON_OBJS_f90d1)
rp : $(RP_OBJS_f90d1) $(RP_OBJS_f90d3) $(COMMON_OBJS_f90d1)
@$(subst DIR,$(OS_EXE_DIR),$(MAKE_DIR))
$(FC) $(LDFLAGS) -o $(EXE_DIR)$(RP_EXE) $(RP_OBJS)
@$(subst DESTINATION, $(OS_OBJS_DIR), $(subst FILE, *.mod, $(MV)))
@$(subst DESTINATION, $(OS_OBJS_DIR), $(subst FILE, *.smod, $(MV)))

fcc : $(FCC_OBJS_f90d1) $(COMMON_OBJS_f90d1)
@$(subst DIR,$(OS_EXE_DIR),$(MAKE_DIR))
$(FC) $(LDFLAGS) -o $(EXE_DIR)$(FCC_EXE) $(FCC_OBJS)
@$(subst DESTINATION, $(OS_OBJS_DIR), $(subst FILE, *.mod, $(MV)))
@$(subst DESTINATION, $(OS_OBJS_DIR), $(subst FILE, *.smod, $(MV)))

#Compilation
##RP
Expand All @@ -110,6 +118,9 @@ $(RP_OBJS_f90d1):
$(RP_OBJS_Fd2):
@$(subst DIR,$(OS_OBJS_DIR),$(MAKE_DIR))
$(FC) -c $(RP_SRC_DIR_Fd2)$(@:.o=.F) -o $(OBJS_DIR)$@
$(RP_OBJS_f90d3):
@$(subst DIR,$(OS_OBJS_DIR),$(MAKE_DIR))
$(FC) $(CFLAGS) -c $(RP_SRC_DIR_f90d3)$(@:.o=.f90) -o $(OBJS_DIR)$@
##FCC
$(FCC_OBJS_f90d1):
@$(subst DIR,$(OS_OBJS_DIR),$(MAKE_DIR))
Expand Down Expand Up @@ -171,7 +182,8 @@ interpret_diagnostics.o: \
m_rp_global_var.o
kid.o: \
kid.f90 \
m_rp_global_var.o
m_rp_global_var.o \
timelag_handle.o
fisher.o: \
fisher.f90 \
m_rp_global_var.o
Expand All @@ -181,9 +193,16 @@ parse_ini_file.o: \
basic_stats.o: \
basic_stats.f90 \
m_common_global_var.o
mo_fftmax.o: \
mo_fftmax.f90 \
m_numeric_kinds.o \
fftpack.o
timelag_handle.o: \
timelag_handle.f90 \
m_rp_global_var.o
m_numeric_kinds.o \
m_typedef.o \
m_rp_global_var.o \
mo_fftmax.o
count_records_and_values.o: \
count_records_and_values.f90 \
m_common_global_var.o
Expand Down Expand Up @@ -264,7 +283,8 @@ wind_direction.o: \
m_common_global_var.o
read_ini_rp.o: \
read_ini_rp.f90 \
m_rp_global_var.o
m_rp_global_var.o \
exception_handler.o
bpcf_li7550_analog_filters.o: \
bpcf_li7550_analog_filters.f90 \
m_common_global_var.o
Expand Down Expand Up @@ -476,7 +496,8 @@ timestamp.o: \
m_numeric_kinds.o
fourier_transform.o: \
fourier_transform.f90 \
m_rp_global_var.o
m_rp_global_var.o \
fftpack.o
optimize_timelags.o: \
optimize_timelags.f90 \
m_rp_global_var.o
Expand Down Expand Up @@ -559,7 +580,8 @@ replace_gap_with_linear_interpolation.o: \
m_common_global_var.o
eddypro-rp_main.o: \
eddypro-rp_main.f90 \
m_rp_global_var.o
m_rp_global_var.o \
timelag_handle.o
import_current_period.o: \
import_current_period.f90 \
m_rp_global_var.o
Expand Down Expand Up @@ -841,3 +863,64 @@ write_out_full_fcc.o: \
write_out_metadata_fcc.o: \
write_out_metadata_fcc.f90 \
m_fx_global_var_mod.o

# fftpack
fftpack.o: fftpack.f90 rk.o
fftpack_fft.o: fftpack_fft.f90 fftpack.o rk.o
fftpack_ifft.o: fftpack_ifft.f90 fftpack.o rk.o
fftpack_rfft.o: fftpack_rfft.f90 fftpack.o rk.o
fftpack_irfft.o: fftpack_irfft.f90 fftpack.o rk.o
fftpack_qct.o: fftpack_qct.f90 fftpack.o rk.o
fftpack_iqct.o: fftpack_iqct.f90 fftpack.o rk.o
fftpack_dct.o: fftpack_dct.f90 fftpack.o rk.o
fftpack_fftshift.o: fftpack_fftshift.f90 fftpack.o rk.o
fftpack_ifftshift.o: fftpack_ifftshift.f90 fftpack.o rk.o
zfftb.o: zfftb.f90 rk.o
cfftb1.o: cfftb1.f90 rk.o
zfftf.o: zfftf.f90 rk.o
cfftf1.o: cfftf1.f90 rk.o
zffti.o: zffti.f90 rk.o
cffti1.o: cffti1.f90 rk.o
dcosqb.o: dcosqb.f90 rk.o
cosqb1.o: cosqb1.f90 rk.o
dcosqf.o: dcosqf.f90 rk.o
cosqf1.o: cosqf1.f90 rk.o
dcosqi.o: dcosqi.f90 rk.o
dcost.o: dcost.f90 rk.o
dcosti.o: dcosti.f90 rk.o
ezfft1.o: ezfft1.f90 rk.o
dzfftb.o: dzfftb.f90 rk.o
dzfftf.o: dzfftf.f90 rk.o
dzffti.o: dzffti.f90 rk.o
passb.o: passb.f90 rk.o
passb2.o: passb2.f90 rk.o
passb3.o: passb3.f90 rk.o
passb4.o: passb4.f90 rk.o
passb5.o: passb5.f90 rk.o
passf.o: passf.f90 rk.o
passf2.o: passf2.f90 rk.o
passf3.o: passf3.f90 rk.o
passf4.o: passf4.f90 rk.o
passf5.o: passf5.f90 rk.o
radb2.o: radb2.f90 rk.o
radb3.o: radb3.f90 rk.o
radb4.o: radb4.f90 rk.o
radb5.o: radb5.f90 rk.o
radbg.o: radbg.f90 rk.o
radf2.o: radf2.f90 rk.o
radf3.o: radf3.f90 rk.o
radf4.o: radf4.f90 rk.o
radf5.o: radf5.f90 rk.o
radfg.o: radfg.f90 rk.o
dfftb.o: dfftb.f90 rk.o
rfftb1.o: rfftb1.f90 rk.o
dfftf.o: dfftf.f90 rk.o
rfftf1.o: rfftf1.f90 rk.o
dffti.o: dffti.f90 rk.o
rffti1.o: rffti1.f90 rk.o
dsinqb.o: dsinqb.f90 rk.o
dsinqf.o: dsinqf.f90 rk.o
dsinqi.o: dsinqi.f90 rk.o
dsint.o: dsint.f90 rk.o
sint1.o: sint1.f90 rk.o
dsinti.o: dsinti.f90 rk.o
4 changes: 2 additions & 2 deletions src/src_common/configure_for_embedded.f90
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ subroutine ConfigureForEmbedded()
end if

!> Retrieve time-lag optimization file name if needed
if (index(Meth%tlag, 'tlag_opt') /= 0) then
if ((index(Meth%tlag, 'tlag_opt') /= 0) .or. (index(Meth%tlag, 'maxfft') /= 0)) then

!> Retrieve planar fit file name from /ini folder
!> Retrieve timelag file name from /ini folder
comm = 'find "' // trim(homedir) // 'ini' // slash &
// '" -iname *_timelag_opt_*'// ' > ' // '"' &
// trim(adjustl(TmpDir)) // 'to_flist.tmp" ' &
Expand Down
2 changes: 1 addition & 1 deletion src/src_common/dir_sub.f90
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ integer function CreateDir(directory)

!> create dir and if one already exists, skip obvious system message
!> redirecting through windows NUL (equivalent to linux /dev/null)
comm = 'mkdir ' // directory(1: len_trim(directory)) // comm_err_redirect
comm = trim(comm_mkdir) // ' ' // directory(1: len_trim(directory)) // comm_err_redirect
CreateDir = system(comm)
end function CreateDir

Expand Down
5 changes: 5 additions & 0 deletions src/src_common/exception_handler.f90
Original file line number Diff line number Diff line change
Expand Up @@ -359,5 +359,10 @@ subroutine ExceptionHandler(error_code)
write(*,*) ' Warning(95)> The selected "w-boost" correction is not applicable'
write(*,*) ' Warning(95)> to data collected with selected sonic anemometer.'
write(*,*) ' Warning(95)> Continuing without applying "w-boost" correction.'
case(96)
write(*,*) ' Fatal error(96)> You can only choose one of to_mode=2 and pf_mode=2'
write(*,*) ' Fatal error(96)> for only performing timelag optimization or'
write(*,*) ' Fatal error(96)> planar fit calculation.'
stop 1
end select
end subroutine ExceptionHandler
23 changes: 14 additions & 9 deletions src/src_common/import_native_data.f90
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@
!
! This file is part of EddyPro®.
!
! NON-COMMERCIAL RESEARCH PURPOSES ONLY - EDDYPRO® is licensed for
! non-commercial academic and government research purposes only,
! as provided in the EDDYPRO® End User License Agreement.
! NON-COMMERCIAL RESEARCH PURPOSES ONLY - EDDYPRO® is licensed for
! non-commercial academic and government research purposes only,
! as provided in the EDDYPRO® End User License Agreement.
! EDDYPRO® may only be used as provided in the End User License Agreement
! and may not be used or accessed for any commercial purposes.
! You may view a copy of the End User License Agreement in the file
! EULA_NON_COMMERCIAL.rtf.
!
! Commercial companies that are LI-COR flux system customers
! are encouraged to contact LI-COR directly for our commercial
! Commercial companies that are LI-COR flux system customers
! are encouraged to contact LI-COR directly for our commercial
! EDDYPRO® End User License Agreement.
!
! EDDYPRO® contains Open Source Components (as defined in the
! End User License Agreement). The licenses and/or notices for the
! EDDYPRO® contains Open Source Components (as defined in the
! End User License Agreement). The licenses and/or notices for the
! Open Source Components can be found in the file LIBRARIES-ENGINE.txt.
!
! EddyPro® is distributed in the hope that it will be useful,
Expand Down Expand Up @@ -56,7 +56,8 @@ subroutine ImportNativeData(Filepath, FirstRecord, LastRecord, LocCol, &
integer :: i
integer :: io_status
integer :: read_status
integer(kind = 1) :: rec_len
!MC integer(kind = 1) :: rec_len
integer(i1) :: rec_len
character(ShortInstringLen) :: dataline


Expand All @@ -66,6 +67,9 @@ subroutine ImportNativeData(Filepath, FirstRecord, LastRecord, LocCol, &

case ('eddymeas_bin')
!> Open raw file in binary mode
!MC record length should be ncol*2 bytes,
! which should be the same as 8 + (NumCol - 4) * 2
! because NumCol is ncol without the 4 anemometer variables
open(unat, file = trim(adjustl(Filepath)), status = 'old', &
iostat = io_status, access='direct', form = 'unformatted', &
recl = 8 + (NumCol - 4) * 2)
Expand Down Expand Up @@ -211,7 +215,8 @@ subroutine ReadNativeFile(Filepath, FirstRecord, LastRecord, rec_len, &
integer, intent(in) :: FirstRecord
integer, intent(in) :: LastRecord
integer, intent(in) :: nrow, ncol
integer(kind = 1), intent(in) :: rec_len
!MC integer(kind = 1), intent(in) :: rec_len
integer(i1), intent(in) :: rec_len
character(*), intent(in) :: Filepath
type(ColType), intent(inout) :: LocCol(MaxNumCol)
integer, intent(out) :: N
Expand Down
Loading