Changeset 341f4b7 in flexpart.git for src/readspecies.f90
- Timestamp:
- Apr 20, 2016, 1:39:51 PM (8 years ago)
- Branches:
- master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
- Children:
- 61df8d9
- Parents:
- 32b49c3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/readspecies.f90
r32b49c3 r341f4b7 42 42 ! decaytime(maxtable) half time for radiological decay * 43 43 ! specname(maxtable) names of chemical species, radionuclides * 44 ! weta , wetbParameters for determining below-cloud scavenging *45 ! weta_inParameter for determining in-cloud scavenging *46 ! wetb_inParameter for determining in-cloud scavenging *44 ! weta_gas, wetb_gas Parameters for determining below-cloud scavenging * 45 ! ccn_aero Parameter for determining in-cloud scavenging * 46 ! in_aero Parameter for determining in-cloud scavenging * 47 47 ! ohcconst OH reaction rate constant C * 48 48 ! ohdconst OH reaction rate constant D * … … 66 66 67 67 character(len=16) :: pspecies 68 real :: pdecay, pweta , pwetb, preldiff, phenry, pf0, pdensity, pdquer68 real :: pdecay, pweta_gas, pwetb_gas, preldiff, phenry, pf0, pdensity, pdquer 69 69 real :: pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pspec_ass, pkao 70 real :: p weta_in, pwetb_in, pwetc_in, pwetd_in70 real :: pcrain_aero, pcsnow_aero, pccn_aero, pin_aero 71 71 integer :: readerror 72 72 73 73 ! declare namelist 74 74 namelist /species_params/ & 75 pspecies, pdecay, pweta , pwetb, &76 p weta_in, pwetb_in, pwetc_in, pwetd_in, &75 pspecies, pdecay, pweta_gas, pwetb_gas, & 76 pcrain_aero, pcsnow_aero, pccn_aero, pin_aero, & 77 77 preldiff, phenry, pf0, pdensity, pdquer, & 78 78 pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pspec_ass, pkao 79 79 80 pspecies=" "80 pspecies="" ! read failure indicator value 81 81 pdecay=-999.9 82 pweta =-9.9E-0983 pwetb =0.084 p weta_in=-9.9E-0985 p wetb_in=-9.9E-0986 ! pwetc_in=-9.9E-0987 ! pwetd_in=-9.9E-0982 pweta_gas=-9.9E-09 83 pwetb_gas=0.0 84 pcrain_aero=-9.9E-09 85 pcsnow_aero=-9.9E-09 86 pccn_aero=-9.9E-09 87 pin_aero=-9.9E-09 88 88 preldiff=-9.9 89 89 phenry=0.0 … … 98 98 pspec_ass=-9 99 99 pkao=-99.99 100 pweightmolar=- 789.0 ! read failure indicator value100 pweightmolar=-999.9 101 101 102 102 ! Open the SPECIES file and read species names and properties … … 113 113 close(unitspecies) 114 114 115 if ((pweightmolar.eq.-789.0).or.(readerror.ne.0)) then ! no namelist found 115 ! if ((pweightmolar.eq.-789.0).or.(readerror.ne.0)) then ! no namelist found 116 if ((len(pspecies).eq.0).or.(readerror.ne.0)) then ! no namelist found 116 117 117 118 readerror=1 … … 127 128 read(unitspecies,'(f18.1)',end=22) decay(pos_spec) 128 129 ! write(*,*) decay(pos_spec) 129 read(unitspecies,'(e18.1)',end=22) weta(pos_spec) 130 ! write(*,*) weta(pos_spec) 131 read(unitspecies,'(f18.2)',end=22) wetb(pos_spec) 132 ! write(*,*) wetb(pos_spec) 133 130 read(unitspecies,'(e18.1)',end=22) weta_gas(pos_spec) 131 ! write(*,*) weta_gas(pos_spec) 132 read(unitspecies,'(f18.2)',end=22) wetb_gas(pos_spec) 133 ! write(*,*) wetb_gas(pos_spec) 134 read(unitspecies,'(e18.1)',end=22) crain_aero(pos_spec) 135 ! write(*,*) crain_aero(pos_spec) 136 read(unitspecies,'(f18.2)',end=22) csnow_aero(pos_spec) 137 ! write(*,*) csnow_aero(pos_spec) 134 138 !*** NIK 31.01.2013: including in-cloud scavening parameters 135 read(unitspecies,'(e18.1)',end=22) weta_in(pos_spec) 136 ! write(*,*) weta_in(pos_spec) 137 read(unitspecies,'(f18.2)',end=22) wetb_in(pos_spec) 138 ! write(*,*) wetb_in(pos_spec) 139 ! read(unitspecies,'(f18.2)',end=22) wetc_in(pos_spec) 140 ! write(*,*) wetc_in(pos_spec) 141 ! read(unitspecies,'(f18.2)',end=22) wetd_in(pos_spec) 142 ! write(*,*) wetd_in(pos_spec) 143 139 read(unitspecies,'(e18.1)',end=22) ccn_aero(pos_spec) 140 ! write(*,*) ccn_aero(pos_spec) 141 read(unitspecies,'(f18.2)',end=22) in_aero(pos_spec) 142 ! write(*,*) in_aero(pos_spec) 144 143 read(unitspecies,'(f18.1)',end=22) reldiff(pos_spec) 145 144 ! write(*,*) reldiff(pos_spec) … … 171 170 pspecies=species(pos_spec) 172 171 pdecay=decay(pos_spec) 173 pweta =weta(pos_spec)174 pwetb =wetb(pos_spec)175 p weta_in=weta_in(pos_spec)176 p wetb_in=wetb_in(pos_spec)177 ! pwetc_in=wetc_in(pos_spec)178 ! pwetd_in=wetd_in(pos_spec)172 pweta_gas=weta_gas(pos_spec) 173 pwetb_gas=wetb_gas(pos_spec) 174 pcrain_aero=crain_aero(pos_spec) 175 pcsnow_aero=csnow_aero(pos_spec) 176 pccn_aero=ccn_aero(pos_spec) 177 pin_aero=in_aero(pos_spec) 179 178 preldiff=reldiff(pos_spec) 180 179 phenry=henry(pos_spec) … … 195 194 species(pos_spec)=pspecies 196 195 decay(pos_spec)=pdecay 197 weta (pos_spec)=pweta198 wetb (pos_spec)=pwetb199 weta_in(pos_spec)=pweta_in200 wetb_in(pos_spec)=pwetb_in201 ! wetc_in(pos_spec)=pwetc_in 202 ! wetd_in(pos_spec)=pwetd_in 196 weta_gas(pos_spec)=pweta_gas 197 wetb_gas(pos_spec)=pwetb_gas 198 crain_aero=pcrain_aero 199 csnow_aero=pcsnow_aero 200 ccn_aero(pos_spec)=pccn_aero 201 in_aero(pos_spec)=pin_aero 203 202 reldiff(pos_spec)=preldiff 204 203 henry(pos_spec)=phenry … … 222 221 ! Check scavenging parameters given in SPECIES file 223 222 224 if (weta (pos_spec).gt.0.0 .or. wetb(pos_spec).gt.0.0 .or. weta_in(pos_spec).gt.0.0 .or. wetb_in(pos_spec).gt.0.0) then223 if (weta_gas(pos_spec).gt.0.0 .or. wetb_gas(pos_spec).gt.0.0 .or. ccn_aero(pos_spec).gt.0.0 .or. in_aero(pos_spec).gt.0.0) then 225 224 226 225 if (dquer(pos_spec).gt.0) then !is particle 227 226 if (lroot) then 228 227 write(*,'(a,f5.2)') ' Particle below-cloud scavenging parameter A & 229 &(Rain collection efficiency) ', weta(pos_spec)228 &(Rain collection efficiency) ', crain_aero(pos_spec) 230 229 write(*,'(a,f5.2)') ' Particle below-cloud scavenging parameter B & 231 &(Snow collection efficiency) ', wetb(pos_spec)232 end if 233 if (weta (pos_spec).gt.1.0 .or. wetb(pos_spec).gt.1.0) then230 &(Snow collection efficiency) ', csnow_aero(pos_spec) 231 end if 232 if (weta_gas(pos_spec).gt.1.0 .or. wetb_gas(pos_spec).gt.1.0) then 234 233 if (lroot) then 235 234 write(*,*) '*******************************************' … … 242 241 if (lroot) then 243 242 write(*,'(a,f5.2)') ' Particle in-cloud scavenging parameter Ai & 244 &(CCN efficiency) ', weta_in(pos_spec)243 &(CCN efficiency) ', ccn_aero(pos_spec) 245 244 write(*,'(a,f5.2)') ' Particle in-cloud scavenging parameter Bi & 246 &(IN efficiency) ', wetb_in(pos_spec)247 end if 248 if ( weta_in(pos_spec).gt.1.0 .or. weta_in(pos_spec).lt.0.01) then245 &(IN efficiency) ', in_aero(pos_spec) 246 end if 247 if (ccn_aero(pos_spec).gt.1.0 .or. ccn_aero(pos_spec).lt.0.01) then 249 248 if (lroot) then 250 249 write(*,*) '*******************************************' … … 254 253 end if 255 254 endif 256 if ( wetb_in(pos_spec).gt.1.0 .or. wetb_in(pos_spec).lt.0.01) then255 if (in_aero(pos_spec).gt.1.0 .or. in_aero(pos_spec).lt.0.01) then 257 256 if (lroot) then 258 257 write(*,*) '*******************************************' … … 265 264 else !is gas 266 265 if (lroot) then 267 write(*,*) ' Gas below-cloud scavenging parameter A ', weta (pos_spec)268 write(*,'(a,f5.2)') ' Gas below-cloud scavenging parameter B ', wetb (pos_spec)266 write(*,*) ' Gas below-cloud scavenging parameter A ', weta_gas(pos_spec) 267 write(*,'(a,f5.2)') ' Gas below-cloud scavenging parameter B ', wetb_gas(pos_spec) 269 268 write(*,*) ' Gas in-cloud scavenging uses default values as in Hertel et al 1995' 270 269 end if 271 if (weta (pos_spec).gt.0.) then !if wet deposition is turned on272 if (weta (pos_spec).gt.1E-04 .or. weta(pos_spec).lt.1E-09) then270 if (weta_gas(pos_spec).gt.0.) then !if wet deposition is turned on 271 if (weta_gas(pos_spec).gt.1E-04 .or. weta_gas(pos_spec).lt.1E-09) then 273 272 if (lroot) then 274 273 write(*,*) '*******************************************' … … 279 278 endif 280 279 end if 281 if (wetb (pos_spec).gt.0.) then !if wet deposition is turned on282 if (wetb (pos_spec).gt.0.8 .or. wetb(pos_spec).lt.0.6) then280 if (wetb_gas(pos_spec).gt.0.) then !if wet deposition is turned on 281 if (wetb_gas(pos_spec).gt.0.8 .or. wetb_gas(pos_spec).lt.0.6) then 283 282 if (lroot) then 284 283 write(*,*) '*******************************************' … … 292 291 endif 293 292 294 if (((weta (pos_spec).gt.0).or.(wetb(pos_spec).gt.0)).and.(henry(pos_spec).le.0)) then293 if (((weta_gas(pos_spec).gt.0).or.(wetb_gas(pos_spec).gt.0)).and.(henry(pos_spec).le.0)) then 295 294 if (dquer(pos_spec).le.0) goto 996 ! no particle, no henry set 296 295 endif
Note: See TracChangeset
for help on using the changeset viewer.