Search Site | Contact Details | FAQ

ADAS Subroutine xxrptn

      subroutine  xxrptn( iunit  , ndstack, 
     &                    ndptnl , ndptn  , ndptnc ,
     &                    nptnl  , nptn   , nptnc  ,
     &                    iptnla , iptna  , iptnca ,
     &                    lresol , lptn   ,
     &                    cstrg  , 
     &                    ncptn_stack     , cptn_stack       
     &                  )
c-----------------------------------------------------------------------
c
c  ****************** fortran77 subroutine: xxprtn *********************
c
c  Purpose:  To read and analyse a partition block in a datafile header
c
c  Calling program: adas416
c
c  Notes:  (1) Partition levels, partitions and partition components are 
c              labelled starting at 0 (but see (2)).
c          (2) Partition level 0 labels the resolved root partition level
c              partition level 1 labels the unresolved root partition
c              level.
c          (3) For an unresolved (standard) file, the partitions are each 
c              ionisation stage from the neutral to the bare nucleus and
c              they are labelled by the ion charge.  Each partition has 
c              just the one component.
c          (4) Distinguish the indexing (starting at 1) from the label
c              (starting at 0) .
c
c  Subroutine:
c
c  input : (i*4)  iunit     = unit to which input file is allocated
c  input : (i*4)  ndstack   = maximum no. of text lines in partition block 
c
c  input : (i*4)  ndptnl    = maximum level of partitions
c  input : (i*4)  ndptn     = maximum no. of partitions in one level
c  input : (i*4)  ndptnc    = maximum no. of components in a partition
c  input : (l*4)  lresol    = .true.  => resolved root partition
c                           = .false. => standard root partition
c
c  output: (i*4)  nptnl     = number of partition levels in block 
c  output: (i*4)  nptn()    = number of partitions in partition level
c                             1st dim: partition level 
c  output: (i*4)  nptnc(,)  = number of components in partition
c                             1st dim: partition level 
c                             2nd dim: member partition in partition level 
c  output: (i*4)  iptnla()  = partition level label (0=resolved root,1=
c                                                      unresolved root)
c                             1st dim: partition level index 
c  output: (i*4)  iptna(,)  = partition member label (labelling starts at 0)
c                             1st dim: partition level index 
c                             2nd dim: member partition index in partition 
c                             level 
c  output: (i*4)  iptnca(,,)= component label (labelling starts at 0)
c                             1st dim: partition level index 
c                             2nd dim: member partition index in partition 
c                             level
c                             3rd dim: component index of member partition 
c  output: (l*4)  lptn      = .true.  => partition block present
c                           = .false. => partition block not present
c  output: (c*80) cstrg     = string marking end of partition block
c  output: (i*4)  ncptn_stack= number of text lines in partition block
c  output: (c*80) cptn_stack()=text lines of partition block       
c                              1st dim: text line pointer 
c
c
c Routines:
c  	   Routine    Source	Brief description
c  	   -------------------------------------------------------------
c  	   I4UNIT     ADAS	Fetch unit number for output of messages
c  	   XXSLEN     ADAS	Find non-blank characters in string
c  	   XXWORD     ADAS	Extract position of number in buffer
c
c Author:  H. P. Summers, university of strathclyde
c          JA7.08
c          tel. 0141-548-4196
c
c Date:    25/08/05
c
c Version: 1.1  			Date: 25/08/2005
c Modified: Hugh Summers
c  		- First edition.
c
c Version: 1.2  			Date: 28/02/2008
c Modified: Adam Foster
c  		- Increased length of strg to 1024
c
c Version: 1.3  			Date: 28/02/2008
c Modified: Allan Whiteford
c		- Added comments for Adam's change
c               - Fixed capitalisation of comments section.
c
c-----------------------------------------------------------------------
c-----------------------------------------------------------------------
      CHARACTER*80        CPTN_STACK(NDSTACK),      CSTRG
      INTEGER             IPTNA(NDPTNL,NDPTN)
      INTEGER             IPTNCA(NDPTNL,NDPTN,NDPTNC)
      INTEGER             IPTNLA(NDPTNL),           IUNIT
      INTEGER             NCPTN_STACK, NDPTN,       NDPTNC,      NDPTNL
      INTEGER             NDSTACK,     NPTN(NDPTNL)
      INTEGER             NPTNC(NDPTNL,NDPTN),      NPTNL
      LOGICAL             LPTN,        LRESOL
© Copyright 1995-2018 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk