Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

74 lines
2.3 KiB

C Copyright(C) 1999-2020 National Technology & Engineering Solutions
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
C NTESS, the U.S. Government retains certain rights in this software.
C
C See packages/seacas/LICENSE for details
C=======================================================================
SUBROUTINE GRCALN (STRING, LSTR)
C=======================================================================
C --*** GRCALN *** (GRPLIB) Align software characters
C -- Written by Amy Gilkey - revised 06/09/87
C --
C --GRCALN pads the text string with blanks to make numbers line up
C --in software characters. It is known that all numbers, minus and
C --period have the same character size. A space is half that size
C --and is expanded to two spaces.
C --
C --Parameters:
C -- STRING - IN/OUT - the string to be aligned; maximum of 80 characters
C -- with a maximum of 40 blanks before a number
C -- LSTR - OUT - the output length of the string
C --
C --Common Variables:
C -- Uses ICURDV, SOFTCH of /GRPCOM/
C --Routines Called:
C -- LENSTR - (STRLIB) Find string length
COMMON /GRPCOC/ DEVNAM(2), DEVCOD(2)
CHARACTER*3 DEVNAM
CHARACTER*8 DEVCOD
COMMON /GRPCOM/ ICURDV, ISHARD, DEVOK(2), TALKOK(2),
& NSNAP(2), IFONT(2), SOFTCH(2), AUTOPL(2),
& MAXCOL(2), NUMCOL(0:1,2), MAPALT(2), MAPUSE(2)
LOGICAL ISHARD, DEVOK, TALKOK, SOFTCH, AUTOPL
CHARACTER*(*) STRING
CHARACTER*80 TMPSTR
CHARACTER*40 BLANKS
CHARACTER CH
LSTR = LENSTR(STRING)
IF (.NOT. SOFTCH(ICURDV)) RETURN
INOBLK = 0
IBLK = INDEX (STRING, ' ')
100 CONTINUE
IF ((IBLK .GT. INOBLK) .AND. (IBLK .LE. LSTR)) THEN
INOBLK = IBLK
110 CONTINUE
INOBLK = INOBLK + 1
IF (STRING(INOBLK:INOBLK) .EQ. ' ') GOTO 110
NBLK = INOBLK - IBLK
CH = STRING(INOBLK:INOBLK)
IF ((CH .EQ. '-') .OR. (CH .EQ. '.')
& .OR. ((CH .GE. '0') .AND. (CH .LE. '9'))) THEN
BLANKS = ' '
TMPSTR = STRING(INOBLK:LSTR)
LSTR = LSTR + NBLK
STRING(INOBLK:LSTR) = BLANKS(1:NBLK) // TMPSTR
INOBLK = INOBLK + NBLK
END IF
IBLK = INDEX (STRING(INOBLK+1:), ' ') + INOBLK
GOTO 100
END IF
RETURN
END