Changeset 05cf28d in flexpart.git for src/readspecies.f90


Ignore:
Timestamp:
Apr 22, 2016, 9:35:28 AM (8 years ago)
Author:
Espen Sollum ATMOS <eso@…>
Branches:
master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
Children:
356dcb9
Parents:
61df8d9
Message:

Updated checks and warning messages for wet deposition parameters given in SPECIES files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/readspecies.f90

    r341f4b7 r05cf28d  
    4040  !                                                                            *
    4141  ! Variables:                                                                 *
    42   ! decaytime(maxtable)  half time for radiological decay                      *
    43   ! specname(maxtable)   names of chemical species, radionuclides              *
    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   ! ohcconst             OH reaction rate constant C                           *
    48   ! ohdconst             OH reaction rate constant D                           *
    49   ! ohnconst             OH reaction rate constant n                           *
    50   ! id_spec              SPECIES number as referenced in RELEASE file          *
    51   ! id_pos               position where SPECIES data shall be stored           *
     42  ! decaytime(maxtable)   half time for radiological decay                     *
     43  ! specname(maxtable)    names of chemical species, radionuclides             *
     44  ! weta_gas, wetb_gas    Parameters for below-cloud scavenging of gasses      *
     45  ! crain_aero,csnow_aero Parameters for below-cloud scavenging of aerosols    *
     46  ! ccn_aero,in_aero      Parameters for in-cloud scavenging of aerosols       *
     47  ! ohcconst              OH reaction rate constant C                          *
     48  ! ohdconst              OH reaction rate constant D                          *
     49  ! ohnconst              OH reaction rate constant n                          *
     50  ! id_spec               SPECIES number as referenced in RELEASE file         *
     51  ! id_pos                position where SPECIES data shall be stored          *
    5252  !                                                                            *
    5353  ! Constants:                                                                 *
     
    113113  close(unitspecies)
    114114
    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
     115  if ((len(trim(pspecies)).eq.0).or.(readerror.ne.0)) then ! no namelist found
     116    if (lroot) write(*,*) "SPECIES file not in NAMELIST format, attempting to &
     117         &read as fixed format"
    117118
    118119    readerror=1
     
    150151!  write(*,*) density(pos_spec)
    151152    read(unitspecies,'(e18.1)',end=22) dquer(pos_spec)
    152   write(*,*) 'dquer(pos_spec):', dquer(pos_spec)
     153write(*,*) 'dquer(pos_spec):', dquer(pos_spec)
    153154    read(unitspecies,'(e18.1)',end=22) dsigma(pos_spec)
    154155!  write(*,*) dsigma(pos_spec)
     
    221222! Check scavenging parameters given in SPECIES file
    222223
    223   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
    224 
    225   if (dquer(pos_spec).gt.0) then !is particle
    226     if (lroot) then
    227       write(*,'(a,f5.2)') '  Particle below-cloud scavenging parameter A &
    228            &(Rain collection efficiency)  ', crain_aero(pos_spec)
    229       write(*,'(a,f5.2)') '  Particle below-cloud scavenging parameter B &
    230            &(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
    233       if (lroot) then
     224  if (lroot) then
     225! Particles
     226!**********
     227    if (dquer(pos_spec).gt.0) then
     228      if (ccn_aero(pos_spec) .gt. 0) then
     229        write(*,'(a,f5.2)') '  Particle CCN  efficiency (CCNeff):', ccn_aero(pos_spec)
     230      else
     231        write(*,'(a)')      '  Particle CCN  efficiency (CCNeff):   OFF'
     232      endif
     233      if (in_aero(pos_spec) .gt. 0) then
     234        write(*,'(a,f5.2)') '  Particle  IN  efficiency (INeff) :', in_aero(pos_spec)
     235      else
     236        write(*,'(a)')      '  Particle  IN  efficiency (INeff) :   OFF'
     237      endif
     238      if (crain_aero(pos_spec) .gt. 0) then
     239        write(*,'(a,f5.2)') '  Particle Rain efficiency (Crain) :', crain_aero(pos_spec)
     240      else
     241        write(*,'(a)')      '  Particle Rain efficiency (Crain) :   OFF'
     242      endif
     243      if (csnow_aero(pos_spec) .gt. 0) then
     244        write(*,'(a,f5.2)') '  Particle Snow efficiency (Csnow) :', csnow_aero(pos_spec)
     245      else
     246        write(*,'(a)')      '  Particle Snow efficiency (Csnow) :   OFF'
     247      end if
     248      if (density(pos_spec) .gt. 0) then
     249        write(*,'(a)') '  Dry deposition is turned         :   ON'
     250      else
     251        write(*,'(a)') '  Dry deposition is (density<0)    :   OFF'
     252      end if
     253      if (crain_aero(pos_spec).gt.10.0 .or. csnow_aero(pos_spec).gt.10.0 .or. &
     254           &ccn_aero(pos_spec).gt.1.0 .or. in_aero(pos_spec).gt.1.0) then
    234255        write(*,*) '*******************************************'
    235         write(*,*) ' WARNING: Particle below-cloud scavenging parameter A or B &
    236              &is out of likely range'
    237         write(*,*) '          Likely range is 0.0-1.0'
     256        write(*,*) ' WARNING: Particle Scavenging parameter likely out of range '
     257        write(*,*) '       Likely   range for Crain    0.0-10'
     258        write(*,*) '       Likely   range for Csnow    0.0-10'
     259        write(*,*) '       Physical range for CCNeff   0.0-1'
     260        write(*,*) '       Physical range for INeff    0.0-1'
    238261        write(*,*) '*******************************************'
    239262      end if
    240     endif
    241     if (lroot) then
    242       write(*,'(a,f5.2)') '  Particle in-cloud scavenging parameter Ai &
    243            &(CCN efficiency)  ', ccn_aero(pos_spec)
    244       write(*,'(a,f5.2)') '  Particle in-cloud scavenging parameter Bi &
    245            &(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
    248       if (lroot) then
    249         write(*,*) '*******************************************'
    250         write(*,*) ' WARNING: Particle in-cloud scavenging parameter A is out of likely range'
    251         write(*,*) '          Likely range is 0.0-1.0 for CCN '
    252         write(*,*) '*******************************************'
    253       end if
    254     endif
    255     if (in_aero(pos_spec).gt.1.0 .or. in_aero(pos_spec).lt.0.01) then
    256       if (lroot) then
    257         write(*,*) '*******************************************'
    258         write(*,*) ' WARNING: Particle in-cloud scavenging parameter B is out of likely range'
    259         write(*,*) '          Likely range is 0.0-1.0 for Ice nuclei (IN) '
    260         write(*,*) '*******************************************'
    261       end if
    262     endif
    263 
    264   else !is gas
    265     if (lroot) then
    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)
    268       write(*,*) ' Gas in-cloud scavenging uses default values as in Hertel et al 1995'
    269     end if
    270     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
    272         if (lroot) then
     263    else
     264! Gas
     265!****
     266      if (weta_gas(pos_spec) .gt. 0 .and. wetb_gas(pos_spec).gt.0) then
     267        write(*,*)          '  Wet removal for gases      is turned: ON'
     268        write(*,*)          '  Gas below-cloud scavenging parameter A  ', &
     269             &weta_gas(pos_spec)
     270        write(*,'(a,f5.2)') '  Gas below-cloud scavenging parameter B  ', &
     271             &wetb_gas(pos_spec)
     272      else
     273        write(*,*)          '  Wet removal for gases      is turned: OFF '
     274      end if
     275      if (reldiff(i).gt.0.) then
     276        write(*,*)          '  Dry deposition for gases   is turned: ON '
     277      else
     278        write(*,*)          '  Dry deposition for gases   is turned: OFF '
     279      end if
     280      if (weta_gas(pos_spec).gt.0.) then !if wet deposition is turned on
     281        if (weta_gas(pos_spec).gt.1E-04 .or. weta_gas(pos_spec).lt.1E-09 .or. &
     282             &wetb_gas(pos_spec).gt.0.8 .or. wetb_gas(pos_spec).lt.0.4) then
    273283          write(*,*) '*******************************************'
    274           write(*,*) ' WARNING: Gas below-cloud scavenging parameter A is out of likely range'
    275           write(*,*) '          Likely range is 1E-04 to 1E-08 (see Hertel et al 1995)'
     284          write(*,*) ' WARNING: Gas below-cloud scavengig is out of likely range'
     285          write(*,*) '          Likely range for A is 1E-04 to 1E-08'
     286          write(*,*) '          Likely range for B is 0.60  to 0.80 '
    276287          write(*,*) '*******************************************'
    277288        end if
    278289      endif
     290
     291      if (((weta_gas(pos_spec).gt.0).or.(wetb_gas(pos_spec).gt.0)).and.&
     292           &(henry(pos_spec).le.0)) then
     293        if (dquer(pos_spec).le.0) goto 996 ! no particle, no henry set
     294      endif
    279295    end if
    280     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
    282         if (lroot) then
    283           write(*,*) '*******************************************'
    284           write(*,*) ' WARNING: Gas below-cloud scavenging parameter B is out of likely range'
    285           write(*,*) '          Likely range is 0.6 to 0.8 (see Hertel et al 1995)'
    286           write(*,*) '*******************************************'
    287         end if
    288       endif
    289     end if
    290   endif
    291   endif
    292 
    293   if (((weta_gas(pos_spec).gt.0).or.(wetb_gas(pos_spec).gt.0)).and.(henry(pos_spec).le.0)) then
    294     if (dquer(pos_spec).le.0) goto 996 ! no particle, no henry set
    295   endif
     296  end if
    296297
    297298  if (spec_ass(pos_spec).gt.0) then
     
    304305      endif
    305306    end do
    306     if (spec_found.eqv..FALSE.) then
     307    if (spec_found.eqv..false.) then
    307308      goto 997
    308309    endif
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG