Search Site | Contact Details | FAQ

ADAS Subroutine ccnst7

       SUBROUTINE CCNST7(NLREP,IR,I,V,E,EXE,EXS,K,ISG,CGBBA,ENL,ENL2,
     &                   EXPTE,EXPTS,KPF,ISG1,NMIN,NMAX,IMAX,
     &                   A0,CA0,A,CA,RH,CRH,
     &                   IOPT,NG,LG,NGL,LTG,FPG,NG1,LG1,
     &                   NGL1,LTG1,FPG1,ARL,ISARL,AC1,RHSC1,
     &                   C1,C2,C3,SCLA,NIMP,ZIMPA,FRIMPA,AMIMPA,
     &                   EXMTE )
C-----------------------------------------------------------------------
C
C       **********  FORTRAN 77 ROUTINE : CCNST7 **********
C
C       PURPOSE : ASSEMBLES ARRAYS USED TO CONSTRUCT THE
C                 COLLISIONAL-RADIATIVE MATRIX.
C
C       HISTORY : ROUTINE WAS ORIGINALLY WRITTEN BY H.P.SUMMERS.
C                 RESTRUCURED AND MODIFIED BY H.ANDERSON.
C
C       INPUT   :
C
C       (I*4) NLREP()   : ARRAY CONTAINING ALL OF THE REPRESENTATIVE
C                         LEVELS.
C       (I*4) IR        : COUNTER GIVEN AS INPUT WHICH RANGES FROM
C                         NMIN TO NMAX AND IS USED TO REFERENCE THE
C                         REPRESENTATIVE LEVEL.
C       (I*4) I         : REPRESENTATIVE LEVEL WHICH IS GIVEN BY
C                         NLREP(IR)
C       (R*8) V         : EFFECTIVE PRINCIPAL QUANTUM NUMBER FOR THE
C                         REPRESENTATIVE LEVEL I.
C       (R*8) E         : RECIPROCAL OF THE EFFECTIVE PRINCIPAL QUANTUM
C                         NUMBER SQUARED FOR THE REPRESENTATIVE LEVEL I.
C       (R*8) EXE       : VARIABLE ASSIGNED THE VALUE OF EXP(I/k*Te)
C                         ASSOCIATED WITH THE REPRESENTATIVE LEVEL I.
C       (R*8) EXS       : VARIABLE ASSIGNED THE VALUE OF EXP(I/k*TS)
C                         ASSOCIATED WITH THE REPRESENTATIVE LEVEL I.
C       (I*4) K         : VARIABLE ASSIGNED THE QUANTUM NUMBERS FOR
C                         THE REPRESENTATIVE LEVEL I. STORAGE OF THE
C                         NUMBERS ARE OF THE SAME FORMAT AS KPF().
C       (I*4) ISG       : MULTIPLICITY ?.
C
C       (R*8) CGBBA     : **** UNKNOWN ****
C       (R*8) ENL()     : ARRAY CONTAINING THE EFFECTIVE PRINCIPAL
C                         QUANTUM NUMBERS FOR EACH REPRESENTATIVE
C                         LEVEL.
C       (R*8) ENL2()    : ARRAY CONTAINING THE RECIPROCAL OF THE
C                         EFFECTIVE PRINCIPAL QUANTUM NUMBER
C                         SQUARED FOR EACH REPRESENTATIVE LEVEL.
C       (R*8) EXPTE()   : ARRAY CONTAINING THE VALUE OF EXP(I/k*Te)
C                         FOR EACH REPRESENTATIVE LEVEL FOR THE
C                         TRIPLETS.
C
C       (R*8) EXMTE()   : ARRAY CONTAINING THE VALUE OF EXP(I/k*Te)
C                         FOR EACH REPRESENTATIVE LEVEL FOR THE
C                         SINGLETS.
C       (R*8) EXPTS()   : ARRAY CONTAINING THE VALUE OF EXP(I/k*TS)
C                         FOR EACH REPRESENTATIVE LEVEL.
C       (I*4) KPF()     : ARRAY CONTAINING THE QUANTUM NUMBERS,
C                         N,l,L FROM NMIN TO NMAX, IN ORDER
C                         OF DECREASING BINDING ENERGY. EACH 32 BIT
C                         ELEMENT OF THE ARRAY IS USED TO STORE N,l
C                         AND L FOR EACH REPRESENTATIVE LEVEL. THE
C                         FIRST 10 BITS ARE USED TO STORE THE TOTAL
C                         ANGULAR MOMENTUM QUANTUM NUMBER. THE NEXT
C                         10 BITS ARE USED TO STORE THE ORBITAL
C                         QUANTUM NUMBER. THE LAST 12 BITS ARE USED
C                         TO STORE THE PRINCIPAL QUANTUM NUMBER.
C
C                         |<---------4 BYTE INTEGER--------->|
C                         |<---------32 BIT INTEGER--------->|
C                         |<----N----->|<----l--->|<---L---->|
C
C                       [ |.....N......|.....l....|.....L....|  ]
C
C                         BIT OPERATORS ARE THEN EMPLOYED TO
C                         INTEROGATE ARRAYS,E.G IAND,ISHFR,
C                         USING HEXIDECIMAL MASKS.
C
C       (I*4) ISG1      : *****UNKNOWN*****
C       (I*4) NMIN      : MINIMUM PRINCIPAL QUANTUM NUMBER OF THE
C                         RANGE WHICH CONTAINS THE REPRESENTATIVE
C                         LEVELS.
C
C       (I*4) NMAX      : MAXIMUM PRINCIPAL QUANTUM NUMBER OF THE
C                         RANGE WHICH CONTAINS THE REPRESENTATIVE
C                         LEVELS.
C       (I*4) IMAX      : THE MAXIMUM NUMBER OF REPRESENTATIVE
C                         LEVELS.
C
C       OUTPUT :
C
C       (R*8) A0        :
C       (R*8) CA0       :
C       (R*8) A         :
C       (R*8) CA        :
C       (R*8) RH        :
C       (R*8) CRH       :
C       (I*4) IOPT      : SWITCH USED TO DETERMINE IF CCNST7
C                         SHOULD ASSEMBLE ARRAYS USED TO
C                         CONSTRUCT THE COLLISIONAL-RADIATIVE
C                         MATRIX EXCLUDING SPIN CHANGING
C                         CROSS SECTIONS ( IOPT = 1 ) OR IF
C                         CCNST7 SHOULD ONLY CONTRUCT THE
C                         ARRAYS CONTAINING SPIN CHANGING
C                         CROSS SECTIONS ( IOPT GT 1 ).
C       (I*4) NG        :
C       (I*4) LG        :
C       (I*4) NGL       :
C       (I*4) LTG       :
C       (R*8) FPG       :
C       (I*4) NG1       :
C       (I*4) LG1       :
C       (I*4) NGL1      :
C       (I*4) iLTG1     :
C       (R*8) FPG1      :
C       (R*8) ARL       :
C       (I*4) ISARL     :
C       (R*8) AC1       :
C       (R*8) RHSC1     :
C       (R*8) C1()      : COEFFICIENTS OF THE QUANTUM DEFECT
C                         EXPANSION.
C       (R*8) C2()      : COEFFICIENTS OF THE QUANTUM DEFECT
C                         EXPANSION.
C       (R*8) C3()      : COEFFICIENTS OF THE QUANTUM DEFECT
C                         EXPANSION.
C       (R*8) SCLA      :
C       (I*4) NIMP      : NUMBER OF IMPURITIES IN THE PLASMA.
C       (R*8) ZIMPA     : ARRAY CONTAINING THE NUCLEAR CHARGE
C                         OF THE IMPURITIES IN THE PLASMA.
C       (R*8) FRIMPA    : IMPURITY FRACTIONS.
C       (R**) AMIMPA    : THE ATOMIC MASS OF EACH IMPURITY
C                                 WITHIN THE PLASMA.
C
C
C
C       ROUTINES:
C
C           ROUTINE        SOURCE         DESCRIPTION
C        -----------------------------------------------
C           GBBR            ADAS
C           GBB             ADAS
C           PYVR            ADAS
C           PYPR            ADAS
C           PYIPHE          ADAS
C           RQVNEW          ADAS
C           RQLNEW          ADAS
C           RQBNEW          ADAS
C           GHNLV           ADAS
C           GHNLE           ADAS
C           COLINT          ADAS
C           RQINEW          ADAS
C           PHOTO2          ADAS
C           NDIEL           ADAS
C           RNDEGV          ADAS
C           WIG6J           ADAS
C           OVLP            ADAS
C           COLEXC          ADAS
C           .....
C           .....
C           .....
C
C
C       CONTACT : HARVEY ANDERSON
C                 UNIVERSITY OF STRATHCLYDE
C                 ANDERSON@BARWANI.PHYS.STRATH.AC.UK
C
C       DATE    : 2/2/98
C
C
C
C       WARNING!!! : CODE IS UNDER DEVELOPMENT
C
C                    HARVEY ANDERSON
C                    UNIVERSITY OF STRATHCLYDE
C
C VERSION:      1.2                                     DATE:   21-10-99
C MODIFIED: RICHARD MARTIN
C               CHANGED HEXADECIMAL CONSTANTS TO Z'FFF00000' FORM.
C               CORRECTED ARRAY INDEXING PROBLEM
C
C VERSION : 1.3
C MODIFIED: Martin O'Mullane
C DATE    : 3-6-2000
C           iLTG1 is a scalar here but is passed from start7
C           as an integer array. It should be LTG1 not iLTG1.
C           COR should be 20 not 6 - seel NDIEL subroutine.
C           CORS should be an array not a scalar.
C
C VERSION : 1.4
C DATE    : 18-11-2004
C MODIFIED: Martin O'Mullane
C            - Align with Harvey Anderson's last version.
C            - Make implicit none and remove unecessary code.
C
C VERSION : 1.5
C DATE    : 24-02-2005
C MODIFIED: Martin O'Mullane
C            - Make implicit none and remove unecessary code.
C
C-----------------------------------------------------------------------
      INTEGER             I,           IMAX,        IOPT,        IR
      INTEGER             ISARL(80),   ISG,         ISG1,        K
      INTEGER             KPF(1000),   LG,          LG1,         LTG(5)
      INTEGER             LTG1(5),     NG,          NG1,         NGL
      INTEGER             NGL1,        NIMP,        NLREP(80),   NMAX
      INTEGER             NMIN
      REAL*8              A(1000),     A0,          AC1
      REAL*8              AMIMPA(10),  ARL(80),     C1(5,5,3)
      REAL*8              C2(5,5,3),   C3(5,5,3),   CA(1000),    CA0
      REAL*8              CGBBA(800,3),             CRH,         E
      REAL*8              ENL(1000),   ENL2(1000),  EXE
      REAL*8              EXMTE(1000), EXPTE(1000), EXPTS(1000), EXS
      REAL*8              FPG(5),      FPG1(5),     FRIMPA(10),  RH
      REAL*8              RHSC1,       SCLA(240,8), V
      REAL*8              ZIMPA(10)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk