diff --git a/data/testlake_outflows.dat b/data/testlake_outflow.dat similarity index 100% rename from data/testlake_outflows.dat rename to data/testlake_outflow.dat diff --git a/docs/users_guide.log b/docs/users_guide.log index 5075cff2231a1dde3717deda20105628d6d6382a..b7ab52e6db71beed556067ca52f736047a776961 100644 --- a/docs/users_guide.log +++ b/docs/users_guide.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex 2019.11.28) 12 AUG 2022 18:39 +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex 2019.11.28) 27 AUG 2022 18:06 entering extended mode \write18 enabled. file:line:error style messages enabled. @@ -380,7 +380,7 @@ sl10.pfb></usr/local/texlive/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cms y10.pfb></usr/local/texlive/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy 7.pfb></usr/local/texlive/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10 .pfb> -Output written on users_guide.pdf (9 pages, 164648 bytes). +Output written on users_guide.pdf (9 pages, 164923 bytes). PDF statistics: 74 PDF objects out of 1000 (max. 8388607) 52 compressed objects within 1 object stream diff --git a/docs/users_guide.pdf b/docs/users_guide.pdf index c54a8c6d85917686c8d61e6d0e935a4569c146d8..5228b137b745c226391c9198e593adda85fa0c12 100644 Binary files a/docs/users_guide.pdf and b/docs/users_guide.pdf differ diff --git a/docs/users_guide.synctex.gz b/docs/users_guide.synctex.gz index 209442091cf2109bf293290e187763c12b84ab51..3cfd81c67d356425c50ee8f2e334df6145002487 100644 Binary files a/docs/users_guide.synctex.gz and b/docs/users_guide.synctex.gz differ diff --git a/docs/users_guide.tex b/docs/users_guide.tex index e8038232d7679494df1cd2d163fd519287d325e5..3c538e072ef0093ca03fb9af0565a1d7a7ae99c8 100644 --- a/docs/users_guide.tex +++ b/docs/users_guide.tex @@ -422,7 +422,7 @@ give significant speedup \\ \multicolumn{2}{|c|}{\large{Tributaries and effluents}} \\ \hline -\emph{tribheat} & The switch for thermal effect of tributaries and effluents: 0 -- off, 1 -- on, constant inflow vertical profiles, 2 -- on, time-dependent inflow vertical profiles, 3 -- on, time-dependent vertically-mixed inflow \\ +\emph{tribheat} & The switch for thermal effect of tributaries and effluents: 0 -- off, 1 -- on, constant inflow vertical profiles, 2 -- on, time-dependent inflow vertical profiles from input ASCII files, 3 -- on, time-dependent vertically-mixed inflow from input ASCII files, 4 -- on, time-dependent vertically-mixed inflow from the driver (when coupled to land surface model) \\ \hline \emph{N\_tribin} & The number of tributaries, the next line should be a sequence of \emph{N\_tribin} numbers, from 1 to 4, describing the location of each tributary \\ \hline diff --git a/source/Makefile b/source/Makefile index 6d3c42bc8a4ac11dba41f261d7cb986e3d6a40c7..d156c1354d0326635b608851a20f621e4cd66504 100644 --- a/source/Makefile +++ b/source/Makefile @@ -1,9 +1,9 @@ # Compiling source files of LAKE model - #FC=ifort - FC=gfortran - #FC=mpiifort + #FC = ifort + FC = gfortran + #FC = mpiifort #FC = mpif90 #EXEC = lake.out @@ -19,17 +19,20 @@ mpi_def = #-Dmpi ifeq ($(FC),ifort) - PREPROCESS_KEY = -fpp + fcompiler = 1 #ifort + PREPROCESS_KEY = -fpp -DFCOMPILER=$(fcompiler) opt_keys = -qopenmp -O3 #-fp-model source check_keys = -traceback #-g -check all -fpe-all=0 endif ifeq ($(FC),mpiifort) - PREPROCESS_KEY = -fpp + fcompiler = 1 #ifort + PREPROCESS_KEY = -fpp -DFCOMPILER=$(fcompiler) opt_keys = -O1 #-openmp #-fp-model source check_keys = #-g -traceback# -check all -fpe-all=0 endif ifeq ($(FC),mpif90) #mpif90-Intel - PREPROCESS_KEY = -fpp + fcompiler = 1 #ifort + PREPROCESS_KEY = -fpp -DFCOMPILER=$(fcompiler) opt_keys = -O3 #-openmp #-fp-model source check_keys = -traceback #-g -check all -fpe-all=0 endif @@ -39,12 +42,13 @@ # check_keys = -fbacktrace #-traceback#-g -check all -fpe-all=0 #endif ifeq ($(FC),gfortran) - PREPROCESS_KEY = -cpp + fcompiler = 2 #gfortran + PREPROCESS_KEY = -cpp -DFCOMPILER=$(fcompiler) #opt_keys = -fopenmp -O3 #-fp-model source #check_keys = -g -Wall -Warray-temporaries -Wconversion -fbacktrace -ffree-line-length-0 -fcheck=all -ffpe-trap=invalid,zero,overflow,underflow -finit-real=nan #check_keys = -g -ffpe-trap=invalid,zero,overflow,denormal -fcheck=all -fbacktrace - #check_keys = -g -ffpe-trap=invalid,zero,overflow -fcheck=all -fbacktrace - #check_keys = -g -fcheck=all -fbacktrace + #check_keys = -g -fopenmp -ffpe-trap=invalid,zero,overflow -fcheck=all -fbacktrace + #check_keys = -g -fopenmp -fcheck=all -fbacktrace check_keys = -fopenmp -O3 -fbacktrace endif diff --git a/source/model/lake.f90 b/source/model/lake.f90 index b2045cf1e6ed2925035845c98410730987658fc6..01cb6d0783e6b0ce4a92309b99efc3f87c8e8e89 100644 --- a/source/model/lake.f90 +++ b/source/model/lake.f90 @@ -172,12 +172,19 @@ SUBROUTINE LAKE & & (tempair1,humair1,pressure1,uwind1,vwind1, & & longwave1,netrad1,shortwave1,precip1,Sflux01, & & ch4_pres_atm, co2_pres_atm, o2_pres_atm, zref1, dtl, & -& h10, l10, ls10, hs10, Ts0, Tb0, Tbb0, h_ML0, extwat, extice, & -& kor_in, trib_inflow, Sals0, Salb0, fetch, phi, lam, us0, vs0, & -& Tm, alphax, alphay, a_veg, c_veg, h_veg, area_lake, cellipt, depth_area, & -& tsw,hw1,xlew1,cdmw1,surfrad1,cloud1,SurfTemp1,ftot,fdiff_lake_surf1,h2_out, & -& ix,iy,nx0,ny0,nx,ny,nx_max,ny_max,ndatamax,year,month,day,hour,init_T,flag_assim,flag_print, & -& outpath1,spinup_done,dataread,lakeform,comm3d,rank_comm3d,coords,parallel,icp,step_final,LakePhysISIMIP) +& h10, l10, ls10, hs10, Ts0, & +& Tb0, Tbb0, h_ML0, extwat, extice, & +& kor_in, trib_inflow, Sals0, Salb0, fetch, & +& phi, lam, us0, vs0, Tm, & +& alphax, alphay, a_veg, c_veg, h_veg, & +& area_lake, cellipt, depth_area, tsw, hw1, & +& xlew1, cdmw1, surfrad1, cloud1, SurfTemp1, & +& ftot, fdiff_lake_surf1, h2_out, ix, iy, & +& nx0, ny0, nx, ny, nx_max, ny_max, & +& ndatamax, year, month, day, hour, & +& init_T, flag_assim, flag_print, outpath1, spinup_done, & +& dataread, lakeform, comm3d, rank_comm3d, coords, & +& parallel, icp, step_final, LakePhysISIMIP) !OUTPUT VARIABLES: !tsw--- surface temperature of a lake, K; @@ -647,7 +654,7 @@ if (tempair > 60. .or. tempair < -90. .or. (.not. VALUE_IS_FINITE(tempair) )) th elseif (abs(humair) > 1. .or. (.not. VALUE_IS_FINITE(humair) )) then print*, 'The air humidity ', humair, 'is illegal: STOP' flag = .true. -elseif (pressure > 110000 .or. pressure < 80000. .or. (.not. VALUE_IS_FINITE(pressure) )) then +elseif (pressure > 110000 .or. pressure < 20000. .or. (.not. VALUE_IS_FINITE(pressure) )) then print*, 'The air pressure ', pressure, 'is illegal: STOP' flag = .true. elseif (abs(uwind) > 200. .or. (.not. VALUE_IS_FINITE(uwind) )) then diff --git a/source/model/lake_datatypes_mod.f90 b/source/model/lake_datatypes_mod.f90 index e329818b708ebc3d68c082a537175b8857afaa05..c567dd5c996751835f8f79b2700f07edddbecf23 100644 --- a/source/model/lake_datatypes_mod.f90 +++ b/source/model/lake_datatypes_mod.f90 @@ -6,7 +6,11 @@ integer, parameter :: iintegers = 4 integer, parameter :: ireals = 8 !Compilation options -integer, parameter :: ibyterecl = 4 !> the length of one record in binary files: 1 for ifort, 4 for gfortran +#if FCOMPILER==1 +integer, parameter :: ibyterecl = 1 !> the length of one record in binary files: 1 for ifort +#elif FCOMPILER==2 +integer, parameter :: ibyterecl = 4 !> the length of one record in binary files: 4 for gfortran +#endif END MODULE LAKE_DATATYPES