File: pick-dir/rd_species.f90

    1       SUBROUTINE RD_SPECIES(Jchan,Fnspecies,Species,Lverb,NMAXS,Nspec,  &
    2                           & Isppce,Ispint)
    3       USE KINETIC
    4       IMPLICIT NONE
    5 !
    6 ! Dummy arguments
    7 !
    8       CHARACTER(200) :: Fnspecies
    9       INTEGER :: Ispint , Isppce , Jchan , Nspec
   10       LOGICAL :: Lverb
   11       INTEGER :: NMAXS
   12       TYPE (SPECIES_RECORD) , DIMENSION(NMAXS) :: Species
   13       INTENT (IN) Fnspecies , Jchan , Lverb , NMAXS
   14       INTENT (INOUT) Ispint , Isppce , Nspec , Species
   15 !
   16 ! Local variables
   17 !
   18       INTEGER :: i , j
   19 !
   20 !-----------------------------------------------------------------------
   21 !
   22 !     written by:   David Lary
   23 !
   24 !     started:      7/1/1993
   25 !
   26 !     last updated: 27/1/2004
   27 !
   28 !----------------------------------------------------------------------
   29 !
   30       DO i = 1 , NMAXS
   31          CALL BLANK(Species(i)%speci)
   32          CALL BLANK(Species(i)%latex)
   33       ENDDO
   34 !
   35 !----------------------------------------------------------------------
   36 !
   37 !     Reads in an AutoChem species file.
   38 !
   39 !----------------------------------------------------------------------
   40 !
   41       WRITE (6,*) TRIM(Fnspecies)
   42       OPEN (Jchan,FILE=TRIM(Fnspecies),STATUS="old')
   43 !
   44 !----------------------------------------------------------------------
   45 !
   46 !     Skip header
   47       READ (Jchan,*)
   48 !
   49 !----------------------------------------------------------------------
   50 !
   51 !     Read bimolecular reactions
   52       j = 0
   53       Isppce = 0
   54       Ispint = 0
   55       DO WHILE ( .TRUE. )
   56          READ (Jchan,*,END=100,ERR=100) Species(j+1)%isptype ,          &
   57                                       & Species(j+1)%speci ,            &
   58                                       & Species(j+1)%latex
   59          IF ( Lverb ) WRITE (6,FMT="(i4,2(1x,a))') Species(j+1)         &
   60                            & %isptype , Species(j+1)%speci ,            &
   61                            & Species(j+1)%latex
   62 !        update the various specie counters.
   63          IF ( Species(j+1)%isptype==0 ) THEN
   64             Isppce = Isppce + 1
   65          ELSEIF ( Species(j+1)%isptype==1 ) THEN
   66             Ispint = Ispint + 1
   67          ENDIF
   68          j = j + 1
   69          IF ( j>=NMAXS ) EXIT
   70       ENDDO
   71 !
   72 !----------------------------------------------------------------------
   73 !
   74  100  Nspec = j
   75       WRITE (6,*) "# Species read was:' , Nspec
   76       CLOSE (Jchan)
   77 !
   78 !-----------------------------------------------------------------------
   79 !
   80       DO i = 1 , Nspec
   81          DO j = 1 , Nspec
   82             IF ( i/=j ) THEN
   83                IF ( Species(i)%speci==Species(j)%speci ) THEN
   84                   WRITE (6,*) "Duplicate entries :' , i , j
   85                   WRITE (6,*) Species(i)%speci , Species(j)%speci
   86                ENDIF
   87             ENDIF
   88          ENDDO
   89       ENDDO
   90 !
   91 !----------------------------------------------------------------------
   92 !
   93       END SUBROUTINE RD_SPECIES