ADAS Subroutine catmpf
SUBROUTINE CATMPF( IUTMP , NUCCHG , DSNEX , DSNCX , & JDENSM , JTEM , TS , W , & Z , CION , CPY , W1 , & NIP , INTD , IPRS , ILOW , & IONIP , NIONIP , ILPRS , IVDISP , & ZEFF , NOSCAN , NIMP , ZIMPA , & AMIMPA , FRIMPA , DENSA , TEA , & DENPA , TPA , BMENER , DENSH , & NMIN , NMAX , IMAX , NREP , & WBREP , JCOR , COR , JMAX , & EPSIL , FIJ , WIJ , JDEF , & DEFECT & ) C C C----------------------------------------------------------------------- C C ******************* FORTRAN77 SUBROUTINE: CATMPF ********************* C C PURPOSE: TO WRITE TEMPORARY FILE CONTAINING PARAMETERS TO BE READ BY C SUBROUTINE 'V2BNDLN'. C C THIS ROUTINE IS A TEMPORARY MEASURE TO ALLOW 'V2BNDLN' TO C RUN WITHIN THE FRAMEWORK OF ADAS WITHOUT HAVING TO EDIT C 'V2BNDLN'. THE PARAMETERS SHOULD REALLY BE PASSED INTO C 'V2BNDLN' THROUGH ITS ARGUMENT LIST. C C CALLING PROGRAM: ADAS310 C C INPUT : (I*4) IUTMP = UNIT NUMBER OF TEMPORARY FILE. C INPUT : (I*4) NUCCHG = NUCLEAR CHARGE. C INPUT : (C*80) DSNEX = FULL MVS DATA SET NAME FOR EXPANSION FILE C (SUITABLE FOR DYNAMIC ALLOCATION). C INPUT : (C*80) DSNCX = FULL MVS DATA SET NAME FOR CHARGE EXCHANGE C DATA SET (SUITABLE FOR DYNAMIC ALLOCATION) C INPUT : (I*4) JDENSM = NUMBER OF DENSITIES. C INPUT : (I*4) JTEM = NUMBER OF TEMPERATURES. C INPUT : (R*8) TS = EXTERNAL RADIATION FIELD TEMPERATURE. C UNITS: K C INPUT : (R*8) W = EXTERNAL RADIATION FIELD DILUTION FACTOR C (HIGHER LEVELS). C INPUT : (R*8) Z = RECOMBINING ION CHARGE. C INPUT : (R*8) CION = MULTIPLIER OF GROUND LEVEL ELECTRON IMPACT C IONISATION RATE COEFFICIENT. C INPUT : (R*8) CPY = MULTIPLIER OF ELECTRON EXCITATION RATE C COEFFICIENT FROM THE GOUND LEVEL. C INPUT : (R*8) W1 = EXTERNAL RADIATION FIELD DILUTION FACTOR C FOR PHOTO-IONISATION FROM THE GROUND C LEVEL. C INPUT : (R*8) NIP = RANGE OF DELTA N FOR IMPACT PARAMETER C XSECTS. (.LE. 4) C INPUT : (R*8) INTD = ORDER OF MAXWELL QUADRATURE FOR XSECTS. C (.LE. 3) C INPUT : (R*8) IPRS = CONTROLS XSECTS BEYOND NIP RANGE. C 0 => DEFAULT TO VAN REGEMORTER XSECTS. C 1 => USE PERCIVAL-RICHARDS XSECTS. C INPUT : (R*8) ILOW = CONTROLS ACCESS OF SPECIAL LOW LEVEL DATA. C 0 => NO SPECIAL LOW LEVEL DATA ACCESSED. C 1 => SPECIAL LOW LEVEL DATA ACCESSED. C INPUT : (R*8) IONIP = CONTROLS INCLUSION OF ION IMPACT C COLLISIONS. C 0 => NO ION IMPACT COLLISIONS INCLUDED. C 1 => ION IMPACT EXCITATION AND IONISATION C INCLUDED. C INPUT : (R*8) NIONIP = RANGE OF DELTA N FOR ION IMPACT EXCITATION C XSECTS. C INPUT : (R*8) ILPRS = CONTROLS USE OF LODGE-PERCIVAL-RICHARDS C XSECTS. C 0 => DEFAULT TO VAINSHTEIN XSECTS. C 1 => USE LODGE-PERCIVAL-RICHARDS XSECTS. C INPUT : (R*8) IVDISP = CONTROLS USE OF BEAM ENERGY IN CALCULATION C OF XSECTS. C 0 => ION IMPACT AT THERMAL MAXWELLIAN C ENERGIES. C 1 => ION IMPACT AT DISPLACED THERMAL C ENERGIES ACCORDING TO THE NEUTRAL C BEAM ENERGY PARAMETER. C NB: IF IVDISP=0 THEN SPECIAL LOW LEVEL C DATA FOR ION IMPACT IS NOT C SUBSTITUTED - ONLY VAINSHTEIN AND C LODGE ET AL. OPTIONS ARE OPEN. C ELECTRON IMPACT DATA SUBSTITUTION C DOES OCCUR. C INPUT : (R*8) ZEFF = NUCLEAR CHARGE OF IMPURITY. C (ONLY SET IF 'NOSCAN'=0 ) C INPUT : (I*4) NOSCAN = CONTROLS MODE OF OPERATION. C 0 => SINGLE IMPURITY. C 1 => MULTIPLE IMPURITIES. C INPUT : (I*4) NIMP = NUMBER OF IMPURITY SPECIES C (ONLY SET IF 'NOSCAN'=1 ) C INPUT : (R*8) ZIMPA() = NUCLEAR CHARGE OF IMPURITIES. C (ONLY SET IF 'NOSCAN'=1 ) C DIMENSION: NIMP C INPUT : (R*8) AMIMPA() = ATOMIC MASS NUMBERS OF IMPURITIES. C (ONLY SET IF 'NOSCAN'=1 ) C DIMENSION: NIMP C INPUT : (R*8) FRIMPA() = IMPURITY FRACTIONS. C (ONLY SET IF 'NOSCAN'=1 ) C DIMENSION: NIMP C INPUT : (R*8) DENSA() = ELECTRON DENSITIES. C UNITS: CM-3 C DIMENSION: JDENSM C INPUT : (R*8) TEA() = ELECTRON TEMPERATURES. C UNITS: K C DIMENSION: JTEM C INPUT : (R*8) DENPA() = PROTON DENSITIES. C UNITS: CM-3 C DIMENSION: JDENSM C INPUT : (R*8) TPA() = PROTON TEMPERATURES. C UNITS: K C DIMENSION: JTEM C INPUT : (R*8) BMENER = NEUTRAL BEAM PARTICLE ENERGY. C UNITS: EV / AMU C INPUT : (R*8) DENSH = NEUTRAL HYDROGEN DENSITY IN BEAM. C UNITS: CM-3 C INPUT : (I*4) NMIN = LOWEST N-SHELL. C INPUT : (I*4) NMAX = HIGHEST N-SHELL. C INPUT : (I*4) IMAX = NUMBER OF REPRESENTATIVE N-SHELL LEVELS. C INPUT : (I*4) NREP() = SET OF REPRESENTATIVE N-SHELL LEVELS. C DIMENSION: IMAX C INPUT : (R*8) WBREP() = C DIMENSION: IMAX C INPUT : (I*4) JCOR = C INPUT : (R*8) COR() = C DIMENSION: JCOR C INPUT : (I*4) JMAX = C INPUT : (R*8) EPSIL() = C DIMENSION: JMAX C INPUT : (R*8) FIJ() = C DIMENSION: JMAX C INPUT : (R*8) WIJ() = C DIMENSION: JMAX C INPUT : (I*4) JDEF = NUMBER OF QUAMTUM DEFECTS. C INPUT : (R*8) DEFECT() = SET OF QUANTUM DEFECT. C DIMENSION: JDEF C C (I*4) I = ARRAY INDEX. C C (L*4) LOPEN = FLAGS IF SCRATCH FILE OPEN. C .TRUE. => SCRATCH FILE OPEN. C .FALSE. => SCRATCH FILE CLOSED. C C AUTHOR: JONATHAN NASH (TESSELLA SUPPORT SERVICES PLC) C K1/0/81 C JET EXT. 5183 C C DATE: 17/01/94 C C UNIX-IDL PORT: C C VERSION: 1.1 DATE: 08-02-96 C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC) C - FIRST VERSION C C VERSION: 1.2 DATE: 17-05-07 C MODIFIED: Allan Whiteford C - Updated comments as part of subroutine documentation C procedure. C----------------------------------------------------------------------- C C----------------------------------------------------------------------- CHARACTER*80 DSNCX, DSNEX INTEGER ILOW, ILPRS, IMAX, INTD INTEGER IONIP, IPRS, IUTMP, IVDISP INTEGER JCOR, JDEF, JDENSM, JMAX INTEGER JTEM, NIMP, NIONIP, NIP INTEGER NMAX, NMIN, NOSCAN INTEGER NREP(IMAX), NUCCHG REAL*8 AMIMPA(NIMP), BMENER, CION REAL*8 COR(JCOR), CPY, DEFECT(JDEF) REAL*8 DENPA(JDENSM), DENSA(JDENSM) REAL*8 DENSH, EPSIL(JMAX), FIJ(JMAX) REAL*8 FRIMPA(NIMP), TEA(JTEM) REAL*8 TPA(JTEM), TS, W, W1 REAL*8 WBREP(IMAX), WIJ(JMAX), Z, ZEFF REAL*8 ZIMPA(NIMP)