From e9f3f842082e6790e4efcb1402bbb56b10ff130b Mon Sep 17 00:00:00 2001 From: ronesy <rlt@nilu.no> Date: Fri, 28 Feb 2025 12:10:15 +0100 Subject: [PATCH] rename izwork to cova in mod_analytic for clarity and added check to mod_settings for use of const_out --- README.txt | 2 +- constraint/makefile | 38 +++++++++++--------------------------- source/mod_analytic.f90 | 4 ++-- source/mod_save.f90 | 2 +- source/mod_settings.f90 | 4 ++++ 5 files changed, 19 insertions(+), 31 deletions(-) diff --git a/README.txt b/README.txt index 04d986c..fc88213 100644 --- a/README.txt +++ b/README.txt @@ -57,6 +57,6 @@ Contents: constraint: - extra tool (not necessarily needed for FLEXINVERT) to constrain fluxes to known values - - either constrains fluxes > 0 or adds additional constraint + - either constrains fluxes >= 0 or adds additional constraint for global inversions with limited observational coverage in some regions diff --git a/constraint/makefile b/constraint/makefile index 2b2c841..d69aef8 100644 --- a/constraint/makefile +++ b/constraint/makefile @@ -2,43 +2,27 @@ F90 = /apps/sw/ubuntu22.04/gcc-11.4.0/gcc-13.2.0-tkesyophy2o6rjlzknndu3b4oy LIBPATH = /apps/sw/ubuntu22.04/gcc-13.2.0/netcdf-fortran-4.6.1-ubcs4l6pjwpgoeyvz32wpzyzykib6bwm/lib/ INCPATH = /apps/sw/ubuntu22.04/gcc-13.2.0/netcdf-fortran-4.6.1-ubcs4l6pjwpgoeyvz32wpzyzykib6bwm/include/ -LNK = -o -CMPL = -c -LIBS = -lnetcdf -lnetcdff -llapack +LIBS = -llapack -lm -DUSE_NCF -lnetcdff -FFLAGS = -O3 -g -m64 -fbounds-check -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -ffree-form \ - -fbacktrace +FFLAGS = -I$(INCPATH) -O3 -g -m64 -fbounds-check -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -ffree-form \ + -fbacktrace -DUSE_NCF -lnetcdff -LDFLAGS = $(FFLAGS) -L$(LIBPATH) -I$(INCPATH) $(LIBS) +LDFLAGS = $(FFLAGS) -L$(LIBPATH) -Wl,-rpath,$(LIBPATH) $(LIBS) MAIN = constraint OBJECTS = mod_var.o main.o readinitial.o readinput.o gridarea.o \ calcselector.o bayesian.o regridemissions.o write3Dncdf.o save.o +%o.: %.mod + $(MAIN): $(OBJECTS) - $(F90) $(LNK) $(MAIN) $(OBJECTS) $(LIBS) -mod_var.o: mod_var.f90 - $(F90) $(LDFLAGS) $(CMPL) mod_var.f90 -main.o: main.f90 - $(F90) $(LDFLAGS) $(CMPL) main.f90 -readinitial.o: readinitial.f90 - $(F90) $(LDFLAGS) $(CMPL) readinitial.f90 -readinput.o: readinput.f90 - $(F90) $(LDFLAGS) $(CMPL) readinput.f90 -gridarea.o: gridarea.f90 - $(F90) $(LDFLAGS) $(CMPL) gridarea.f90 -calcselector.o: calcselector.f90 - $(F90) $(LDFLAGS) $(CMPL) calcselector.f90 -bayesian.o: bayesian.f90 - $(F90) $(LDFLAGS) $(CMPL) bayesian.f90 -regridemissions.o: regridemissions.f90 - $(F90) $(LDFLAGS) $(CMPL) regridemissions.f90 -write3Dncdf.o: write3Dncdf.f90 - $(F90) $(LDFLAGS) $(CMPL) write3Dncdf.f90 -save.o: save.f90 - $(F90) $(LDFLAGS) $(CMPL) save.f90 + +$(F90) -o $@ $(OBJECTS) $(LDFLAGS) + +%.o : %.f90 + +$(F90) -c $(FFLAGS) $< clean: rm *.o *.mod +.SUFFIXES = ${SUFFIXES} .f90 diff --git a/source/mod_analytic.f90 b/source/mod_analytic.f90 index 4f1d9fa..146100e 100644 --- a/source/mod_analytic.f90 +++ b/source/mod_analytic.f90 @@ -308,8 +308,8 @@ module mod_analytic ! verbose output ! -------------- - if ( config%const_out ) then - filename = trim(files%path_output)//'izwork.txt' + if ( config%verbose.or.config%const_out ) then + filename = trim(files%path_output)//'cova.txt' open(100,file=trim(filename),status='replace',action='write',iostat=ierr) write(rowfmt,'(A,I6,A)') '(',nvar,'(E11.4,1X))' do i = 1, nvar diff --git a/source/mod_save.f90 b/source/mod_save.f90 index 5e3ca75..1219cef 100644 --- a/source/mod_save.f90 +++ b/source/mod_save.f90 @@ -143,7 +143,7 @@ module mod_save ! write posterior state vector if constraint output is requested open(100,file=trim(files%path_output)//'posterior.txt',status='replace',action='write',iostat=ierr) do n = 1, nvar - write(100,*) states%px(n)/numscale + write(100,*) states%px(n)/numscale end do close(100) endif diff --git a/source/mod_settings.f90 b/source/mod_settings.f90 index b49c866..082047a 100644 --- a/source/mod_settings.f90 +++ b/source/mod_settings.f90 @@ -961,6 +961,10 @@ module mod_settings print*, 'ERROR: at least one of satellite or ground must be true' stop endif + if ( config%const_out.and..not.config%method.eq.'analytic' ) then + print*, 'ERROR: for constraint output method must be analytic' + stop + endif end subroutine read_config_settings -- GitLab