Search Site | Contact Details | FAQ

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)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk