- Timestamp:
- Dec 20, 2018, 2:55:22 PM (5 years ago)
- Branches:
- master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug
- Children:
- 7123c70
- Parents:
- df96ea65 (diff), 4ad96c5 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Location:
- src
- Files:
-
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/FLEXPART.f90
r50958b8 r2753a5c 455 455 call timemanager(metdata_format) 456 456 457 if (verbosity.gt.0) then 457 458 ! NIK 16.02.2005 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 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 467 472 468 473 write(*,*) 'CONGRATULATIONS: YOU HAVE SUCCESSFULLY COMPLETED A FLE& -
src/com_mod.f90
rc2bd55e re9e0f06 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) ,kao(maxspec)176 real :: rm(maxspec),dryvel(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 aerosol179 integer :: spec_ass(maxspec)180 178 181 179 real :: area_hour(maxspec,24),point_hour(maxspec,24) -
src/get_wetscav.f90
r79e0349 re9e0f06 151 151 if (height(il).gt.ztra1(jpart)) then 152 152 hz=il-1 153 ! goto 26154 153 exit 155 154 endif 156 155 end do 157 !26 continue158 159 156 160 157 if (ngrid.eq.0) then … … 203 200 204 201 205 !ZHG oct 2014 : Calculated for 1) both 2) lsp 3) convp 202 !ZHG oct 2014 : Calculated for 1) both 2) lsp 3) convp - 2 and 3 not used removed by SE 206 203 ! Tentatively differentiate the grfraction for lsp and convp for treating differently the two forms 207 204 ! for now they are treated the same 208 205 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 212 206 213 207 ! 2) Computation of precipitation rate in sub-grid cell 214 208 !****************************************************** 215 209 prec(1)=(lsp+convp)/grfraction(1) 216 prec(2)=(lsp)/grfraction(2)217 prec(3)=(convp)/grfraction(3)218 219 210 220 211 ! 3) Computation of scavenging coefficients for all species 221 212 ! Computation of wet deposition 222 213 !********************************************************** 223 224 214 225 215 if (ngrid.gt.0) then … … 237 227 !****************************************************************** 238 228 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.) then240 229 blc_count(ks)=blc_count(ks)+1 241 230 wetscav=weta_gas(ks)*prec(1)**wetb_gas(ks) … … 271 260 endif 272 261 273 ! write(*,*) 'bl-cloud, act_temp=',act_temp, ',prec=',prec(1),',wetscav=', wetscav, ', jpart=',jpart274 275 262 endif ! gas or particle 276 263 ! endif ! positive below-cloud scavenging parameters given in Species file … … 285 272 if ((ccn_aero(ks).gt.0. .or. in_aero(ks).gt.0.).or.(henry(ks).gt.0.and.dquer(ks).le.0)) then 286 273 inc_count(ks)=inc_count(ks)+1 287 ! write(*,*) 'Incloud: ',inc_count288 274 ! if negative coefficients (turned off) set to zero for use in equation 289 275 if (ccn_aero(ks).lt.0.) ccn_aero(ks)=0. … … 300 286 ! sec test 301 287 ! cl=1E6*1E-7*prec(1)**0.3 !Sec GFS new 302 cl=1E6*2E-7*prec(1)**0.36 !Sec ECMWF new 288 cl=1E6*2E-7*prec(1)**0.36 !Sec ECMWF new, is also suitable for GFS 303 289 ! cl=2E-7*prec(1)**0.36 !Andreas 304 290 ! cl=1.6E-6*prec(1)**0.36 !Henrik … … 322 308 if (dquer(ks).gt.0.) then 323 309 S_i= frac_act/cl 324 ! write(*,*) 'Si: ',S_i325 326 310 ! GAS 327 311 !**** 328 312 else 329 330 313 cle=(1-cl)/(henry(ks)*(r_air/3500.)*act_temp)+cl 331 !REPLACE to switch old/ new scheme332 ! S_i=frac_act/cle333 314 S_i=1/cle 334 315 endif ! gas or particle 335 316 336 317 ! scavenging coefficient based on Hertel et al 1995 - using the S_i for either gas or aerosol 337 !OLD 338 if ((readclouds.and.ngrid.eq.0).or.(readclouds_this_nest.and.ngrid.gt.0)) then 318 !SEC wetscav fix, the cloud height is no longer needed, it gives wrong results 339 319 wetscav=incloud_ratio*S_i*(prec(1)/3.6E6) 340 else341 !SEC wetscav fix342 wetscav=incloud_ratio*S_i*(prec(1)/3.6E6)343 ! wetscav=incloud_ratio*S_i*(prec(1)/3.6E6)/clouds_h344 endif345 320 endif ! positive in-cloud scavenging parameters given in Species file 346 321 endif !incloud -
src/netcdf_output_mod.f90
rae43937 r4ad96c5 67 67 ccn_aero,in_aero, & ! wetc_in,wetd_in, & 68 68 reldiff,henry,f0,density,dquer,dsigma,dryvel,& 69 ! weightmolar,ohreact,spec_ass,kao,vsetaver,& 70 weightmolar,ohcconst,ohdconst,spec_ass,kao,vsetaver,& 69 weightmolar,ohcconst,ohdconst,vsetaver,& 71 70 ! for concoutput_netcdf and concoutput_nest_netcdf 72 71 nxmin1,nymin1,nz,oro,oron,rho,rhon,& … … 114 113 logical, parameter :: write_area = .false. 115 114 115 ! coordinate transformation from internal to world coord 116 real :: xp1,yp1,xp2,yp2 116 117 contains 117 118 … … 512 513 call nf90_err(nf90_put_att(ncid, sID, 'ohcconst', ohcconst(i))) 513 514 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)))517 516 518 517 if (lnest) then … … 535 534 call nf90_err(nf90_put_att(ncid, sID, 'ohcconst', ohcconst(i))) 536 535 call nf90_err(nf90_put_att(ncid, sID, 'ohdconst', ohdconst(i))) 537 call nf90_err(nf90_put_att(ncid, sID, 'kao', kao(i)))538 536 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)))540 537 541 538 if (lnest) then … … 673 670 call nf90_err(nf90_put_var(ncid, relendID, ireleaseend(i), (/i/))) 674 671 call nf90_err(nf90_put_var(ncid, relkindzID, kindz(i), (/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/))) 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/))) 679 680 call nf90_err(nf90_put_var(ncid, relzz1ID, zpoint1(i), (/i/))) 680 681 call nf90_err(nf90_put_var(ncid, relzz2ID, zpoint2(i), (/i/))) -
src/readspecies.f90
raa8c34a rd6a245b 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 , pkao69 real :: pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst 70 70 real :: pcrain_aero, pcsnow_aero, pccn_aero, pin_aero 71 integer :: readerror, pspec_ass 71 real :: parea_dow(7), parea_hour(24), ppoint_dow(7), ppoint_hour(24) 72 integer :: readerror 72 73 73 74 ! declare namelist … … 76 77 pcrain_aero, pcsnow_aero, pccn_aero, pin_aero, & 77 78 preldiff, phenry, pf0, pdensity, pdquer, & 78 pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pspec_ass, pkao 79 pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, & 80 parea_dow, parea_hour, ppoint_dow, ppoint_hour 79 81 80 82 pspecies="" ! read failure indicator value … … 96 98 pohdconst=-9.9E-09 97 99 pohnconst=2.0 98 pspec_ass=-999 pkao=-99.99100 100 pweightmolar=-999.9 101 101 102 do j=1,24 ! initialize everything to no variation 103 area_hour(pos_spec,j)=1. 104 point_hour(pos_spec,j)=1. 105 end do 106 do j=1,7 107 area_dow(pos_spec,j)=1. 108 point_dow(pos_spec,j)=1. 109 end do 110 111 if (readerror.ne.0) then ! text format input 102 112 ! Open the SPECIES file and read species names and properties 103 113 !************************************************************ … … 164 174 read(unitspecies,'(f8.2)',end=22) ohnconst(pos_spec) 165 175 ! write(*,*) ohnconst(pos_spec) 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) 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 170 188 171 189 pspecies=species(pos_spec) … … 188 206 pohdconst=ohdconst(pos_spec) 189 207 pohnconst=ohnconst(pos_spec) 190 pspec_ass=spec_ass(pos_spec) 191 pkao=kao(pos_spec) 192 193 else 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 194 220 195 221 species(pos_spec)=pspecies … … 212 238 ohdconst(pos_spec)=pohdconst 213 239 ohnconst(pos_spec)=pohnconst 214 spec_ass(pos_spec)=pspec_ass 215 kao(pos_spec)=pkao 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 216 249 217 250 endif … … 303 336 end if 304 337 305 if (spec_ass(pos_spec).gt.0) then306 spec_found=.FALSE.307 do j=1,pos_spec-1308 if (spec_ass(pos_spec).eq.specnum(j)) then309 spec_ass(pos_spec)=j310 spec_found=.TRUE.311 ASSSPEC=.TRUE.312 endif313 end do314 if (spec_found.eqv..false.) then315 goto 997316 endif317 endif318 319 if (dsigma(i).eq.1.) dsigma(i)=1.0001 ! avoid floating exception320 338 if (dsigma(i).eq.0.) dsigma(i)=1.0001 ! avoid floating exception 321 339 … … 330 348 331 349 332 ! Read in daily and day-of-week variation of emissions, if available333 !*******************************************************************334 ! HSO: This is not yet implemented as namelist parameters335 336 do j=1,24 ! initialize everything to no variation337 area_hour(i,j)=1.338 point_hour(i,j)=1.339 end do340 do j=1,7341 area_dow(i,j)=1.342 point_dow(i,j)=1.343 end do344 345 if (readerror.ne.0) then ! text format input346 347 read(unitspecies,*,end=22)348 do j=1,24 ! 24 hours, starting with 0-1 local time349 read(unitspecies,*) ihour,area_hour(i,j),point_hour(i,j)350 end do351 read(unitspecies,*)352 do j=1,7 ! 7 days of the week, starting with Monday353 read(unitspecies,*) idow,area_dow(i,j),point_dow(i,j)354 end do355 356 350 endif 357 351 -
src/timemanager.f90
ra9cf4b1 rc7d1052 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 -
src/par_mod.f90
r79e0349 rdf96ea65 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=0 ! 1.0 degree 138 level 150 151 ! integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 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 … … 153 154 154 155 ! GFS 155 integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=0 156 integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138 157 integer :: nxshift=0 156 158 157 159 -
src/pathnames
rf28aa0a ra712161 1 1 ../options/ 2 . ./output/2 ./output/ 3 3 / 4 4 /xnilu_wrk/flex_wrk/WIND_FIELDS/AVAILABLE_ECMWF_OPER_fields_global
Note: See TracChangeset
for help on using the changeset viewer.