Changeset 5f42c27 in flexpart.git
- Timestamp:
- May 13, 2015, 1:42:50 PM (9 years ago)
- Branches:
- master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
- Children:
- 598e9da
- Parents:
- fb0d416
- Files:
-
- 2 deleted
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
README_PARALLEL.md
rfb0d416 r5f42c27 120 120 FLEXPART-MPI is run with no (or just a few) particles, no performance 121 121 improvement is possible. In this case, most processing time is spent 122 in the 'getfields'-routine (ECMWF).122 in the 'getfields'-routine. 123 123 124 124 A) Running without dedicated reader process -
options/COMMAND
r5f9d14a r5f42c27 12 12 CTL= -5.0000000 , 13 13 IFINE= 4, 14 IOUT= 1,14 IOUT= 9, 15 15 IPOUT= 0, 16 16 LSUBGRID= 1, … … 28 28 SURF_ONLY= 0, 29 29 CBLFLAG= 0, 30 OHFIELDS_PATH= "../../flexin/", 30 31 / -
options/OUTGRID
rf9ce123 r5f42c27 6 6 ******************************************************************************** 7 7 8 1. ------.---- 4X,F11.4 9 -179.0000 GEOGRAFICAL LONGITUDE OF LOWER LEFT CORNER OF OUTPUT GRID 10 OUTLONLEFT (left boundary of the first grid cell - not its centre) 8 11 9 -179.0000 12 2. ------.---- 4X,F11.4 13 -90.0000 GEOGRAFICAL LATITUDE OF LOWER LEFT CORNER OF OUTPUT GRID 14 OUTLATLOWER (lower boundary of the first grid cell - not its centre) 15 16 3. ----- 4X,I5 17 720 NUMBER OF GRID POINTS IN X DIRECTION (= No. of cells + 1) 18 NUMXGRID 19 20 4. ----- 4X,I5 21 360 NUMBER OF GRID POINTS IN Y DIRECTION (= No. of cells + 1) 22 NUMYGRID 23 24 5. ------.--- 4X,F10.3 25 0.50 GRID DISTANCE IN X DIRECTION 26 DXOUTLON 27 28 6. ------.--- 4X,F10.3 29 0.50 GRID DISTANCE IN Y DIRECTION 30 DYOUTLAT 31 32 10. -----.- 4X, F7.1 33 1000.0 34 LEVEL 1 HEIGHT OF LEVEL (UPPER BOUNDARY) 35 36 10. -----.- 4X, F7.1 37 2000.0 38 LEVEL 2 HEIGHT OF LEVEL (UPPER BOUNDARY) 39 40 10. -----.- 4X, F7.1 41 3000.0 42 LEVEL 3 HEIGHT OF LEVEL (UPPER BOUNDARY) 43 44 10. -----.- 4X, F7.1 45 4000.0 46 LEVEL 4 HEIGHT OF LEVEL (UPPER BOUNDARY) 47 48 10. -----.- 4X, F7.1 49 5000.0 50 LEVEL 5 HEIGHT OF LEVEL (UPPER BOUNDARY) 51 52 10. -----.- 4X, F7.1 53 6000.0 54 LEVEL 6 HEIGHT OF LEVEL (UPPER BOUNDARY) 55 56 10. -----.- 4X, F7.1 57 7000.0 58 LEVEL 7 HEIGHT OF LEVEL (UPPER BOUNDARY) 59 60 10. -----.- 4X, F7.1 61 8000.0 62 LEVEL 8 HEIGHT OF LEVEL (UPPER BOUNDARY) 63 64 10. -----.- 4X, F7.1 65 9000.0 66 LEVEL 9 HEIGHT OF LEVEL (UPPER BOUNDARY) 67 68 10. -----.- 4X, F7.1 69 10000.0 70 LEVEL10 HEIGHT OF LEVEL (UPPER BOUNDARY) 71 72 10. -----.- 4X, F7.1 73 11000.0 74 LEVEL11 HEIGHT OF LEVEL (UPPER BOUNDARY) 75 76 10. -----.- 4X, F7.1 77 12000.0 78 LEVEL12 HEIGHT OF LEVEL (UPPER BOUNDARY) 79 80 10. -----.- 4X, F7.1 81 13000.0 82 LEVEL13 HEIGHT OF LEVEL (UPPER BOUNDARY) 83 84 10. -----.- 4X, F7.1 85 14000.0 86 LEVEL14 HEIGHT OF LEVEL (UPPER BOUNDARY) 87 88 10. -----.- 4X, F7.1 89 15000.0 90 LEVEL15 HEIGHT OF LEVEL (UPPER BOUNDARY) 91 92 10. -----.- 4X, F7.1 93 16000.0 94 LEVEL16 HEIGHT OF LEVEL (UPPER BOUNDARY) 95 96 10. -----.- 4X, F7.1 97 17000.0 98 LEVEL17 HEIGHT OF LEVEL (UPPER BOUNDARY) 99 100 10. -----.- 4X, F7.1 101 18000.0 102 LEVEL18 HEIGHT OF LEVEL (UPPER BOUNDARY) 103 104 10. -----.- 4X, F7.1 105 19000.0 106 LEVEL19 HEIGHT OF LEVEL (UPPER BOUNDARY) 107 108 10. -----.- 4X, F7.1 109 20000.0 110 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 111 112 10. -----.- 4X, F7.1 113 21000.0 114 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 115 116 10. -----.- 4X, F7.1 117 22000.0 118 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 119 120 10. -----.- 4X, F7.1 121 23000.0 122 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 123 124 10. -----.- 4X, F7.1 125 24000.0 126 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 127 128 10. -----.- 4X, F7.1 129 25000.0 130 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 131 132 10. -----.- 4X, F7.1 133 26000.0 134 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 135 136 10. -----.- 4X, F7.1 137 27000.0 138 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 139 140 10. -----.- 4X, F7.1 141 28000.0 142 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 143 144 10. -----.- 4X, F7.1 145 29000.0 146 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 147 148 10. -----.- 4X, F7.1 149 30000.0 150 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 151 152 10. -----.- 4X, F7.1 153 40000.0 154 LEVEL20 HEIGHT OF LEVEL (UPPER BOUNDARY) 10 155 11 156 12 13 -90.000014 15 16 17 36018 19 20 21 18022 23 24 25 1.00026 27 28 29 1.00030 31 32 33 400.034 35 36 37 1000.038 39 40 41 2000.042 43 44 45 3000.046 47 48 49 5000.050 51 52 53 7000.054 55 56 57 9000.058 59 60 61 12000.062 63 64 65 15000.066 67 68 69 20000.070 71 72 73 50000.074 75 76 -
options/RELEASES
rfb0d416 r5f42c27 16 16 ZKIND= 1, 17 17 MASS= 2.0000E8 , 18 PARTS= 2000000 018 PARTS= 2000000 19 19 COMMENT="TEST1 ", 20 20 / … … 32 32 ZKIND= 1, 33 33 MASS= 2.0000E8 , 34 PARTS= 2000000 034 PARTS= 2000000 35 35 COMMENT="TEST2 ", 36 36 / -
options/SPECIES/SPECIES_108
rf9ce123 r5f42c27 3 3 * Input file for the Lagrangian particle dispersion model FLEXPART * 4 4 * Definition file of chemical species/radionuclides * 5 * ESO: edited to work with Rona's changes+Henrik*5 * This file is on the format required by version 10 (05/2015) * 6 6 **************************************************************************** 7 7 SO2 Tracer name … … 19 19 -9.99 Alternative: dry deposition velocity 20 20 64.00 molweight 21 -1.35E-14 OH Reaction rate - C [cm^3/molecule/sec]21 1.35E-14 OH Reaction rate - C [cm^3/molecule/sec] 22 22 120.0 OH Reaction rate - D [K] 23 23 2.0 OH Reaction rate - N (no unit) -
src/FLEXPART.f90
r8a65cb0 r5f42c27 69 69 70 70 ! FLEXPART version string 71 flexversion='Version 10.0 pre (2015-03-01)'71 flexversion='Version 10.0beta (2015-05-01)' 72 72 verbosity=0 73 73 -
src/FLEXPART_MPI.f90
rfb0d416 r5f42c27 77 77 78 78 ! FLEXPART version string 79 flexversion='Ver. 10 .0pre MPI (2015-03-01)'79 flexversion='Ver. 10 Beta MPI (2015-05-01)' 80 80 verbosity=0 81 81 … … 337 337 338 338 if (mp_measure_time) call mpif_mtime('iotime',0) 339 ! :DEV: was a bug here (all processes writing)?340 339 if (lroot) then ! MPI: this part root process only 341 340 -
src/com_mod.f90
rf9ce123 r5f42c27 26 26 integer :: length(numpath+2*maxnests) 27 27 character(len=256) :: pathfile, flexversion, arg1, arg2 28 character(len=256) :: ohfields_path 28 29 29 30 ! path path names needed for trajectory model … … 32 33 ! flexversion version of flexpart 33 34 ! arg input arguments from launch at command line 35 ! ohfields_path path to binary files for OH fields 34 36 35 37 !******************************************************** -
src/makefile
rfb0d416 r5f42c27 36 36 37 37 ## COMPILERS 38 #F90 = /usr/bin/gfortran39 F90 = ${HOME}/gcc-4.9.1/bin/gfortran38 F90 = /usr/bin/gfortran 39 #F90 = ${HOME}/gcc-4.9.1/bin/gfortran 40 40 #MPIF90 = ${HOME}/opt/bin/mpifort 41 41 #MPIF90 = mpif90.mpich 42 #MPIF90 = mpif90.openmpi43 MPIF90 = mpifort42 MPIF90 = mpif90.openmpi 43 #MPIF90 = mpifort 44 44 45 45 ## OPTIMIZATION LEVEL … … 51 51 52 52 ## 1) System libraries at NILU 53 #INCPATH1 = /usr/include54 # 55 #LIBPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/lib56 # 53 INCPATH1 = /usr/include 54 #INCPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/include 55 LIBPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/lib 56 #LIBPATH2 = /usr/lib/x86_64-linux-gnu 57 57 58 58 ## 2) Home-made libraries 59 INCPATH1 = ${HOME}/include59 # INCPATH1 = ${HOME}/include 60 60 INCPATH2 = /homevip/flexpart/include/ 61 61 LIBPATH2 = /homevip/flexpart/lib/ 62 LIBPATH1 = ${HOME}/lib 63 #LIBPATH2 = ${HOME}/lib 62 # LIBPATH1 = ${HOME}/lib 64 63 65 64 FFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV) -g -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV) -mtune=native -fuse-linker-plugin $(FUSER) # -march=native … … 191 190 %.o: %.mod 192 191 192 ecmwf: $(FLEXPART-ECMWF) 193 ecmwf: FC := $(F90) 194 193 195 ecmwf-mpi: $(FLEXPART-ECMWF-MPI) 194 196 ecmwf-mpi: FC := $(MPIF90) … … 199 201 ecmwf-mpi-dbg: FC := $(MPIF90) 200 202 201 ecmwf: $(FLEXPART-ECMWF)202 ecmwf: FC := $(F90)203 204 203 gfs: $(FLEXPART-GFS) 205 204 gfs: FC := $(F90) … … 210 209 #all: $(FLEXPART-ECMWF-MPI) 211 210 211 $(FLEXPART-ECMWF): $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_ECMWF) 212 +$(FC) -o $@ $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_ECMWF) $(LDFLAGS) 213 212 214 $(FLEXPART-ECMWF-MPI): $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI) $(OBJECTS_ECMWF_MPI) 213 215 +$(FC) -o $@ $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI) \ … … 219 221 +$(FC) -o $@ $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI) \ 220 222 $(OBJECTS_ECMWF_MPI) $(LDFLAGS) 221 222 $(FLEXPART-ECMWF): $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_ECMWF)223 +$(FC) -o $@ $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_ECMWF) $(LDFLAGS)224 223 225 224 $(FLEXPART-GFS): $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_GFS) -
src/mpi_mod.f90
rfb0d416 r5f42c27 117 117 logical, parameter :: mp_dbg_out = .false. 118 118 logical, parameter :: mp_time_barrier=.true. 119 logical, parameter :: mp_measure_time=. true.119 logical, parameter :: mp_measure_time=.false. 120 120 121 121 ! for measuring CPU/Wall time … … 139 139 real(dp) :: mp_conccalc_time_beg, mp_conccalc_time_end, mp_conccalc_time_total=0. 140 140 real(dp) :: mp_total_wtime_beg, mp_total_wtime_end, mp_total_wtime_total=0. 141 real(dp) :: mp_vt_wtime_beg, mp_vt_wtime_end, mp_vt_wtime_total 142 real(sp) :: mp_vt_time_beg, mp_vt_time_end, mp_vt_time_total 141 143 142 144 ! dat_lun logical unit number for i/o … … 418 420 419 421 420 421 422 ! redefine numpart as 'numpart per process' throughout the code 422 423 !************************************************************** … … 438 439 439 440 integer :: i 440 441 442 !***********************************************************************443 444 441 445 442 ! Time for MPI communications … … 1734 1731 end if 1735 1732 1736 1737 1733 if ((WETDEP).and.(ldirect.gt.0)) then 1738 1734 call MPI_Reduce(wetgriduncn, wetgriduncn0, grid_size2d, mp_pp, MPI_SUM, id_root, & … … 1852 1848 mp_io_time_total = mp_io_time_total + (mp_io_time_end - & 1853 1849 & mp_io_time_beg) 1850 end if 1851 1852 case ('verttransform') 1853 if (imode.eq.0) then 1854 mp_vt_wtime_beg = mpi_wtime() 1855 call cpu_time(mp_vt_time_beg) 1856 else 1857 mp_vt_wtime_end = mpi_wtime() 1858 call cpu_time(mp_vt_time_end) 1859 1860 mp_vt_wtime_total = mp_vt_wtime_total + (mp_vt_wtime_end - & 1861 & mp_vt_wtime_beg) 1862 mp_vt_time_total = mp_vt_time_total + (mp_vt_time_end - & 1863 & mp_vt_time_beg) 1854 1864 end if 1855 1865 … … 1956 1966 write(*,FMT='(A60,TR1,F9.2)') 'TOTAL WALL TIME FOR CONCCALC:',& 1957 1967 & mp_conccalc_time_total 1968 ! write(*,FMT='(A60,TR1,F9.2)') 'TOTAL WALL TIME FOR VERTTRANSFORM:',& 1969 ! & mp_vt_wtime_total 1970 ! write(*,FMT='(A60,TR1,F9.2)') 'TOTAL CPU TIME FOR VERTTRANSFORM:',& 1971 ! & mp_vt_time_total 1958 1972 ! NB: the 'flush' function is possibly a gfortran-specific extension 1959 1973 call flush() … … 2021 2035 subroutine write_data_dbg(array_in, array_name, tstep, ident) 2022 2036 !*********************************************************************** 2023 ! Write one-dimensional arrays to disk(for debugging purposes)2037 ! Write one-dimensional arrays to file (for debugging purposes) 2024 2038 !*********************************************************************** 2025 2039 implicit none -
src/readOHfield.f90
rfb0d416 r5f42c27 68 68 ! open netcdf file 69 69 write(mm,fmt='(i2.2)') m 70 thefile=trim(path(1))//'OH_FIELDS/'//'geos-chem.OH.2005'//mm//'01.nc' 70 ! thefile=trim(path(1))//'OH_FIELDS/'//'geos-chem.OH.2005'//mm//'01.nc' 71 thefile=trim(ohfields_path)//'OH_FIELDS/'//'geos-chem.OH.2005'//mm//'01.nc' 71 72 ierr=nf_open(trim(thefile),NF_NOWRITE,nid) 72 73 if(ierr.ne.0) then … … 162 163 163 164 ! open netcdf file 164 thefile=trim(path(1))//'OH_FIELDS/jrate_average.nc' 165 ! thefile=trim(path(1))//'OH_FIELDS/jrate_average.nc' 166 thefile=trim(ohfields_path)//'OH_FIELDS/jrate_average.nc' 165 167 ierr=nf_open(trim(thefile),NF_NOWRITE,nid) 166 168 if(ierr.ne.0) then -
src/readcommand.f90
r8a65cb0 r5f42c27 111 111 lnetcdfout, & 112 112 surf_only, & 113 cblflag 113 cblflag, & 114 ohfields_path 114 115 115 116 ! Presetting namelist command … … 143 144 surf_only=0 144 145 cblflag=0 146 ohfields_path="../../flexin/" 145 147 146 148 ! Open the command file and read user options … … 232 234 if (old) call skplin(3,unitcommand) !added by mc 233 235 read(unitcommand,*) cblflag !added by mc 236 234 237 close(unitcommand) 235 238 -
src/readreleases.f90
r5f9d14a r5f42c27 385 385 if (ohcconst(i).gt.0.) then 386 386 OHREA=.true. 387 write (*,*) 'OHreaction switched on: ',ohcconst(i),i387 if (lroot) write (*,*) 'OHreaction switched on: ',ohcconst(i),i 388 388 endif 389 389 -
src/timemanager.f90
r8a65cb0 r5f42c27 657 657 if (linit_cond.ge.1) call initial_cond_output(itime) ! dump initial cond. field 658 658 659 close(104)659 !close(104) 660 660 661 661 ! De-allocate memory and end
Note: See TracChangeset
for help on using the changeset viewer.