Changeset fe118c0 in flexpart.git
- Timestamp:
- May 7, 2020, 2:59:59 PM (4 years ago)
- Branches:
- 10.4.1_pesei, bugfixes+enhancements, release-10.4.1, scaling-bug
- Children:
- 5cbd51b
- Parents:
- 3d7eebf
- Location:
- src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/makefile
rc56da45 rfe118c0 1 # SPDX-FileCopyrightText: FLEXPART 1998-2019, see flexpart_license.txt 2 # SPDX-License-Identifier: GPL-3.0-or-later 3 1 4 SHELL = /bin/bash 2 ################################################################################ 5 6 ############################################################## 3 7 # DESCRIPTION 4 # Makefile for FLEXPART. Standard (serial) and parallel (MPI) version 5 # 6 # Dependencies are resolved in this makefile, so parallel make is 7 # possible ("make -j") 8 # 9 # At NILU we have installed gcc-4.9.1 and libraries under user /homevip/flexpart 10 # ("ROOT_DIR") 11 # To use gfortran version 4.9, add "gcc=4.9" to the make command, e.g. 12 # 'make -j ecmwf gcc=4.9', 13 # also set environment variable LD_LIBRARY_PATH to point to compiler libraries 14 # 15 # Makefile was modified to produce unified executable for both ECMWF and GFS meteo data formats 16 # gributils were included to detect format of meteo data 17 # 18 # Cpp directives USE_MPIINPLACE were added to three source files. The effect of these directives 19 # are to enable the MPI_IN_PLACE option only if compiled with a -DUSE_MPIINPLACE directive. 20 # Otherwise, a safer option (which requires the allocation of another array) is used by default. 21 # In makefile added the -x f95-cpp-input flag for compiling of cpp directives. 8 # Makefile for FLEXPART. 9 # Standard (serial) and parallel (MPI) version 10 # 11 # Dependencies are resolved in this makefile, 12 # so parallel make is possible ("make -j") 13 # 14 # At NILU we have installed gcc-4.9.1 and libraries under 15 # user /homevip/flexpart ("ROOT_DIR"). You may adapt that 16 # for your needs; also set environment variable 17 # LD_LIBRARY_PATH to point to compiler libraries if not in 18 # the standard location 19 # There are different definitions of paths included below 20 # You have to comment them in or out according to your 21 # environment, or adapt them! 22 # 23 # cpp directives USE_MPIINPLACE were added to three 24 # source files. The effect of these directives is to enable 25 # the MPI_IN_PLACE option only if compiled with a 26 # -DUSE_MPIINPLACE directive. Otherwise, a safer option 27 # (which requires the allocation of another array) is used by default. 28 # -x f95-cpp-input added for compiling of cpp directives. 22 29 # 23 30 # USAGE 24 31 # Compile serial FLEXPART 25 32 # make [-j] serial 33 # or simply 34 # make [-j] 26 35 # 27 36 # Compile parallel FLEXPART … … 50 59 FLEXPART-SERIAL = FLEXPART 51 60 52 53 ifeq ($(gcc), 4.9) 54 # Compiled libraries under user ~flexpart, gfortran v4.9 55 ROOT_DIR = /homevip/flexpart/ 56 57 F90 = ${ROOT_DIR}/gcc-4.9.1/bin/gfortran 58 MPIF90 = ${ROOT_DIR}/bin/mpifort 59 60 INCPATH1 = ${ROOT_DIR}/gcc-4.9.1/include 61 INCPATH2 = ${ROOT_DIR}/include 62 LIBPATH1 = ${ROOT_DIR}/lib 63 else 64 # Compiled libraries under user ~flexpart, gfortran v5.4 65 ROOT_DIR = /homevip/flexpart/ 66 67 F90 = /usr/bin/gfortran 68 MPIF90 = /usr/bin/mpifort 69 70 INCPATH1 = ${ROOT_DIR}/gcc-5.4.0/include 71 INCPATH2 = /usr/include 72 LIBPATH1 = ${ROOT_DIR}/gcc-5.4.0/lib 73 endif 74 61 # the following is for NILU only 62 63 #ifeq ($(gcc), 4.9) 64 ## Compiled libraries under user ~flexpart, gfortran v4.9 65 # ROOT_DIR = /homevip/flexpart/ 66 # 67 # F90 = ${ROOT_DIR}/gcc-4.9.1/bin/gfortran 68 # MPIF90 = ${ROOT_DIR}/bin/mpifort 69 # 70 # INCPATH1 = ${ROOT_DIR}/gcc-4.9.1/include 71 # INCPATH2 = ${ROOT_DIR}/include 72 # LIBPATH1 = ${ROOT_DIR}/lib 73 #else 74 ## Compiled libraries under user ~flexpart, gfortran v5.4 75 # ROOT_DIR = /homevip/flexpart/ 76 # 77 # F90 = /usr/bin/gfortran 78 # MPIF90 = /usr/bin/mpifort 79 # 80 # INCPATH1 = ${ROOT_DIR}/gcc-5.4.0/include 81 # INCPATH2 = /usr/include 82 # LIBPATH1 = ${ROOT_DIR}/gcc-5.4.0/lib 83 #endif 84 85 # the following works on a Debian stretch machine 86 87 F90 = gfortran 88 MPIF90 = mpifort 89 90 INCPATH1 = /usr/include/ 91 INCPATH2 = ./ 92 LIBPATH1 = /usr/lib/ 93 94 # the following works on a Debian buster (and probably newer) machine 95 # F90 = gfortran 96 # MPIF90 = mpifort 97 # 98 # INCPATH1 = /usr/lib/x86_64-linux-gnu/fortran/gfortran-mod-15 99 # INCPATH2 = /usr/include 100 # LIBPATH1 = /usr/lib/x86_64-linux-gnu/ 75 101 76 102 ### Enable netCDF output? … … 88 114 89 115 ## OPTIMIZATION LEVEL 90 O_LEV = 0 # [0,1,2,3,g,s,fast]91 O_LEV_DBG = g # [0,g]116 O_LEV = 2 # [0,1,2,3,g,s,fast] # 0 may give trouble; then use -mcmdoel=large 117 O_LEV_DBG = 0 # [0,g] # use g only for debugging 92 118 93 119 ## LIBRARIES 94 #LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper -lnetcdff95 120 LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper $(NCOPT) 96 121 97 FFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV) -g -cpp -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV) $(NCOPT) $(FUSER) #-Warray-bounds -fcheck=all # -march=native 98 99 DBGFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV_DBG) -g3 -ggdb3 -cpp -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV_DBG) $(NCOPT) -fbacktrace -Wall -fdump-core $(FUSER) # -ffpe-trap=invalid,overflow,denormal,underflow,zero -Warray-bounds -fcheck=all 100 101 LDFLAGS = $(FFLAGS) -L$(LIBPATH1) -Wl,-rpath,$(LIBPATH1) $(LIBS) #-L$(LIBPATH2) 102 LDDEBUG = $(DBGFLAGS) -L$(LIBPATH1) $(LIBS) #-L$(LIBPATH2) 122 FFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV) -g -cpp -m64 -mcmodel=medium \ 123 -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 \ 124 -flto=jobserver -O$(O_LEV) $(NCOPT) $(FUSER) #-Warray-bounds -fcheck=all # -march=native 125 126 DBGFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV_DBG) -g3 -ggdb3 -cpp \ 127 -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 \ 128 -fmessage-length=0 -flto=jobserver -O$(O_LEV_DBG) $(NCOPT) \ 129 -fbacktrace -Wall -fdump-core $(FUSER) -fcheck=all #\ 130 # -ffpe-trap=invalid,overflow,denormal,underflow,zero 131 132 LDFLAGS = $(FFLAGS) -L$(LIBPATH1) -Wl,-rpath,$(LIBPATH1) $(LIBS) 133 LDDEBUG = $(DBGFLAGS) -L$(LIBPATH1) $(LIBS) 103 134 104 135 MODOBJS = \ … … 147 178 readwind_ecmwf_mpi.o 148 179 149 OBJECTS_NCF = netcdf_output_mod.o 180 ifeq ($(ncf), yes) 181 OBJECTS_NCF = netcdf_output_mod.o 182 endif 150 183 151 184 OBJECTS = \ … … 258 291 random_mod.o 259 292 calcfluxes.o: com_mod.o flux_mod.o outg_mod.o par_mod.o 260 calcmatrix.o: com_mod.o conv_mod.o par_mod.o 261 calcpar.o: com_mod.o par_mod.o 293 calcmatrix.o: com_mod.o conv_mod.o par_mod.o class_gribfile_mod.o 294 calcpar.o: com_mod.o par_mod.o class_gribfile_mod.o 262 295 calcpar_nests.o: com_mod.o par_mod.o 263 296 calcpv.o: com_mod.o par_mod.o … … 292 325 conv_mod.o: par_mod.o 293 326 convect43c.o: conv_mod.o par_mod.o 294 convmix.o: com_mod.o conv_mod.o flux_mod.o par_mod.o 327 convmix.o: com_mod.o conv_mod.o flux_mod.o par_mod.o class_gribfile_mod.o 295 328 coordtrafo.o: com_mod.o par_mod.o point_mod.o 296 detectformat.o: com_mod.o par_mod.o 329 detectformat.o: com_mod.o par_mod.o class_gribfile_mod.o 297 330 distance.o: par_mod.o 298 331 distance2.o: par_mod.o … … 300 333 drydepokernel_nest.o: com_mod.o par_mod.o unc_mod.o 301 334 erf.o: par_mod.o 302 FLEXPART.o: com_mod.o conv_mod.o netcdf_output_mod.o par_mod.o point_mod.o \ 335 ifeq ($(ncf), yes) 336 FLEXPART.o: com_mod.o conv_mod.o par_mod.o point_mod.o random_mod.o netcdf_output_mod.o class_gribfile_mod.o \ 303 337 random_mod.o 304 FLEXPART_MPI.o: com_mod.o conv_mod.o mpi_mod.o netcdf_output_mod.o par_mod.o \ 305 point_mod.o random_mod.o 338 FLEXPART_MPI.o: com_mod.o conv_mod.o mpi_mod.o netcdf_output_mod.o par_mod.o \ 339 point_mod.o random_mod.o class_gribfile_mod.o 340 netcdf_output_mod.o: com_mod.o mean_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o 341 timemanager.o: com_mod.o flux_mod.o netcdf_output_mod.o oh_mod.o outg_mod.o \ 342 par_mod.o point_mod.o unc_mod.o xmass_mod.o 343 timemanager_mpi.o: com_mod.o flux_mod.o mpi_mod.o netcdf_output_mod.o \ 344 oh_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o xmass_mod.o 345 else 346 FLEXPART.o: com_mod.o conv_mod.o par_mod.o point_mod.o random_mod.o class_gribfile_mod.o random_mod.o 347 FLEXPART_MPI.o: com_mod.o conv_mod.o mpi_mod.o par_mod.o point_mod.o random_mod.o class_gribfile_mod.o 348 timemanager.o: com_mod.o flux_mod.o oh_mod.o outg_mod.o \ 349 par_mod.o point_mod.o unc_mod.o xmass_mod.o 350 timemanager_mpi.o: com_mod.o flux_mod.o mpi_mod.o \ 351 oh_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o xmass_mod.o 352 endif 306 353 fluxoutput.o: com_mod.o flux_mod.o outg_mod.o par_mod.o 307 354 get_settling.o: com_mod.o par_mod.o 308 355 get_vdep_prob.o: com_mod.o interpol_mod.o par_mod.o point_mod.o 309 356 get_wetscav.o: com_mod.o par_mod.o point_mod.o 310 getfields.o: com_mod.o par_mod.o 311 getfields_mpi.o: com_mod.o mpi_mod.o par_mod.o 357 getfields.o: com_mod.o par_mod.o class_gribfile_mod.o 358 getfields_mpi.o: com_mod.o mpi_mod.o par_mod.o class_gribfile_mod.o 312 359 gethourlyOH.o: com_mod.o oh_mod.o par_mod.o 313 360 getrb.o: par_mod.o … … 346 393 mean_mod.o: par_mod.o 347 394 mpi_mod.o: com_mod.o par_mod.o unc_mod.o 348 netcdf_output_mod.o: com_mod.o mean_mod.o outg_mod.o par_mod.o point_mod.o \ 349 unc_mod.o 350 obukhov.o: par_mod.o 395 obukhov.o: par_mod.o class_gribfile_mod.o 351 396 ohreaction.o: com_mod.o oh_mod.o par_mod.o 352 397 openouttraj.o: com_mod.o par_mod.o point_mod.o … … 394 439 releaseparticles_mpi.o: com_mod.o mpi_mod.o par_mod.o point_mod.o \ 395 440 random_mod.o xmass_mod.o 396 richardson.o: par_mod.o 441 richardson.o: par_mod.o class_gribfile_mod.o 397 442 scalev.o: par_mod.o 398 443 shift_field.o: par_mod.o 399 444 shift_field_0.o: par_mod.o 400 timemanager.o: com_mod.o flux_mod.o netcdf_output_mod.o oh_mod.o outg_mod.o \401 par_mod.o point_mod.o unc_mod.o xmass_mod.o402 timemanager_mpi.o: com_mod.o flux_mod.o mpi_mod.o netcdf_output_mod.o \403 oh_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o xmass_mod.o404 445 unc_mod.o: par_mod.o 405 446 verttransform_ecmwf.o: cmapf_mod.o com_mod.o par_mod.o -
src/verttransform_ecmwf.f90
r92fab65 rfe118c0 37 37 !***************************************************************************** 38 38 ! Date: 2017-05-30 modification of a bug in ew. Don Morton (CTBTO project) * 39 !***************************************************************************** 40 ! PS 2020-07-05: 41 ! remove superfluous comma in write, write and open to lowercase 39 42 !***************************************************************************** 40 43 ! * … … 727 730 !teller(:)=0 728 731 virr=virr+1 729 WRITE(aspec, '(i3.3)'),virr732 write(aspec, '(i3.3)') virr 730 733 731 734 !if (readclouds) then … … 775 778 !OPEN(UNIT=114, FILE=fnameD,FORM='FORMATTED',STATUS = 'UNKNOWN') 776 779 !else 777 OPEN(UNIT=115, FILE=fnameH,FORM='FORMATTED',STATUS = 'UNKNOWN')778 OPEN(UNIT=116, FILE=fnameI,FORM='FORMATTED',STATUS = 'UNKNOWN')779 OPEN(UNIT=117, FILE=fnameJ,FORM='FORMATTED',STATUS = 'UNKNOWN')780 open(unit=115, file=fnameh,form='formatted',status = 'unknown') 781 open(unit=116, file=fnamei,form='formatted',status = 'unknown') 782 open(unit=117, file=fnamej,form='formatted',status = 'unknown') 780 783 !endif 781 784 ! … … 799 802 !CLOSE(114) 800 803 !else 801 CLOSE(115)802 CLOSE(116)803 CLOSE(117)804 close(115) 805 close(116) 806 close(117) 804 807 endif 805 808 !endif
Note: See TracChangeset
for help on using the changeset viewer.