ADAS Subroutine cxbms
SUBROUTINE CXBMS(DSNIN,NSITYP,IOUNIT,SIFRAC,UBMENG,UTDENS,
& UTTEMP,NREQ,MXREQS,BSTOT)
C-----------------------------------------------------------------------
C
C ********** FORTRAN 77 SUBROUTINE: CXBMS **********
C
C PURPOSE: TO ASSEMBLE COMPOSITE BEAM STOPPING OF EMISSION
C COEFFICIENTS USING THE LINEAR INTERPOLATION
C AND COMBINATION METHOD.
C
C
C INPUT
C
C (R*8) UBMENG : USER REQUESTED NEUTRAL BEAM ENERGIES
C UNITS: EV/AMU
C DIMENSION: NREQ
C (R*8) UTDENS : USER REQUESTED TARGET DENSITIES
C UNITS: CM-3
C DIMENSION: NREQ
C (R*8) UTTEMP : USER REQUESTED TARGET TEMPERATURES
C UNITS: EV
C DIMENSION: NREQ
C (R*8) SIFRAC : FRACTIONAL IMPURITY CONTENT.
C 1ST DIMENSION: MXREQS
C 2ND DIMENSION: NSITYP
C (I*4) NSITYP : NUMBER OF PLASMA IMPURITY IONS.
C (I*4) NREQ : NUMBER OF REQUESTED ENERGIES,
C DENSITIES AND TEMPERATURES.
C (I*4) MXREQS : SIZE OF FIRST DIMENSION OF SIFRAC
C
C (I*4) IOUNIT : UNIT NUMBER EMPLOYED TO READ ADF21
C AND ADF22 TYPE FILES.
C
C (CHR) DSNIN() : ARRAY CONTAINING NAME OF EACH FILE TO BE READ.
C DIMENSION: NSITYP
C
C
C OUTPUT
C
C (R*8) BSTOT() : TOTAL BEAM STOPPING COEFFICIENTS.
C DIMENSION: NREQ
C
C GENERAL
C
C (R*8) BEREF() : REFERENCE BEAM ENERGIES.
C UNITS: EV/AMU
C DIMENSION: MXIT
C (R*8) TDREF() : REFERENCE TARGET DENSITIES.
C UNITS: CM-3
C DIMENSION: MXIT
C (R*8) TTREF() : REFERENCE TARGET TEMPERATURES.
C UNITS: EV
C DIMENSION: MXIT
C (R*8) SVREF() : STOPPING COEFFT. AT REFERENCE BEAM ENERGY,
C TARGET DENSITY AND TEMPERATURE.
C UNITS: CM3 S-1
C DIMENSION: MXIT
C (R*8) BE(,) : BEAM ENERGIES.
C UNITS: EV/AMU
C 1ST DIMENSION: MXBE
C 2ND DIMENSION: MXIT
C (R*8) TDENS(,) : TARGET DENSITIES.
C UNITS: CM-3
C 1ST DIMENSION: MXTD
C 2ND DIMENSION: MXIT
C (R*8) TTEMP(,) : TARGET TEMPERATURES.
C UNITS: EV
C 1ST DIMENSION: MXTT
C 2ND DIMENSION: MXIT
C (R*8) SVT(,) : STOPPING COEFFT. AT REFERENCE BEAM ENERGY
C AND TARGET DENSITY.
C UNITS: CM3 S-1
C 1ST DIMENSION: MXTT
C 2ND DIMENSION: MXIT
C (R*8) SVED(,,) : STOPPING COEFFT. AT REFERENCE TARGET
C TEMPERATURE.
C UNITS: CM3 S-1
C 1ST DIMENSION: MXBE
C 2ND DIMENSION: MXTD
C 3RD DIMENSION: MXIT
C (R*8) BSION(,) : BEAM STOPPING COEFFICIENTS FOR INDIVIDUAL
C IONS.
C 1ST DIMENSION: MXREQ
C 2ND DIMENSION: MXIT
C
C (R*8) FACT1 : FACTOR USED IN CALCULATING ZEFF
C (R*8) FACT2 : SIMILAR TO FACT1.
C (R*8) ZEFF() : USED SO THAT THE BEAM STOPPING
C COEFFICIENTS FOR INDIVUDUAL
C IMPURITY IONS ARE EVALUATED AT THE
C CORRECT EFFECTIVE ELECTRON DENSITY.
C (R*8) WT : WEIGHTING FACTOR.
C (R*8) TFRAC : GENERAL VARIABLE.
C
C (I*4) MXREQ : MAXIMUM NUMBER OF REQUESTED ENERGIES
C DENSITIES AND TEMPERATURES
C (I*4) MXIT : MAXIMUM POSSIBLE NUMBER OF DIFFERENT
C PLASMA IONS.
C (I*4) MXBE : MAXIMUM NUMBER OF BEAM ENERGIES WHICH CAN
C BE READ FROM THE ADF21/22 TYPE FILES.
C (I*4) MXTD : MAXIMUM NUMBER OF TARGET DENSITIES WHICH CAN
C BE READ FROM THE ADF21/22 TYPE FILES.
C (I*4) MXTT : MAXIMUM NUMBER OF TARGET TEMPERATURES WHICH
C CAN BE READ FROM THE ADF21/22 TYPE FILES.
C (I*4) ITZ() : TARGET ION CHARGE.
C DIMENSION: MXIT
C (I*4) NBE() : NUMBER OF BEAM ENERGIES.
C DIMENSION: MXIT
C (I*4) NTDENS() : NUMBER OF TARGET DENSITIES.
C DIMENSION: MXIT
C (I*4) NTTEMP() : NUMBER OF TARGET TEMPERATURES.
C DIMENSION: MXIT
C
C (CHR) TSYM() : TARGET ION ELEMENT SYMBOL.
C DIMENSION: MXIT
C
C (L*4) LIBMA(,) : FLAGS IF INTERPOLATION OR EXTRAPOLATION
C USED FOR REQUESTED BEAM ENERGIES.
C .TRUE. => INTERPOLATION USED.
C .FALSE. => EXTRAPOLATION USED.
C 1ST DIMENSION: MXREQ
C 2ND DIMENSION: MXIT
C NOTE: USE OF FLAGS NOT IMPLEMENTED
C (L*4) LIDNA(,) : FLAGS IF INTERPOLATION OR EXTRAPOLATION
C USED FOR REQUESTED ION DENSITIES.
C .TRUE. => INTERPOLATION USED.
C .FALSE. => EXTRAPOLATION USED.
C 1ST DIMENSION: MXREQ
C 2ND DIMENSION: MXIT
C NOTE: USE OF FLAGS NOT IMPLEMENTED
C (L*4) LITIA(,) : FLAGS IF INTERPOLATION OR EXTRAPOLATION
C USED FOR REQUESTED ION TEMPERATURES.
C .TRUE. => INTERPOLATION USED.
C .FALSE. => EXTRAPOLATION USED.
C 1ST DIMENSION: MXREQ
C 2ND DIMENSION: MXIT
C NOTE: USE OF FLAGS NOT IMPLEMENTED
C
C ROUTINES:
C
C ROUTINE SOURCE BRIEF DESCRIPTION
C -------------------------------------------------------------
C C4DATA ADAS READS INPUT DATA SET IN ADF21/22 FORMAT.
C C4SPLN ADAS PERFORMS SPLINE ON INPUT DATA.
C I4UNIT ADAS RETURNS UNIT NO. FOR OUTPUT OF MESSAGES.
C
C
C NOTE : THE IMPURITY FRACTIONS ARE RENORMNALISED TO
C ENSURE THAT THE TOTAL SUM OF EACH IMPURITY
C FRACTION DOES NOT EXCEED THE VALUE OF ONE.
C
C
C AUTHOR: HARVEY ANDERSON
C UNIVERSITY OF STRATHCLYDE
C ANDERSON@PHYS.STRATH.AC.UK
C
C DATE : 30/09/99
C
C VERSION : 1.1
C DATE : 3-6-2000
C MODIFIED: Martin O'Mullane
C Repositioned declaration of variables into standard
C ADAS convention and to satisfy g77.
C
C VERSION : 1.2
C DATE : 19-3-2003
C MODIFIED: Lorne Horton
C Increased MXREQ to 1024. Added check on internal
C matrix sizes. Added LSET flag to allow faster
C splines on repeated calls to C4SPLN.
C
C VERSION : 1.3
C DATE : 03-12-2004
C MODIFIED: Martin O'Mullane
C - Replace c4data with xxdata_21.
C - Increase dsnin length to 132 characters.
C - Merge L Horton's changes into central version.
C
C VERSION : 1.4
C DATE : 08-12-2004
C MODIFIED: Martin O'Mullane/Allan Whiteford
C - Increase size of dsnsav to 132 and set initial
C values to ' ' rather than ''.
C
C-----------------------------------------------------------------------
CHARACTER*132 DSNIN(NSITYP)
INTEGER IOUNIT, MXREQS, NREQ, NSITYP
REAL*8 BSTOT(NREQ), SIFRAC(MXREQS,NSITYP)
REAL*8 UBMENG(NREQ), UTDENS(NREQ)
REAL*8 UTTEMP(NREQ)