ADAS Subroutine b4proj
SUBROUTINE B4PROJ ( W1 , JTE , JDENS ,
& NMIN , NMAX , NREP , IMAX ,
& NRESU , ARED , RHS , CIONPT ,
& TRECPT , DRECPT , RRECPT , XRECPT ,
& NPRT , NMAXI , NREPI ,
& IMAXI , AREDI , RHSI ,
& CIONRI , CIONRA , RHSIRC ,
& IEDMAT , IECION , IETREC ,
& IEDREC , IERREC , IEXREC ,
& IERSYS , SSYSWT , IPRTCAL,
& DVEC , ACNST , A1CNST ,
& OPEN18 , OPEN19 , OPEN20 ,
& PRB
& )
C-----------------------------------------------------------------------
C
C ************** FORTRAN77 SUBROUTINE: B4PROJ ************************
C
C VERSION: 1.1
C
C PURPOSE: SUBROUTINE TO ESTABLISH THE PROJECTED INFLUENCE OF HIGH
C N-SHELLS IN THE BUNDLE-N COLLISIONAL DIELECTRONIC MODEL
C ON LOW N-SHELLS
C
C BOTH THE RECOMBINATION AND IONISATION PATHWAYS THROUGH THE HIGH
C LEVELS ARE TAKEN INTO ACCOUNT AS WELL AS THE INDIRECT COUPLINGS OF
C LOW RESOLVED LEVELS VIA THE HIGH BUNDLE-N LEVELS.
C
C THE SUBROUTINE IS USED AS AN ARBITRARY CALL FROM WITHIN THE
C CONVENTIONAL BNDLEN ROUTINE FOLLOWING ESTABLISHMENT OF THE
C CONDENSED COLLISIONAL-DIELECTRONIC MATRIX AND RIGHT-HAND SIDE
C
C THE ROUTINE PROVIDES TABULAR OUTPUT AND FOR THE MOMENT PREPARES A
C PASSING FILE FOR FURTHER PROCESSING IN THE A-D-A-S STRUCTURE
C
C
C INPUT:
C W1 = GROUND STATE RADIATION DILUTION FACTOR
C JTE = TEMPERATURE INDEX
C JDENS = DENSITY INDEX
C NMIN = LOWEST N-SHELL
C NMAX = HIGHEST N-SHELL
C NREP(I) = SET OF REPRESENTATIVE LEVELS
C IMAX = NUMBER OF REPRESENTATIVE LEVELS
C NRESU = UPPER LIMIT OF PROJECTED N-SHELLS
C
C ARED(I,J)= CONDENSED COLLISONAL-DIELECTRONIC MATRIX (CN SOLUTION)
C (EXCLUDES AUTO-IONISATION RATES FOR LEVELS LE NRESU)
C RHS(I) = CONDENSED RIGHT-HAND-SIDE (CN SOLUTION)
C (EXCLUDES AUTO-IONISATION RATES FOR LEVELS LE NRESU)
C CIONPT(I)= COLLISIONAL IONISATION CONTRIBUTION TO ARED(I,I)
C TRECPT(I)= THREE BODY RECOMBINATION CONTRIBUTION TO RHS(I)
C DRECPT(I)= DIELECTRONIC RECOMBINATION CONTRIBUTION TO RHS(I)
C RRECPT(I)= RADIATIVE RECOMBINATION CONTRIBUTION TO RHS(I)
C XRECPT(I)= CHARGE EXCHANGE RECOMB. CONTRIBUTION TO RHS(I)
C
C NPRT = NUMBER OF PARENT STATES
C IMAXI
C NMAXI
C NREPI(I) DATA FOR PROJECTION OF IONISATION VECTORS
C AREDI(I,J) SMALL (40X40) MATRIX , CN SOLUTION
C RHSI(I)
C RHSIRC(I)= RECOMBINATION CONTRIBUTION TO RHS
C CIONRI = DIRECT IONISATION DATA, PARENT RESOLVED
C CIONRA = AUTO-IONISATION DATA, PARENT RESOLVED
C
C SSYSWT = SPIN SYSTEM WEIGHT
C IPRTCAL = INDEX OF PARENT FOR CALCULATION
C
C DVEC(I) = CONVERSION FACTOR FOR BN --> POPULATION
C ACNST = 1.03928D-13*Z*ATE*DSQRT(ATE)
C A1CNST = 6.60074D-24*DENS*(157890.0/TE)**1.5
C
C PCION(I) = DIRECT IONISATION RATE FROM LOW LEVEL SET
C POPULATION REPRESENTATION
C PRB = RECOM/CASCADE/BREMS. POWER COEFFT.
C
C OUTPUT - POPULATION REPRESENTATION (WRITTEN TO FILE CBNM.PASS)
C --------------------------------------------------------------
C PCRMAT(I,J) = PROJECTED INFLUENCE OF HIGH LEVELS ON LOW LEVEL SET
C PCRL(I,J) = DIRECT EXCIT/RADIATIVE COUPLING IN LOW LEVEL SET
C PCIONRP(IPRT,I) = PROJECTED IONISATION VECTOR (PARENT RESOLVED)
C PCIONRI(IPRT,I) = DIRECT IONISATION VECTOR FROM LOW LEVEL SET
C (PARENT RESOLVED)
C PCQINRP(IPRT) = INDIRECT PARENT CROSS COUPLING COEFFICIENT
C (PARENT RESOLVED)
C PCRRHS(I) = PROJECTED INFLUENCE OF HIGH LEVELS ON RHS
C PTREC(I) = DIRECT THREE BODY RECOMBINATION RATE
C PDREC(I) = DIRECT DIELECTRONIC RECOMBINATION RATE
C PRREC(I) = DIRECT RADIATIVE RECOMBINATION RATE
C PXREC(I) = DIRECT CX RECOMBINATION RATE
C PRB = RECOM/CASCADE/BREMS. POWER COEFFT.
C
C
C OUPUT CONTROL CHARACTERS
C ------------------------
C IEDMAT = 0 PCRL ADDED ONTO PCRMAT
C 1 PCRL NOT ADDED ON
C IECION = 0 PCION ADDED ONTO TO PCRMAT
C PCIONRI ADDED ONTO PCIONRP
C 1 PCION NOT ADDED ON
C PCIONRI NOT ADDED ON
C IETREC = 0 PTREC ADDED ONTO PCRRHS
C 1 PTREC NOT ADDED ON
C IEDREC = 0 PDREC ADDED ONTO PCRRHS
C 1 PDREC NOT ADDED ON
C IERREC = 0 PRREC ADDED ONTO PCRRHS
C 1 PRREC NOT ADDED ON
C IEXREC = 0 PXREC ADDED ONTO PCRRHS
C 1 PXREC NOT ADDED ON
C IERSYS = 0 RECOMBINATION AND INDIRECT PARENT CROSS COUPLING
C RATES MULTIPLIED BY SPIN SYSTEM WEIGHT
C 1 RECOMBINATION AND INDIRECT PARENT CROSS COUPLING
C RATES NOT MULTIPLIED BY SPIN SYSTEM WEIGHT
C
C
C AUTHOR: WILLIAM J. DICKSON, JET JOINT UNDERTAKING
C
C DATE: 24TH AUGUST 1992
C
C UPDATE: 30/01/97 HP SUMMERS - CHANGED NAME TO B4PROJ FROM V2CLDBN
C
C UPDATE: 29/04/97 HP SUMMERS - ADJUSTMENTS DURING RE-VALIDATION
C
C UPDATE: 09/07/97 HP SUMMERS - INTRODUCE IOUT18 AND IOUT19 FOR CBNM
C AND CBNMPR PASSING FILES
C
C UPDATE: 09/03/98 HP SUMMERS - RECOM/CASCADE/BREMS. POWER NOW
C FETCHED AS INPUT PRB AND RELAYED TO
C CBNM FILE. CONVERTED TO EXPLICIT
C TYPE DECLARATIONS.
C
C-----------------------------------------------------------------------
C
C VERSION: 1.1 DATE: 05-03-98
C MODIFIED: H.SUMMERS, L.HORTON, M.O'MULLANE
C - BASED ON v2cldbc.for v1.2.
C VERSION: 1.2 DATE: 09-03-98
C MODIFIED: H.SUMMERS, L.HORTON, M.O'MULLANE
C - RECOM/CASCADE/BREMS. POWER NOW FETCHED AS INPUT PRB AND
C RELAYED TO CBNM FILE. CONVERTED TO EXPLICIT TYPE DECLARATIONS.
C VERSION: 1.3 DATE: 08-12-98
C HP SUMMERS & RICHARD MARTIN
C - REMOVED TWO OBSOLETE WRITE STATEMENTS.
C
C VERSION: 1.4 DATE: 03-08-2000
C Martin O'Mullane
C - Changed IPRT\N to IPRT/N to avoid \N being interpreted
C as an escape character.
C
C VERSION: 1.5 DATE: 11-09-2002
C Martin O'Mullane
C - Add open18 and open19 to give finer control over the
C output files; extra logic to use them added throughout.
C
C VERSION: 1.6 DATE: 16-05-2007
C Allan Whiteford
C - Modified comments as part of subroutine documentation
C procedure.
C
C-----------------------------------------------------------------------
INTEGER IECION, IEDMAT, IEDREC, IERREC
INTEGER IERSYS, IETREC, IEXREC, IMAX
INTEGER IMAXI, IPRTCAL, JDENS, JTE
INTEGER NMAX, NMAXI, NMIN, NPRT
INTEGER NREP(NDIM+1), NREPI(NDIM+1)
INTEGER NRESU
LOGICAL OPEN18, OPEN19, OPEN20
REAL*8 A1CNST, ACNST, ARED(NDIM,NDIM)
REAL*8 AREDI(NDIM,NDIM), CIONPT(NDIM)
REAL*8 CIONRA(NDMET,NDIM), CIONRI(NDMET,NDIM)
REAL*8 DRECPT(NDIM), DVEC(NDIM), PRB
REAL*8 RHS(NDIM), RHSI(NDIM), RHSIRC(NDIM)
REAL*8 RRECPT(NDIM), SSYSWT
REAL*8 TRECPT(NDIM), W1
REAL*8 XRECPT(NDIM)