Add files via upload
This commit is contained in:
80
code/jv_index.f
Normal file
80
code/jv_index.f
Normal file
@ -0,0 +1,80 @@
|
||||
! $Id: jv_index.f,v 1.1 2009/06/09 21:51:52 daven Exp $
|
||||
SUBROUTINE JV_INDEX
|
||||
!
|
||||
!******************************************************************************
|
||||
! Subroutine JV_INDEX computes the mapping between the CTM indices
|
||||
! (from "chem.dat") for J-values to the FAST-J indices (from "ratj.d")
|
||||
! for J-values. (bmy, 10/5/98, 10/16/06)
|
||||
!
|
||||
! NOTES:
|
||||
! (1 ) Assumes the ordering of a species with several branches in
|
||||
! "ratj.d" is the same as in "chem.dat".
|
||||
! (2 ) Updated comments, cosmetic changes (bmy, 11/15/01)
|
||||
! (3 ) NAMESPEC is now NAMEGAS for SMVGEAR II. We don't need to reference
|
||||
! CMN anymore. Now loop from NCS = 1..NCSGAS (bdf, bmy, 4/8/03)
|
||||
! (4 ) Now reset NCS to NCSURBAN after loop (dbm, bmy, 10/16/06)
|
||||
!******************************************************************************
|
||||
!
|
||||
IMPLICIT NONE
|
||||
|
||||
# include "cmn_fj.h" ! CMN_SIZE
|
||||
# include "comode.h" ! SMVGEAR II arrays
|
||||
|
||||
! Local variables
|
||||
INTEGER :: I, IFNC, IBRCH, N, NK
|
||||
CHARACTER (LEN=4) :: SPECNAME
|
||||
|
||||
!=================================================================
|
||||
! JV_INDEX begins here!
|
||||
!=================================================================
|
||||
|
||||
! Zero the RINDEX array
|
||||
RINDEX(:) = 0
|
||||
|
||||
! Loop over photolysis rxns (urban chemistry only)
|
||||
DO NCS = 1, NCSGAS
|
||||
DO I = 1, NPHOT
|
||||
|
||||
!==============================================================
|
||||
! I = Index of photo rxns from "globchem.dat"
|
||||
! NK = Absolute rxn number (adds offset to I)
|
||||
! SPECNAME = Name of species I, from "globchem.dat"
|
||||
! IBRCH = Branch # of species I, from "globchem.dat"
|
||||
!==============================================================
|
||||
NK = NRATES(NCS) + I
|
||||
SPECNAME = NAMEGAS(IRM(1,NK,NCS))
|
||||
IFNC = DEFPRAT(NK,NCS) + 0.01d0
|
||||
IBRCH = 10d0*( DEFPRAT(NK,NCS) - IFNC ) + 0.5d0
|
||||
|
||||
!==============================================================
|
||||
! N = Index of photolysis reactions as listed in "ratj.d"
|
||||
! RNAMES = Name of species N, as listed in "ratj.d"
|
||||
! BRANCH = Branch number of species N, as listed in "ratj.d"
|
||||
!
|
||||
! If the species names and branch numbers from both "chem.dat"
|
||||
! and "ratj.d" match, then store N (the "ratj.d" index) in the
|
||||
! Ith element of RINDEX.
|
||||
!
|
||||
! Thus, when looping over I (the chem.dat" indices), as is
|
||||
! done in FJFUNC.F, RINDEX(I) will access the correct J-value
|
||||
! according to the ordering in "ratj.d".
|
||||
!==============================================================
|
||||
DO N = 1, JPPJ
|
||||
IF ( SPECNAME == RNAMES(N) .and. IBRCH == BRANCH(N) ) THEN
|
||||
RINDEX(I) = N
|
||||
|
||||
WRITE ( 6, 100 ) I, SPECNAME, IBRCH,
|
||||
& RINDEX(I), RNAMES(N), BRANCH(N)
|
||||
100 FORMAT('Harvard #: ', i3, 1x, a4, ' Branch: ', i2,
|
||||
& ' ---> Fast-J #: ', i3, 1x, a4, ' Branch: ',i2 )
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
ENDDO
|
||||
ENDDO
|
||||
|
||||
! Reset NCS to NCSURBAN for safety's sake (bmy, 10/16/06)
|
||||
NCS = NCSURBAN
|
||||
|
||||
! Return to calling program
|
||||
END SUBROUTINE JV_INDEX
|
Reference in New Issue
Block a user