Changes in / [2753a5c:df96ea65] in flexpart.git
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
options/COMMAND
r6d73c4b r6d73c4b 16 16 ITSPLIT= 99999999, ! Interval of particle splitting (s) 17 17 LSYNCTIME= 900, ! All processes are synchronized to this time interval (s) 18 CTL= -5.0000000, ! CTL>1, ABL time step = (Lagrangian timescale (TL))/CTL, uses LSYNCTIME if CTL<018 CTL= -5.0000000, ! Times step smaller than Lagr. time scale, LSYNCTIME if CTL<0, but can be shorter 19 19 IFINE= 4, ! Reduction for time step in vertical transport, used only if CTL>1 20 20 IOUT= 1, ! Output type: [1]mass 2]pptv 3]1&2 4]plume 5]1&4, +8 for NetCDF output 21 21 IPOUT= 0, ! Particle position output: 0]no 1]every output 2]only at end 22 22 LSUBGRID= 0, ! Increase of ABL heights due to sub-grid scale orographic variations;[0]off 1]on 23 LCONVECTION= 1, ! Switch for convection parameterization;0]off [1]on23 LCONVECTION= 0, ! Switch for convection parameterization;[0]off 1]on 24 24 LAGESPECTRA= 0, ! Switch for calculation of age spectra (needs AGECLASSES);[0]off 1]on 25 IPIN= 0, ! Warm start from particle dump (needs previous partposit_end file); [0]no1]yes25 IPIN= 0, ! Warm start from particle dump (needs previous partposit_end file); 0]no [1]yes 26 26 IOUTPUTFOREACHRELEASE= 1, ! Separate output fields for each location in the RELEASE file; [0]no 1]yes 27 27 IFLUX= 0, ! Output of mass fluxes through output grid box boundaries 28 28 MDOMAINFILL= 0, ! Switch for domain-filling, if limited-area particles generated at boundary 29 IND_SOURCE= 1, ! Unit to be used at the source ; [1]mass 2]mass mixing ratio30 IND_RECEPTOR= 1, ! Unit to be used at the receptor; [1]mass 2]mass mixing ratio 3]wet depo. 4]dry depo.29 IND_SOURCE= 1, ! Unit to be used at the ource ; [1]mass 2]mass mixing ratio 30 IND_RECEPTOR= 1, ! Unit to be used at the receptor; [1]mass 2]mass mixing ratio 31 31 MQUASILAG= 0, ! Quasi-Lagrangian mode to track individual numbered particles 32 32 NESTED_OUTPUT= 0, ! Output also for a nested domain 33 LINIT_COND= 0, ! Output sensitivity to initial conditions (b kw mode only) [0]off 1]conc 2]mmr33 LINIT_COND= 0, ! Output sensitivity to initial conditions (backwards mode only) 34 34 SURF_ONLY= 0, ! Output only for the lowest model layer, used w/ LINIT_COND=1 or 2 35 35 CBLFLAG= 0, ! Skewed, not Gaussian turbulence in the convective ABL, need large CTL and IFINE -
options/RELEASES
r6d73c4b r6d73c4b 1 ************************************************************************* **************************************2 * 3 * 4 * 5 * Input file for the Lagrangian particle dispersion model FLEXPART 6 * Please select your options 7 * 8 * 9 * 10 ************************************************************************* **************************************1 ************************************************************************* 2 * * 3 * * 4 * * 5 * Input file for the Lagrangian particle dispersion model FLEXPART * 6 * Please select your options * 7 * * 8 * * 9 * * 10 ************************************************************************* 11 11 &RELEASES_CTRL 12 NSPEC = 1, ! Total number of species13 SPECNUM_REL= 24, ! Species numbers in directory SPECIES12 NSPEC = 1, 13 SPECNUM_REL= 24, 14 14 / 15 &RELEASE ! For each release16 IDATE1 = 20120101, ! Release start date, YYYYMMDD: YYYY=year, MM=month, DD=day17 ITIME1 = 090000, ! Release start time in UTC HHMISS: HH hours, MI=minutes, SS=seconds18 IDATE2 = 20120101, ! Release end date, same as IDATE119 ITIME2 = 090000, ! Release end time, same as ITIME120 LON1 = 0.000, ! Left longitude of release box -180 < LON1 <18021 LON2 = 0.000, ! Right longitude of release box, same as LON122 LAT1 = 20.000, ! Lower latitude of release box, -90 < LAT1 < 9023 LAT2 = 20.000, ! Upper latitude of release box same format as LAT124 Z1 = 50.000, ! Lower height of release box meters/hPa above reference level25 Z2 = 50.000, ! Upper height of release box meters/hPa above reference level26 ZKIND = 1, ! Reference level 1=above ground, 2=above sea level, 3 for pressure in hPa27 MASS = 1.0000E8, ! Total mass emitted, only relevant for fwd simulations28 PARTS = 10000, ! Total number of particles to be released29 COMMENT = "RELEASE 1", ! Comment, written in the outputfile15 &RELEASE 16 IDATE1 = 20120101, 17 ITIME1 = 090000, 18 IDATE2 = 20120101, 19 ITIME2 = 090000, 20 LON1 = 0.000, 21 LON2 = 0.000, 22 LAT1 = 20.000, 23 LAT2 = 20.000, 24 Z1 = 50.000, 25 Z2 = 50.000, 26 ZKIND = 1, 27 MASS = 1.0000E8, 28 PARTS = 10000, 29 COMMENT = "RELEASE 1", 30 30 / -
options/SPECIES/SPECIES_008
r79996be9 r8594fb8 19 19 POHDCONST=-9.9, ! OH Reaction rate - D [K] 20 20 POHNCONST=2.0, ! OH Reaction rate - N (no unit) 21 PAREA_HOUR=0.578, 0.491, 0.428, 0.329, 0.384, 0.485, 0.763, 1.103, 1.084, 1.047, 1.096, 1.196, 1.298, 1.357, 1.447, 1.565, 1.636, 1.662, 1.401, 1.168, 1.031, 0.926, 0.816, 0.709, 22 PPOINT_HOUR=0.845, 0.806, 0.786, 0.779, 0.793, 0.832, 0.895, 0.977, 1.031, 1.071, 1.105, 1.118, 1.131, 1.136, 1.143, 1.141, 1.133, 1.118, 1.097, 1.091, 1.079, 1.036, 0.966, 0.892, 23 PAREA_DOW=1.060, 1.060, 1.060, 1.060, 1.060, 0.900, 0.000, 24 PPOINT_DOW=1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 21 PAREA_HOUR=0.578, 0.491, 0.428, 0.329, 0.384, 0.485, 0.763, 1.103, 1.084, 1.047, 1.096, 1.196, 1.298, 1.357, 1.447, 1.565, 1.636, 1.662, 1.401, 1.168, 1.031, 0.926, 0.816, 0.709 22 PAREA_DOW=1.060, 1.060, 1.060, 1.060, 1.060, 0.900, 0.000 25 23 / -
src/FLEXPART.f90
r50958b8 r50958b8 455 455 call timemanager(metdata_format) 456 456 457 if (verbosity.gt.0) then458 457 ! NIK 16.02.2005 459 do i=1,nspec 460 if (tot_inc_count(i).gt.0) then 461 write(*,*) '**********************************************' 462 write(*,*) 'Scavenging statistics for species ', species(i), ':' 463 write(*,*) 'Total number of occurences of below-cloud scavenging', & 464 & tot_blc_count(i) 465 write(*,*) 'Total number of occurences of in-cloud scavenging', & 466 & tot_inc_count(i) 467 write(*,*) '**********************************************' 468 endif 469 end do 470 write (*,*) 'timemanager> call wetdepo' 471 endif 458 do i=1,nspec 459 write(*,*) '**********************************************' 460 write(*,*) 'Scavenging statistics for species ', species(i), ':' 461 write(*,*) 'Total number of occurences of below-cloud scavenging', & 462 & tot_blc_count(i) 463 write(*,*) 'Total number of occurences of in-cloud scavenging', & 464 & tot_inc_count(i) 465 write(*,*) '**********************************************' 466 end do 472 467 473 468 write(*,*) 'CONGRATULATIONS: YOU HAVE SUCCESSFULLY COMPLETED A FLE& -
src/com_mod.f90
re9e0f06 rc2bd55e 174 174 real :: ri(5,numclass),rac(5,numclass),rcl(maxspec,5,numclass) 175 175 real :: rgs(maxspec,5,numclass),rlu(maxspec,5,numclass) 176 real :: rm(maxspec),dryvel(maxspec) 176 real :: rm(maxspec),dryvel(maxspec),kao(maxspec) 177 177 real :: ohcconst(maxspec),ohdconst(maxspec),ohnconst(maxspec) 178 ! se it is possible to associate a species with a second one to make transfer from gas to aerosol 179 integer :: spec_ass(maxspec) 178 180 179 181 real :: area_hour(maxspec,24),point_hour(maxspec,24) -
src/get_wetscav.f90
re9e0f06 r79e0349 151 151 if (height(il).gt.ztra1(jpart)) then 152 152 hz=il-1 153 ! goto 26 153 154 exit 154 155 endif 155 156 end do 157 !26 continue 158 156 159 157 160 if (ngrid.eq.0) then … … 200 203 201 204 202 !ZHG oct 2014 : Calculated for 1) both 2) lsp 3) convp - 2 and 3 not used removed by SE205 !ZHG oct 2014 : Calculated for 1) both 2) lsp 3) convp 203 206 ! Tentatively differentiate the grfraction for lsp and convp for treating differently the two forms 204 207 ! for now they are treated the same 205 208 grfraction(1)=max(0.05,cc*(lsp*lfr(i)+convp*cfr(j))/(lsp+convp)) 209 grfraction(2)=max(0.05,cc*(lfr(i))) 210 grfraction(3)=max(0.05,cc*(cfr(j))) 211 206 212 207 213 ! 2) Computation of precipitation rate in sub-grid cell 208 214 !****************************************************** 209 215 prec(1)=(lsp+convp)/grfraction(1) 216 prec(2)=(lsp)/grfraction(2) 217 prec(3)=(convp)/grfraction(3) 218 210 219 211 220 ! 3) Computation of scavenging coefficients for all species 212 221 ! Computation of wet deposition 213 222 !********************************************************** 223 214 224 215 225 if (ngrid.gt.0) then … … 227 237 !****************************************************************** 228 238 if ((dquer(ks).le.0.).and.(weta_gas(ks).gt.0..or.wetb_gas(ks).gt.0.)) then 239 ! if (weta(ks).gt.0. .or. wetb(ks).gt.0.) then 229 240 blc_count(ks)=blc_count(ks)+1 230 241 wetscav=weta_gas(ks)*prec(1)**wetb_gas(ks) … … 260 271 endif 261 272 273 ! write(*,*) 'bl-cloud, act_temp=',act_temp, ',prec=',prec(1),',wetscav=', wetscav, ', jpart=',jpart 274 262 275 endif ! gas or particle 263 276 ! endif ! positive below-cloud scavenging parameters given in Species file … … 272 285 if ((ccn_aero(ks).gt.0. .or. in_aero(ks).gt.0.).or.(henry(ks).gt.0.and.dquer(ks).le.0)) then 273 286 inc_count(ks)=inc_count(ks)+1 287 ! write(*,*) 'Incloud: ',inc_count 274 288 ! if negative coefficients (turned off) set to zero for use in equation 275 289 if (ccn_aero(ks).lt.0.) ccn_aero(ks)=0. … … 286 300 ! sec test 287 301 ! cl=1E6*1E-7*prec(1)**0.3 !Sec GFS new 288 cl=1E6*2E-7*prec(1)**0.36 !Sec ECMWF new , is also suitable for GFS302 cl=1E6*2E-7*prec(1)**0.36 !Sec ECMWF new 289 303 ! cl=2E-7*prec(1)**0.36 !Andreas 290 304 ! cl=1.6E-6*prec(1)**0.36 !Henrik … … 308 322 if (dquer(ks).gt.0.) then 309 323 S_i= frac_act/cl 324 ! write(*,*) 'Si: ',S_i 325 310 326 ! GAS 311 327 !**** 312 328 else 329 313 330 cle=(1-cl)/(henry(ks)*(r_air/3500.)*act_temp)+cl 331 !REPLACE to switch old/ new scheme 332 ! S_i=frac_act/cle 314 333 S_i=1/cle 315 334 endif ! gas or particle 316 335 317 336 ! scavenging coefficient based on Hertel et al 1995 - using the S_i for either gas or aerosol 318 !SEC wetscav fix, the cloud height is no longer needed, it gives wrong results 337 !OLD 338 if ((readclouds.and.ngrid.eq.0).or.(readclouds_this_nest.and.ngrid.gt.0)) then 319 339 wetscav=incloud_ratio*S_i*(prec(1)/3.6E6) 340 else 341 !SEC wetscav fix 342 wetscav=incloud_ratio*S_i*(prec(1)/3.6E6) 343 ! wetscav=incloud_ratio*S_i*(prec(1)/3.6E6)/clouds_h 344 endif 320 345 endif ! positive in-cloud scavenging parameters given in Species file 321 346 endif !incloud -
src/netcdf_output_mod.f90
r4ad96c5 rae43937 67 67 ccn_aero,in_aero, & ! wetc_in,wetd_in, & 68 68 reldiff,henry,f0,density,dquer,dsigma,dryvel,& 69 weightmolar,ohcconst,ohdconst,vsetaver,& 69 ! weightmolar,ohreact,spec_ass,kao,vsetaver,& 70 weightmolar,ohcconst,ohdconst,spec_ass,kao,vsetaver,& 70 71 ! for concoutput_netcdf and concoutput_nest_netcdf 71 72 nxmin1,nymin1,nz,oro,oron,rho,rhon,& … … 113 114 logical, parameter :: write_area = .false. 114 115 115 ! coordinate transformation from internal to world coord116 real :: xp1,yp1,xp2,yp2117 116 contains 118 117 … … 513 512 call nf90_err(nf90_put_att(ncid, sID, 'ohcconst', ohcconst(i))) 514 513 call nf90_err(nf90_put_att(ncid, sID, 'ohdconst', ohdconst(i))) 514 call nf90_err(nf90_put_att(ncid, sID, 'kao', kao(i))) 515 515 call nf90_err(nf90_put_att(ncid, sID, 'vsetaver', vsetaver(i))) 516 call nf90_err(nf90_put_att(ncid, sID, 'spec_ass', spec_ass(i))) 516 517 517 518 if (lnest) then … … 534 535 call nf90_err(nf90_put_att(ncid, sID, 'ohcconst', ohcconst(i))) 535 536 call nf90_err(nf90_put_att(ncid, sID, 'ohdconst', ohdconst(i))) 537 call nf90_err(nf90_put_att(ncid, sID, 'kao', kao(i))) 536 538 call nf90_err(nf90_put_att(ncid, sID, 'vsetaver', vsetaver(i))) 539 call nf90_err(nf90_put_att(ncid, sID, 'spec_ass', spec_ass(i))) 537 540 538 541 if (lnest) then … … 670 673 call nf90_err(nf90_put_var(ncid, relendID, ireleaseend(i), (/i/))) 671 674 call nf90_err(nf90_put_var(ncid, relkindzID, kindz(i), (/i/))) 672 xp1=xpoint1(i)*dx+xlon0 673 yp1=ypoint1(i)*dy+ylat0 674 xp2=xpoint2(i)*dx+xlon0 675 yp2=ypoint2(i)*dy+ylat0 676 call nf90_err(nf90_put_var(ncid, rellng1ID, xp1, (/i/))) 677 call nf90_err(nf90_put_var(ncid, rellng2ID, xp2, (/i/))) 678 call nf90_err(nf90_put_var(ncid, rellat1ID, yp1, (/i/))) 679 call nf90_err(nf90_put_var(ncid, rellat2ID, yp2, (/i/))) 675 call nf90_err(nf90_put_var(ncid, rellng1ID, xpoint1(i), (/i/))) 676 call nf90_err(nf90_put_var(ncid, rellng2ID, xpoint2(i), (/i/))) 677 call nf90_err(nf90_put_var(ncid, rellat1ID, ypoint1(i), (/i/))) 678 call nf90_err(nf90_put_var(ncid, rellat2ID, ypoint2(i), (/i/))) 680 679 call nf90_err(nf90_put_var(ncid, relzz1ID, zpoint1(i), (/i/))) 681 680 call nf90_err(nf90_put_var(ncid, relzz2ID, zpoint2(i), (/i/))) -
src/readspecies.f90
rd6a245b raa8c34a 67 67 character(len=16) :: pspecies 68 68 real :: pdecay, pweta_gas, pwetb_gas, preldiff, phenry, pf0, pdensity, pdquer 69 real :: pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst 69 real :: pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pkao 70 70 real :: pcrain_aero, pcsnow_aero, pccn_aero, pin_aero 71 real :: parea_dow(7), parea_hour(24), ppoint_dow(7), ppoint_hour(24) 72 integer :: readerror 71 integer :: readerror, pspec_ass 73 72 74 73 ! declare namelist … … 77 76 pcrain_aero, pcsnow_aero, pccn_aero, pin_aero, & 78 77 preldiff, phenry, pf0, pdensity, pdquer, & 79 pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, & 80 parea_dow, parea_hour, ppoint_dow, ppoint_hour 78 pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pspec_ass, pkao 81 79 82 80 pspecies="" ! read failure indicator value … … 98 96 pohdconst=-9.9E-09 99 97 pohnconst=2.0 98 pspec_ass=-9 99 pkao=-99.99 100 100 pweightmolar=-999.9 101 101 102 do j=1,24 ! initialize everything to no variation103 area_hour(pos_spec,j)=1.104 point_hour(pos_spec,j)=1.105 end do106 do j=1,7107 area_dow(pos_spec,j)=1.108 point_dow(pos_spec,j)=1.109 end do110 111 if (readerror.ne.0) then ! text format input112 102 ! Open the SPECIES file and read species names and properties 113 103 !************************************************************ … … 174 164 read(unitspecies,'(f8.2)',end=22) ohnconst(pos_spec) 175 165 ! write(*,*) ohnconst(pos_spec) 176 177 ! Read in daily and day-of-week variation of emissions, if available 178 !******************************************************************* 179 180 read(unitspecies,*,end=22) 181 do j=1,24 ! 24 hours, starting with 0-1 local time 182 read(unitspecies,*) ihour,area_hour(pos_spec,j),point_hour(pos_spec,j) 183 end do 184 read(unitspecies,*) 185 do j=1,7 ! 7 days of the week, starting with Monday 186 read(unitspecies,*) idow,area_dow(pos_spec,j),point_dow(pos_spec,j) 187 end do 166 read(unitspecies,'(i18)',end=22) spec_ass(pos_spec) 167 ! write(*,*) spec_ass(pos_spec) 168 read(unitspecies,'(f18.2)',end=22) kao(pos_spec) 169 ! write(*,*) kao(pos_spec) 188 170 189 171 pspecies=species(pos_spec) … … 206 188 pohdconst=ohdconst(pos_spec) 207 189 pohnconst=ohnconst(pos_spec) 208 209 210 do j=1,24 ! 24 hours, starting with 0-1 local time 211 parea_hour(j)=area_hour(pos_spec,j) 212 ppoint_hour(j)=point_hour(pos_spec,j) 213 end do 214 do j=1,7 ! 7 days of the week, starting with Monday 215 parea_dow(j)=area_dow(pos_spec,j) 216 ppoint_dow(j)=point_dow(pos_spec,j) 217 end do 218 219 else ! namelist available 190 pspec_ass=spec_ass(pos_spec) 191 pkao=kao(pos_spec) 192 193 else 220 194 221 195 species(pos_spec)=pspecies … … 238 212 ohdconst(pos_spec)=pohdconst 239 213 ohnconst(pos_spec)=pohnconst 240 241 do j=1,24 ! 24 hours, starting with 0-1 local time 242 area_hour(pos_spec,j)=parea_hour(j) 243 point_hour(pos_spec,j)=ppoint_hour(j) 244 end do 245 do j=1,7 ! 7 days of the week, starting with Monday 246 area_dow(pos_spec,j)=parea_dow(j) 247 point_dow(pos_spec,j)=ppoint_dow(j) 248 end do 214 spec_ass(pos_spec)=pspec_ass 215 kao(pos_spec)=pkao 249 216 250 217 endif … … 336 303 end if 337 304 305 if (spec_ass(pos_spec).gt.0) then 306 spec_found=.FALSE. 307 do j=1,pos_spec-1 308 if (spec_ass(pos_spec).eq.specnum(j)) then 309 spec_ass(pos_spec)=j 310 spec_found=.TRUE. 311 ASSSPEC=.TRUE. 312 endif 313 end do 314 if (spec_found.eqv..false.) then 315 goto 997 316 endif 317 endif 318 319 if (dsigma(i).eq.1.) dsigma(i)=1.0001 ! avoid floating exception 338 320 if (dsigma(i).eq.0.) dsigma(i)=1.0001 ! avoid floating exception 339 321 … … 348 330 349 331 332 ! Read in daily and day-of-week variation of emissions, if available 333 !******************************************************************* 334 ! HSO: This is not yet implemented as namelist parameters 335 336 do j=1,24 ! initialize everything to no variation 337 area_hour(i,j)=1. 338 point_hour(i,j)=1. 339 end do 340 do j=1,7 341 area_dow(i,j)=1. 342 point_dow(i,j)=1. 343 end do 344 345 if (readerror.ne.0) then ! text format input 346 347 read(unitspecies,*,end=22) 348 do j=1,24 ! 24 hours, starting with 0-1 local time 349 read(unitspecies,*) ihour,area_hour(i,j),point_hour(i,j) 350 end do 351 read(unitspecies,*) 352 do j=1,7 ! 7 days of the week, starting with Monday 353 read(unitspecies,*) idow,area_dow(i,j),point_dow(i,j) 354 end do 355 350 356 endif 351 357 -
src/timemanager.f90
rc7d1052 ra9cf4b1 449 449 450 450 !write(*,46) float(itime)/3600,itime,numpart 451 45 format(i13,' S econds simulated: ',i13, ' Particles: Uncertainty: ',3f7.3)451 45 format(i13,' SECONDS SIMULATED: ',i13, ' PARTICLES: Uncertainty: ',3f7.3) 452 452 46 format(' Simulated ',f7.1,' hours (',i13,' s), ',i13, ' particles') 453 453 if (ipout.ge.1) call partoutput(itime) ! dump particle positions
Note: See TracChangeset
for help on using the changeset viewer.