ADAS Subroutine cewr11
SUBROUTINE CEWR11( DSFULL , DATE ,
& IUNIT , MXNENG , MXNSHL ,
& CATYP , AMDON , AMREC , DREN ,
& SYMBR , SYMBD , IZR , IZD ,
& INDD , NENRGY , NMIN , NMAX ,
& LPARMS , LSETL , ENRGYA ,
& ALPHAA , LFORMA , XLCUTA , PL2A ,
& PL3A , SIGTA , SIGNA , SIGLA
& )
C----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: CEWR11 *********************
C
C PURPOSE: TO OUTPUT DATA TO MODIFIED ADF01 FILE.
C
C IF THE ADF01 FILE IS FOR THERMAL/THERMAL,
C THERMAL/DONOR OR THERMAL/RECEIVER THEN THE RATE
C (PASSED AS SIGMA) IS DIVIDED BY
C 1.384D4 * 100 * DSQRT(TE)
C IN ORDER TO ALLOW THE FILE TO BE USED WITH UNMODIFIED
C SERIES 3 PROGRAMS.
C
C CALLING PROGRAM: ADAS314
C
C DATA:
C THE UNITS USED IN THE DATA FILE ARE TAKEN AS FOLLOWS:
C COLLISION ENERGIES : KEV/AMU
C ALPHA :
C TOTAL XSECTS. : CM2
C N-SHELL XSECTS. : CM2
C NL-SHELL DATA : CM2
C NLM-SHELL DATA : CM2
C
C
C SUBROUTINE:
C
C INPUT : (I*4) IUNIT = INPUT UNIT NUMBER FOR RESULTS
C INPUT : (I*4) MXNENG = MAXIMUM NO. OF ENERGIES.
C INPUT : (I*4) MXNSHL = MAXIMUM NO. OF N SHELLS.
C INPUT : (C*80) TITLED = NOT SET - TITLE FOR DATA SOURCE.
C INPUT : (C*80) DSFULL = SOURCE DATASET
C INPUT : (C2) CATYP = 'TT' THERMAL/THERMAL (EQUAL TEMPERATURES
C FOR DONOR AND RECEIVER ONLY)
C 'TR' THERMAL RECEIVER, MONOENERGETIC DONOR
C 'TD' THERMAL DONOR, MONOENERGETIC RECEIVER
C 'ME' SPECIAL MONOENERGETIC CASE
C INPUT : (R*8) AMDON = DONOR MASS NUMBER
C INPUT : (R*8) AMREC = RECEIVER MASS NUMBER
C INPUT : (R*8) DREN = DONOR ENERGY ( 'TR' CASE )
C RECEIVER ENERGY ( 'TD' CASE )
C INPUT : (C*2) SYMBR = READ - RECEIVER ION ELEMENT SYMBOL.
C INPUT : (C*2) SYMBD = READ - DONOR ION ELMENT SYMBOL.
C INPUT : (I*4) IZR = READ - ION CHARGE OF RECEIVER.
C INPUT : (I*4) IZD = READ - ION CHARGE OF DONOR.
C INPUT : (I*4) INDD = READ - DONOR STATE INDEX.
C INPUT : (I*4) NENRGY = NUMBER OF ENERGIES READ.
C INPUT : (I*4) NMIN = LOWEST N-SHELL FOR WHICH DATA READ.
C INPUT : (I*4) NMAX = HIGHEST N-SHELL FOR WHICH DATA READ.
C INPUT : (L*4) LPARMS = FLAGS IF L-SPLITTING PARAMETERS PRESENT.
C .TRUE. => L-SPLITTING PARAMETERS PRESENT.
C .FALSE => L-SPLITTING PARAMETERS ABSENT.
C INPUT : (L*4) LSETL = FLAGS IF L-RESOLVED DATA PRESENT.
C .TRUE. => L-RESOLVED DATA PRESENT.
C .FALSE => L-RESOLVED DATA ABSENT.
C INPUT : (L*4) LSETM = FLAGS IF M-RESOLVED DATA PRESENT.
C .TRUE. => M-RESOLVED DATA PRESENT.
C .FALSE => M-RESOLVED DATA ABSENT.
C INPUT : (R*8) ENRGYA() = READ - COLLISION ENERGIES.
C UNITS: EV/AMU (READ AS KEV/AMU)
C DIMENSION: ENERGY INDEX
C INPUT : (R*8) ALPHAA() = READ - EXTRAPOLATION PARAMETER ALPHA.
C DIMENSION: ENERGY INDEX
C INPUT : (I*4) LFORMA() = READ - PARAMETERS FOR CALCULATING L-RES
C X-SEC.
C DIMENSION: ENERGY INDEX
C INPUT : (R*8) XLCUTA() = READ - PARAMETERS FOR CALCULATING L-RES
C X-SEC.
C DIMENSION: ENERGY INDEX
C INPUT : (R*8) PL2A() = READ - PARAMETERS FOR CALCULATING L-RES
C X-SEC.
C DIMENSION: ENERGY INDEX
C INPUT : (R*8) PL3A() = READ - PARAMETERS FOR CALCULATING L-RES
C X-SEC.
C DIMENSION: ENERGY INDEX
C INPUT : (R*8) SIGTA() = READ - TOTAL CHARGE EXCHANGE
C CROSS-SECTION.
C UNITS: CM2
C DIMENSION: ENERGY INDEX
C INPUT : (R*8) SIGNA(,) = READ - N-RESOLVED CHARGE EXCHANGE
C CROSS-SECTIONS.
C UNITS: CM2
C 1ST DIMENSION: ENERGY INDEX
C 2ND DIMENSION: N-SHELL
C INPUT : (R*8) SIGLA(,) = READ - L-RESOLVED CHARGE EXCHANGE
C CROSS-SECTIONS.
C UNITS: CM2
C 1ST DIMENSION: ENERGY INDEX
C 2ND DIMENSION: INDEXED BY I4IDFL(N,L)
C INPUT : (R*8) SIGMA(,) = READ - M-RESOLVED CHARGE EXCHANGE
C CROSS-SECTIONS.
C UNITS: CM2
C 1ST DIMENSION: ENERGY INDEX
C 2ND DIMENSION: INDEXED BY I4IDFM(N,L,M)
C WITH M >= 0 ONLY
C (I*4) NWIDTH = NUMBER OF ENERGY VALUES PER LINE
C (I*4) IVALUE = USED TO PARSE FOR END OF DATA FLAG (-1).
C (I*4) N = N QUANTUM NUMBER.
C (I*4) L = L QUANTUM NUMBER.
C (I*4) M = M QUANTUM NUMBER.
C (I*4) I = LOOP COUNTER.
C (I*4) K = LOOP COUNTER.
C (I*4) IERR = ERROR RETURN CODE.
C (C*1) INDD = DONOR STATE INDEX.
C (C*28) UID = USER IDENTIFIER.
C (C*8) DATE = CURRENT DATE.
C (R*8) FMUL = MULTIPLER 1.384D4 * 100
C
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C -------------------------------------------------------------
C I4FCTN ADAS RETURNS CHARACTER STRING AS AN INTEGER.
C I4UNIT ADAS FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C I4IDFL ADAS RETURNS UNIQUE INDEX FROM QUANTUM
C NUMBERS N AND L.
C I4IDFM ADAS RETURNS UNIQUE INDEX FROM QUANTUM
C NUMBERS N, L AND M.
C XXIDTL ADAS INVERSE OF I4IDFL. RETURNS QUANTUM
C NUMBERS N AND L FROM INDEX.
C XXIDTM ADAS INVERSE OF I4IDFM. RETURNS QUANTUM
C NUMBERS N, L AND M FROM INDEX.
C XXNAME ADAS FINDS REAL NAME OF USER
C XXSLEN ADAS FINDS NON BLANK PART OF STRING
C
C
C AUTHOR: H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE
C JA8.08
C TEL. 0141-553-4196
C DATE: 19/09/95
C
C
C UPDATE: 27/08/97 HP SUMMERS - CHANGED NAME FROM CCWR11 TO CDWR11
C REMOVED REDUNDANT FORMATS 2000, 2006
C UPDATE: 09/07/98 Martin O'Mullane - added DATE to input list and
C removed call to xxuid
C
C VERSION: 1.1 DATE: 01-12-98
C MODIFIED: RICHARD MARTIN
C - PUT UNDER SCCS CONTROL
C
C VERSION: 1.2 DATE: 24-03-99
C MODIFIED: MARTIN O'MULLANE
C - SECOND VERSION
C
C VERSION: 1.3 DATE: 17-05-07
C MODIFIED: Allan Whiteford
C - Updated comments as part of subroutine documentation
C procedure.
C
C VERSION : 1.4
C DATE : 22-05-2007
C MODIFIED : Martin O'Mullane
C - Remove unused m-subshell data possibility.
C
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
CHARACTER*2 CATYP
CHARACTER*8 DATE
CHARACTER*80 DSFULL
CHARACTER*2 SYMBD, SYMBR
INTEGER INDD, IUNIT, IZD, IZR
INTEGER LFORMA(MXNENG), MXNENG, MXNSHL
INTEGER NENRGY, NMAX, NMIN
LOGICAL LPARMS, LSETL
REAL*8 ALPHAA(MXNENG), AMDON, AMREC
REAL*8 DREN, ENRGYA(NENRGY)
REAL*8 PL2A(MXNENG), PL3A(MXNENG)
REAL*8 SIGLA(MXNENG,(MXNSHL*(MXNSHL+1))/2)
REAL*8 SIGNA(MXNENG,MXNSHL), SIGTA(MXNENG)
REAL*8 XLCUTA(MXNENG)