ADAS Subroutine xxwcmt_15
subroutine xxwcmt_15( iunit ,
& ndstore , ndcmt , ndfld , ndsyn ,
& ndion , ndopt , ndlev ,
& lroot , lsuper ,
& nfld , isyn , fldk ,
& lfld ,
& iz0 , iz1 , popcode ,
& dsn04 , dsn18 ,
& nion , cion , lion ,
& nopt , copt , lopt ,
& nlev , config , cterm , ener ,
& esym , dsnpt ,
& iptnl , is , tabul , units ,
& nbsel , nspb , nspp ,
c ntrans , ctrans , wtrans ,
& ctype , ispbr , isppr , iszr ,
& itg , ipr , iwr ,
& code , producer , date
& )
c-----------------------------------------------------------------------
c
c ****************** fortran 77 subroutine: xxwcmt_15 ******************
c
c purpose: To write the comment section of an adf15 file .
c
c notes: (1) The routine checks for the presence of field keys of
c their synonyms, returns a value for the field if
c present and the location & range of comment lines
c associated with the field key if appropriate. This
c follows the general pattern of adf comment reading
c subroutines.
c (2) Analysis is carried out on the associated comment lines
c of specific field keys to isolate and return relevant
c information. This is specific to the adf number. These
c returned data should match the data which needs to be
c provided to enable writing of identical comment lines
c by 'xxwcmt_15.for'
c
c subroutine:
c
c input : (i*4) iunit = unit number for input adf15 file
c input : (i*4) ndcnct = maximum number of elements in connection
c input : (i*4) ndcmt = maximum number of comment text lines
c input : (i*4) ndfld = maximum number of search field
c input : (i*4) ndion = maximum number of selective ionis coefft.
c inclusions
c input : (i*4) ndopt = maximum number of options keys set in
c population code
c input : (i*4) ndlev = maximum number of levels included in
c population calculation
c input : (l*4) lroot = .true. => output root comments
c .false. => do not output root comments
c input : (l*4) lsuper = .true. => output superstage comments
c .false. => do not output superstage comments
c input : (i*4) nfld = number of fields for adf15 comments
c input : (i*4) isyn() = number of synonyms for fields
c 1st dim: field index (1->nfld)
c input : (c*40) fldk(,) = field keys
c 1st dim: field index (1->nfld)
c 2nd dim: synonymn index (1->isyn())
c input : (l*4) lfld() = .true. => field available for comments
c = .false. => field not available
c 1st dim: field index (1->nfld)
c input : (i*4) iz0 = nuclear charge
c input : (i*4) iz1 = emitting ion charge+1
c input : (c*7) popcode = propulation processing code
c input : (c*120)dsn04 = adf04 file used by population code
c input : (c*120)dsn18 = adf18 map file used to access projection
c input : (i*4) nion = number of selective ionis. coefft.
c inclusions in population calculation
c input : (c*5) cion() = selec. ionis coefft. spec as (ispb,ispp)
c 1st dim: ionis coefft. list index
c input : (l*1) lion() = .true. => included
c = .false.=> not included
c 1st dim: ionis coefft. list index
c input : (i*4) nopt = number of option keys present for
c population calculation
c input : (c*6) copt() = option specification strings as l*****
c 1st dim: option list index
c input : (l*1) lopt() = .true. => set
c = .false.=> not set
c 1st dim: option list index
c input : (i*4) nlev = number of energy levels included in
c population calculation
c input : (c*19) config() = configuration string
c 1st dim: level list index
c input : (c*14) cterm() = term/level specification string
c 1st dim: level list index
c input : (r*8) ener() = energy level relative to lowest (cm^-1)
c 1st dim: level list index
c input : (c*2) esym = element symbol
c input : (c*120)dsnpt = parent file template used to create
c current child partition (blank if root)
c input : (i*4) iptnl = current partition level
c input : (i*4) is = superstage label
c input : (c*40) tabul = adf15 quantity tabulated specification
c input : (c*40) units = adf15 units use specification
c input : (i*4) nspb = number of excitation (base) drivers for
c superstage (= icnctv(is))
c input : (i*4) nspp = number of recombination (parent) drivers
c for superstage (=icnctv(is+1))
c input : (i*4) nbsel = number of emissivity line blocks in the
c adf15 file
c input : (i*4) ntrans = number of distinct transitions in the
c adf15 file
c input : (c*29) ctrans() = transition specification string
c 1st dim: emissivity index (1->ntrans)
c input : (r*8) wtrans() = transition wavelength
c
c input : (c*5) ctype() = transition type for each line block
c 1st dim: index of block in adf15 file
c input : (i*4) ispbr() = base driver index for each line block
c 1st dim: index of block in adf15 file
c input : (i*4) isppr() = parent driver index for each line block
c 1st dim: index of block in adf15 file
c input : (i*4) iszr() = ion charge relating to each line
c 1st dim: index of block in adf15 file
c input : (i*4) itg() = transition group attribution of
c emissivity line block
c 1st dim: index of block in adf15 file
c input : (i*4) ipr() = power ranking of emissivity line
c block (note power is a composite
c attribute of a transition group)
c 1st dim: index of block in adf15 file
c input : (c*7) code = ADAS code which generated the
c superstage adf15 file
c input : (c*30) producer = producer of the adf15 file
c input : (c*8) date = date of creattion of the superstage
c adf15 file
c
c routines:
c routine source brief description
c ----------------------------------------------------------
c i4unit adas fetch unit number for output of messages
c r8fctn adas convert string to real number
c xxslen adas find string less front and tail blanks
c xxcase adas convert a string to upper or lower case
c xxordr adas order a real vector retaining indexing
c
c
c author: H. P. Summers, University of Strathclyde
c ja7.08
c tel. 0141-548-4196
c
c date: 19/05/06
c
c
c version : 1.1
c date : 19-05-2006
c modified : H P Summers
c - first version.
c
c-----------------------------------------------------------------------
CHARACTER*5 CION(NDION)
CHARACTER*7 CODE
CHARACTER*19 CONFIG(NDLEV)
CHARACTER*6 COPT(NDOPT)
CHARACTER*14 CTERM(NDLEV)
CHARACTER*29 CTRANS(NDSTORE)
CHARACTER*5 CTYPE(NDSTORE)
CHARACTER*8 DATE
CHARACTER*80 DSN04, DSN18
CHARACTER*120 DSNPT
CHARACTER*2 ESYM
CHARACTER*40 FLDK(NDFLD,NDSYN)
CHARACTER*7 POPCODE
CHARACTER*30 PRODUCER
CHARACTER*60 TABUL, UNITS
INTEGER IPR(NDSTORE), IPTNL, IS
INTEGER ISPBR(NDSTORE), ISPPR(NDSTORE)
INTEGER ISYN(NDFLD), ISZR(NDSTORE)
INTEGER ITG(NDSTORE), IUNIT
INTEGER IWR(NDSTORE), IZ0, IZ1
INTEGER NBSEL, NDCMT, NDFLD, NDION
INTEGER NDLEV, NDOPT, NDSTORE, NDSYN
INTEGER NFLD, NION, NLEV, NOPT
INTEGER NSPB, NSPP, NTRANS
LOGICAL LFLD(NDFLD), LION(NDION), LOPT(NDOPT), LROOT
LOGICAL LSUPER
REAL*8 ENER(NDLEV), WTRANS(NDSTORE)