1!$Id:$
2      subroutine pcharr(y,ivd,n0,nt)
3
4!      * * F E A P * * A Finite Element Analysis Program
5
6!....  Copyright (c) 1984-2017: Regents of the University of California
7!                               All rights reserved
8
9!-----[--.----+----.----+----.-----------------------------------------]
10!      Purpose: Identify 'character' variables in the string
11!               N.B. Lower case variables have been input,
12!                    upper case computed
13
14!      Inputs:
15!         y(*)     - String to search
16!         n0       - Field width
17!         nt       - Number of characters in y-array
18
19!      Outputs:
20!         ivd(2,*) - Number of characters found
21!-----[--.----+----.----+----.-----------------------------------------]
22
23      implicit  none
24
25      integer   n0,nt,n1,k,i,j,n,ivd(2,*)
26      character y*(*)
27
28      save
29
30      n1 = n0 - 1
31      k  = 0
32      do i = 1,nt,n0
33        k = k + 1
34        ivd(1,k) = 0
35        ivd(2,k) = 0
36        n = ichar( y(i:i) ) - 64
37        if(n.gt.0) then
38          if(n.gt.58) go to 200
39          if(n.gt.26) then
40            ivd(1,k) = n - 32
41            j = ichar(y(i+1:i+1))
42            if(j.eq.32) then
43              ivd(2,k) = 0
44            elseif(j.ge.ichar('a') .and. j.le.ichar('z')) then
45              ivd(2,k) = j - ichar('a') + 1
46            elseif(j.ge.ichar('0') .and. j.le.ichar('9')) then
47              ivd(2,k) = j - ichar('0') + 27
48            endif
49          else
50            ivd(1,k) = - n
51          endif
52          y(i   :i+n1) = ' '
53          y(i+n1:i+n1) = '0'
54        endif
55      end do
56      return
57
58!     Error
59
60 200  call errclr('PCHARR')
61
62      end
63