blob: 4fe7220c14a2b63d0f4c4d05e1f16a50b8a3bd8a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
*DECK PSCPUT
SUBROUTINE PSCPUT(ISPSP,CMDSTR)
C
C--------------------------- PSCPUT ---------------------------------
C
C 1- PROGRAMME STATISTICS:
C NAME : PSCPUT
C USE : TRANSFER COMMAND LINE TO FILE
C REPLACES PSPLOT ROUTINE FILLER
C
C 2- ROUTINE PARAMETERS:
C INPUT/OUTPUT
C ISPSP : PSP FILE UNIT I
C CMDSTR : COMMAND LINE C*132
C LOCAL
C IBSL : ASCII REPRESENTATION OF BACKSLASH I
C
C--------------------------- PSCPUT --------------------------------
C
IMPLICIT NONE
INTEGER ISPSP
CHARACTER CMDSTR*132
C----
C LOCAL VARIABLES
C----
CHARACTER NAMSBR*6
INTEGER IBSL
PARAMETER (IBSL=92,NAMSBR='PSCPUT')
INTEGER LCMD,IBSLH,ISPACE,IPAREN,IC
CHARACTER CBSL*1
CBSL=CHAR(IBSL)
LCMD=0
IBSLH=0
ISPACE=0
IPAREN=0
C----
C COMPRESS COMMAND LINE TO REMOVE USELESS BLANKS
C----
DO 100 IC=1,132
IF(CMDSTR(IC:IC) .EQ. ' ' ) THEN
C----
C REMOVE BLANK IF NOT INSERTED BETWEEN () OR
C 2 OR MORE IN SUCCESSION
C----
IF(IPAREN .EQ. 0) THEN
ISPACE=ISPACE+1
ENDIF
IF(ISPACE .LE. 1 ) THEN
LCMD=LCMD+1
CMDSTR(LCMD:LCMD)=CMDSTR(IC:IC)
ENDIF
ELSE
ISPACE=0
LCMD=LCMD+1
CMDSTR(LCMD:LCMD)=CMDSTR(IC:IC)
C----
C TEST FOR SET OF PARENTHESIS
C "Backslash"( AND "Backslash") ARE CONSIDERED AS COMMENTED PARENTHESIS
C AND NOT TREATED
C----
IF(IBSLH .EQ. 0) THEN
IF(CMDSTR(IC:IC) .EQ. '(') THEN
IPAREN=IPAREN+1
ELSE IF(CMDSTR(IC:IC) .EQ. ')') THEN
IPAREN=IPAREN-1
ENDIF
ENDIF
IBSLH=0
IF(CMDSTR(IC:IC) .EQ. CBSL) THEN
IBSLH=1
ENDIF
ENDIF
100 CONTINUE
C----
C TEST IF LAST CHARACTER IS A BLANK
C----
IF(CMDSTR(LCMD:LCMD).EQ. ' ') THEN
LCMD=LCMD-1
ENDIF
C----
C CLEAR REST OF COMMAND STRING AFTER COMPRESSION
C OF BLANK CHARACTERS
C----
IF(LCMD .LT. 132) THEN
CMDSTR(LCMD+1:132)=' '
ENDIF
C----
C TRANSFER COMPRESSED COMMAND LINE TO FILE
C----
IF(LCMD .GT. 0) THEN
WRITE(ISPSP,'(132A1)')(CMDSTR(IC:IC),IC=1,LCMD)
ENDIF
RETURN
END
|