- Timestamp:
- Apr 5, 2018, 12:30:54 PM (6 years ago)
- Branches:
- master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
- Children:
- 3f149cc
- Parents:
- 8fcfd08
- Location:
- src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/FLEXPART.f90
r0c00f1f ra9cf4b1 52 52 use com_mod 53 53 use conv_mod 54 use netcdf_output_mod, only: writeheader_netcdf 54 55 55 use random_mod, only: gasdev1 56 56 use class_gribfile 57 58 #ifdef USE_NCF 59 use netcdf_output_mod, only: writeheader_netcdf 60 #endif 57 61 58 62 implicit none … … 352 356 !****************************************************************** 353 357 358 #ifdef USE_NCF 354 359 if (lnetcdfout.eq.1) then 355 360 call writeheader_netcdf(lnest=.false.) … … 365 370 endif 366 371 endif 372 #endif 367 373 368 374 if (verbosity.gt.0) then -
src/FLEXPART_MPI.f90
r0c00f1f ra9cf4b1 53 53 use conv_mod 54 54 use mpi_mod 55 use netcdf_output_mod, only: writeheader_netcdf56 55 use random_mod, only: gasdev1 57 56 use class_gribfile 57 58 #ifdef USE_NCF 59 use netcdf_output_mod, only: writeheader_netcdf 60 #endif 58 61 59 62 implicit none … … 378 381 379 382 if (mp_measure_time) call mpif_mtime('iotime',0) 383 380 384 if (lroot) then ! MPI: this part root process only 381 382 if (lnetcdfout.eq.1) then383 call writeheader_netcdf(lnest=.false.)384 else385 call writeheader386 end if387 388 if (nested_output.eq.1) then389 if (lnetcdfout.eq.1) then390 call writeheader_netcdf(lnest=.true.)391 else392 call writeheader_nest393 endif394 endif395 396 ! 385 #ifdef USE_NCF 386 if (lnetcdfout.eq.1) then 387 call writeheader_netcdf(lnest=.false.) 388 else 389 call writeheader 390 end if 391 392 if (nested_output.eq.1) then 393 if (lnetcdfout.eq.1) then 394 call writeheader_netcdf(lnest=.true.) 395 else 396 call writeheader_nest 397 endif 398 endif 399 #endif 400 397 401 if (verbosity.gt.0) then 398 402 print*,'call writeheader' … … 402 406 ! FLEXPART 9.2 ticket ?? write header in ASCII format 403 407 call writeheader_txt 404 !if (nested_output.eq.1) call writeheader_nest 408 405 409 if (nested_output.eq.1.and.surf_only.ne.1) call writeheader_nest 406 410 if (nested_output.eq.1.and.surf_only.eq.1) call writeheader_nest_surf … … 409 413 410 414 if (mp_measure_time) call mpif_mtime('iotime',0) 411 412 !open(unitdates,file=path(2)(1:length(2))//'dates')413 415 414 416 if (verbosity.gt.0 .and. lroot) then -
src/makefile
rccc9ec2 ra9cf4b1 31 31 # make [-j] mpi-dbg 32 32 # 33 # NETCDF OUTPUT 34 # To add support for output in netCDF format, append `ncf=yes` to the 35 # `make` command 36 # 33 37 ################################################################################ 34 38 … … 57 61 INCPATH2 = ${ROOT_DIR}/include 58 62 LIBPATH1 = ${ROOT_DIR}/lib 59 60 else #ifeq ($(gcc), 5.4) 63 else 61 64 # Compiled libraries under user ~flexpart, gfortran v5.4 62 65 ROOT_DIR = /homevip/flexpart/ … … 68 71 INCPATH2 = /usr/include 69 72 LIBPATH1 = ${ROOT_DIR}/gcc-5.4.0/lib 70 71 #else72 # Default: System libraries at NILU, gfortran v4.673 # F90 = /usr/bin/gfortran74 # MPIF90 = /usr/bin/mpif90.openmpi75 76 # INCPATH1 = /xnilu_wrk/projects/FLEXPART/flex_wrk/bin64/grib_api/include77 # INCPATH2 = /usr/include78 # LIBPATH1 = /xnilu_wrk/projects/FLEXPART/flex_wrk/bin64/grib_api/lib79 73 endif 74 75 76 ### Enable netCDF output? 77 ifeq ($(ncf), yes) 78 NCOPT = -DUSE_NCF -lnetcdff 79 else 80 NCOPT = -UUSE_NCF 81 endif 82 80 83 81 84 … … 89 92 90 93 ## LIBRARIES 91 LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper -lnetcdff # -fopenmp 92 93 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) $(FUSER) #-Warray-bounds -fcheck=all # -march=native 94 95 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) -fbacktrace -Wall -fdump-core $(FUSER) # -ffpe-trap=invalid,overflow,denormal,underflow,zero -Warray-bounds -fcheck=all 94 #LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper -lnetcdff 95 LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper $(NCOPT) 96 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 96 100 97 101 LDFLAGS = $(FFLAGS) -L$(LIBPATH1) -Wl,-rpath,$(LIBPATH1) $(LIBS) #-L$(LIBPATH2) … … 139 143 getfields_mpi.o \ 140 144 readwind_ecmwf_mpi.o 145 146 OBJECTS_NCF = netcdf_output_mod.o 141 147 142 148 OBJECTS = \ … … 196 202 dynamic_viscosity.o get_settling.o \ 197 203 initialize_cbl_vel.o re_initialize_particle.o \ 198 cbl.o netcdf_output_mod.o 204 cbl.o 205 206 ifeq ($(ncf), yes) 207 OBJECTS := $(OBJECTS) $(OBJECTS_NCF) 208 endif 199 209 200 210 %.o: %.mod -
src/par_mod.f90
r1f55de1 ra9cf4b1 148 148 ! ECMWF 149 149 ! integer,parameter :: nxmax=361,nymax=181,nuvzmax=92,nwzmax=92,nzmax=92,nxshift=359 ! 1.0 degree 92 level 150 integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 1.0 degree 138 level 150 ! integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 1.0 degree 138 level 151 integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=0 ! 1.0 degree 138 level 151 152 ! integer,parameter :: nxmax=721,nymax=361,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 0.5 degree 138 level 152 153 ! integer,parameter :: nxmax=181,nymax=91,nuvzmax=92,nwzmax=92,nzmax=92,nxshift=0 ! CERA 2.0 degree 92 level … … 209 210 !integer,parameter :: maxxgrid=361,maxygrid=181,maxxgridn=0,maxygridn=0) 210 211 211 integer,parameter :: maxreceptor=20 212 integer,parameter :: maxreceptor=200 212 213 213 214 ! maxreceptor maximum number of receptor points … … 218 219 !************************************************** 219 220 220 integer,parameter :: maxpart= 100000221 integer,parameter :: maxspec= 1221 integer,parameter :: maxpart=3000000 222 integer,parameter :: maxspec=6 222 223 223 224 real,parameter :: minmass=0.0001 … … 262 263 !********************************* 263 264 264 integer,parameter :: maxrand= 1000000265 integer,parameter :: maxrand=200000000 265 266 266 267 ! maxrand number of random numbers used -
src/readOHfield.f90
rb1e0742 ra9cf4b1 95 95 read(unitOH) ((((OH_field(i,j,k,l),i=1,nxOH),j=1,nyOH),k=1,nzOH),l=1,12) 96 96 read(unitOH) ((((OH_hourly(i,j,k,l),i=1,nxOH),j=1,nyOH),k=1,nzOH),l=1,2) 97 write(*,*) 'nzOH: ',nzOH,(altOH(i),i=1,nzOH)98 97 99 98 end subroutine readOHfield -
src/readcommand.f90
r01e6052 ra9cf4b1 392 392 endif 393 393 394 ! check for netcdf output switch (use for non-namelist input only!) 394 ! Check for netcdf output switch 395 !******************************* 395 396 if (iout.ge.8) then 396 397 lnetcdfout = 1 397 398 iout = iout - 8 398 ! #ifndef NETCDF_OUTPUT 399 ! print*,'ERROR: netcdf output not activated during compile time but used in COMMAND file!'400 ! print*,'Please recompile with netcdf libraryor use standard output format.'401 !stop402 !#endif399 #ifndef USE_NCF 400 write(*,*) 'ERROR: netcdf output not activated during compile time but used in COMMAND file!' 401 write(*,*) 'Please recompile with netcdf library (`make [...] ncf=yes`) or use standard output format.' 402 stop 403 #endif 403 404 endif 404 405 -
src/timemanager.f90
rfe32dca ra9cf4b1 101 101 use par_mod 102 102 use com_mod 103 #ifdef USE_NCF 103 104 use netcdf_output_mod, only: concoutput_netcdf,concoutput_nest_netcdf,& 104 105 &concoutput_surf_netcdf,concoutput_surf_nest_netcdf 106 #endif 105 107 106 108 implicit none … … 389 391 if (surf_only.ne.1) then 390 392 if (lnetcdfout.eq.1) then 393 #ifdef USE_NCF 391 394 call concoutput_netcdf(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) 395 #endif 392 396 else 393 397 call concoutput(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) … … 399 403 write(*,*) 'system clock',count_clock - count_clock0 400 404 endif 401 if (lnetcdfout.eq.1) then 405 if (lnetcdfout.eq.1) then 406 #ifdef USE_NCF 402 407 call concoutput_surf_netcdf(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) 408 #endif 403 409 else 404 410 call concoutput_surf(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) … … 419 425 endif 420 426 else 427 #ifdef USE_NCF 421 428 if (surf_only.ne.1) then 422 429 call concoutput_nest_netcdf(itime,outnum) … … 424 431 call concoutput_surf_nest_netcdf(itime,outnum) 425 432 endif 433 #endif 426 434 endif 427 435 endif -
src/timemanager_mpi.f90
rb1e0742 ra9cf4b1 102 102 use com_mod 103 103 use mpi_mod 104 #ifdef USE_NCF 104 105 use netcdf_output_mod, only: concoutput_netcdf,concoutput_nest_netcdf,& 105 106 &concoutput_surf_netcdf,concoutput_surf_nest_netcdf 107 #endif 106 108 107 109 implicit none … … 481 483 if (lroot) then 482 484 if (lnetcdfout.eq.1) then 485 #ifdef USE_NCF 483 486 call concoutput_netcdf(itime,outnum,gridtotalunc,wetgridtotalunc,& 484 487 &drygridtotalunc) 488 #endif 485 489 else 486 490 call concoutput(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) … … 494 498 if (lroot) then 495 499 if (lnetcdfout.eq.1) then 500 #ifdef USE_NCF 496 501 call concoutput_surf_netcdf(itime,outnum,gridtotalunc,wetgridtotalunc,& 497 502 &drygridtotalunc) 503 #endif 498 504 else 499 505 call concoutput_surf(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) … … 513 519 call mpif_tm_reduce_grid_nest 514 520 515 if (mp_measure_time) call mpif_mtime('iotime',0)521 if (mp_measure_time) call mpif_mtime('iotime',0) 516 522 517 523 if (lnetcdfout.eq.0) then … … 526 532 else ! :TODO: check for zeroing in the netcdf module 527 533 call concoutput_surf_nest(itime,outnum) 528 529 534 end if 530 531 535 else 532 536 #ifdef USE_NCF 533 537 if (surf_only.ne.1) then 534 538 if (lroot) then … … 544 548 end if 545 549 endif 546 547 550 #endif 548 551 end if 549 552 end if 550 551 552 553 outnum=0. 553 554 endif
Note: See TracChangeset
for help on using the changeset viewer.