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)