ADAS Subroutine bfwr11
C
SUBROUTINE BFWR11( IUNT11 , DSNINP ,
& NDMET , NDLEV , NDTRN , NVMAX ,
& DATE ,
& TITLED , IZ , IZ0 , IZ1 , BWNO ,
& NPL , BWNOA , LBSETA, PRTWTA, CPRTA ,
& IL ,
& IA , CSTRGA , ISA , ILA , XJA , WA ,
& CPLA , NPLA , IPLA , ZPLA ,
& CIONP ,
& NVN , SCEFN ,
& ITRAN , MAXLEV ,
& TCODE , I1A , I2A , AVAL , SCOMN
& )
C----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: BFWR11 *********************
C
C PURPOSE: PRODUCES AN ADF04 TYPE FILE, WHERE THE CONTENTS IS
C CONSIDERED AS THE OUTPUT DATA SET FROM ADAS215.
C
C CALLING PROGRAM: ADAS215
C
C
C
C SUBROUTINE:
C
C INPUT : (I*4) IUNT11 = UNIT TO WHICH INPUT FILE IS ALLOCATED
C INPUT : (C*80) DSNINP = NAME OF INPUT ADF04 FILE
C INPUT : (I*4) NDMET = MAXIMUM NUMBER OF PARENTS
C INPUT : (I*4) NDLEV = MAXIMUM NUMBER OF LEVELS
C INPUT : (I*4) NDTRN = MAX. NUMBER OF TRANSITIONS
C INPUT : (I*4) NVMAX = MAX. NUMBER OF TEMPERATURES
C INPUT : (C*8) DATE = DATE (AS DD/MM/YY).
C INPUT : (C*10) USERID = USER IDENTIFIER OF CODE EXECUTOR.
C INPUT : (C*3) TITLED = ELEMENT SYMBOL.
C INPUT : (I*4) IZ = RECOMBINED ION CHARGE READ
C INPUT : (I*4) IZ0 = NUCLEAR CHARGE READ
C INPUT : (I*4) IZ1 = RECOMBINING ION CHARGE READ
C (NOTE: IZ1 SHOULD EQUAL IZ+1)
C INPUT : (R*8) BWNO = IONISATION POTENTIAL (CM-1)
C INPUT : (I*4) NPL = NO. OF PARENTS ON FIRST LINE OF ADF04 FILE
C INPUT : (R*8) BWNOA() = IONISATION POTENTIAL (CM-1) OF PARENTS
C 1ST.DIM.: PARENT INDEX
C INPUT : (R*8) PRTWTA()= PARENT WEIGHT FOR BWNOA()
C 1ST.DIM.: PARENT INDEX
C INPUT : (C*9) CPRTA() = PARENT NAME IN BRACKETS
C 1ST DIM.: PARENT INDEX
C INPUT : (L*4) LBSETA() = .TRUE. - PARENT WEIGHT SET FOR BWNOA()
C .FALSE. - PARENT WEIGHT NOT SET FOR BWNOA()
C
C INPUT : (I*4) IL = INPUT DATA FILE: NUMBER OF ENERGY LEVELS
C
C INPUT : (I*4) IA() = ENERGY LEVEL INDEX NUMBER
C INPUT : (C*18) CSTRGA()= NOMENCLATURE/CONFIGURATION FOR LEVEL 'IA()'
C INPUT : (I*4) ISA() = MULTIPLICITY FOR LEVEL 'IA()'
C NOTE: (ISA-1)/2 = QUANTUM NUMBER (S)
C INPUT : (I*4) ILA() = QUANTUM NUMBER (L) FOR LEVEL 'IA()'
C INPUT : (R*8) XJA() = QUANTUM NUMBER (J-VALUE) FOR LEVEL 'IA()'
C NOTE: (2*XJA)+1 = STATISTICAL WEIGHT
C INPUT : (R*8) WA() = ENERGY RELATIVE TO LEVEL 1 (CM-1) FOR LEVEL
C 'IA()'
C INPUT : (C*1) CPLA() = CHAR. SPECIFYING 1ST PARENT FOR LEVEL 'IA()'
C INTEGER - PARENT IN BWNOA() LIST
C 'BLANK' - PARENT BWNOA(1)
C 'X' - DO NOT ASSIGN A PARENT
C 1ST DIM.: LEVEL INDEX
C INPUT : (I*4) NPLA() = NO. OF PARENT/ZETA CONTRIBUTIONS TO IONIS.
C OF LEVEL
C 1ST DIM.: PARENT INDEX
C INPUT : (I*4) IPLA(,) = PARENT INDEX FOR CONTRIBUTIONS TO IONIS.
C OF LEVEL
C 1ST DIM.: PARENT INDEX
C 2ND DIM.: LEVEL INDEX
C INPUT : (R*8) ZPLA(, = EFF. ZETA PARAM. FOR CONTRIBUTIONS TO IONIS.
C OF LEVEL
C 1ST DIM.: PARENT INDEX
C INPUT : (C*92) CIONP = STRING CONTAINING LEVEL TERMINATOR AND
C IONISATION POTENTIALS
C
C INPUT : (I*4) NVN = INPUT DATA FILE: NUMBER OF GAMMA/TEMPERATURE
C PAIRS FOR A GIVEN TRANSITION.
C INPUT : (R*8) SCEFN() = INPUT DATA FILE: ELECTRON TEMPERATURES (K)
C (INITIALLY JUST THE MANTISSA. SEE 'ITPOW()')
C (NOTE: TE=TP=TH IS ASSUMED)
C
C INPUT : (I*4) ITRAN = INPUT DATA FILE: NUMBER OF TRANSITIONS
C INPUT : (I*4) MAXLEV = HIGHEST INDEX LEVEL IN READ TRANSITIONS
C
C INPUT : (C*1) TCODE() = TRANSITION: DATA TYPE POINTER:
C ' ' => Electron Impact Transition
C 'P' => Proton Impact Transition
C 'H' => Charge Exchange Recombination
C 'R' => Free Electron Recombination
C INPUT : (I*4) I1A() = TRANSITION:
C LOWER ENERGY LEVEL INDEX (CASE ' ' & 'P')
C SIGNED PARENT INDEX (CASE 'H' & 'R')
C INPUT : (I*4) I2A() = TRANSITION:
C UPPER ENERGY LEVEL INDEX (CASE ' ' & 'P')
C CAPTURING LEVEL INDEX (CASE 'H' & 'R')
C INPUT : (R*8) AVAL() = TRANSITION:
C A-VALUE (SEC-1) (CASE ' ')
C NEUTRAL BEAM ENERGY (CASE 'H')
C NOT USED (CASE 'P' & 'R')
C INPUT : (R*8) SCOMN(,)= TRANSITION:
C GAMMA VALUES (CASE ' ' & 'P')
C RATE COEFFT. (CM3 SEC-1) (CASE 'H' & 'R')
C 1ST DIMENSION - TEMPERATURE 'SCEF()'
C 2ND DIMENSION - TRANSITION NUMBER
C
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C -------------------------------------------------------------
C I4UNIT ADAS FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C XXNAME ADAS FINDS REAL NAME OF USER
C XXWSTR ADAS WRITES STRING TO A UNIT WITH TRAILING
C BLANKS REMOVED
C
C
C AUTHOR : H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE
C JA8.08
C TEL. 0141-553-4196
C
C DATE: 04/06/96
C
C UPDATE:
C
C VERSION: 1.1 DATE: 09/08/98
C MODIFIED: RICHARD MARTIN
C - PUT UNDER SCCS CONTROL.
C
C VERSION: 1.2 DATE: 15/04/99
C MODIFIED: Martin O'Mullane
C - Add real name of user via XXNAME.
C - Remove trailing blanks from adf04 file.
C
C----------------------------------------------------------------------
CHARACTER*92 CIONP
CHARACTER CPLA(NDLEV)
CHARACTER*9 CPRTA(NDMET)
CHARACTER*18 CSTRGA(NDLEV)
CHARACTER*8 DATE
CHARACTER*80 DSNINP
CHARACTER TCODE(NDTRN)
CHARACTER*3 TITLED
INTEGER I1A(NDTRN), I2A(NDTRN), IA(NDLEV), IL
INTEGER ILA(NDLEV), IPLA(NDMET,NDLEV)
INTEGER ISA(NDLEV), ITRAN, IUNT11, IZ
INTEGER IZ0, IZ1, MAXLEV, NDLEV
INTEGER NDMET, NDTRN, NPL
INTEGER NPLA(NDLEV), NVMAX, NVN
LOGICAL LBSETA(NDMET)
REAL*8 AVAL(NDTRN), BWNO, BWNOA(NDMET)
REAL*8 PRTWTA(NDMET), SCEFN(NVMAX)
REAL*8 SCOMN(NVMAX,NDTRN), WA(NDLEV)
REAL*8 XJA(NDLEV), ZPLA(NDMET,NDLEV)