File: ectloc.f

package info (click to toggle)
nastran 0.1.95-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye, sid
  • size: 122,540 kB
  • sloc: fortran: 284,409; sh: 771; makefile: 324
file content (48 lines) | stat: -rw-r--r-- 1,481 bytes parent folder | download | duplicates (2)
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
      SUBROUTINE ECTLOC(*,ECT,BUF,IELEM)
C*****
C ECTLOC IS A SPECIAL PURPOSE VERSION OF SUBROUTINE LOCATE.  ITS
C PURPOSE IS TO PASS THE ECT FILE SEQUENTIALLY POSITIONING EACH LOGICAL
C RECORD AFTER THE 3-WORD HEADER AND PROVIDING A POINTER TO THE
C APPROPRIATE ENTRY IN THE ELEM TABLE IN /GPTA1/. PLOTEL
C ELEMENTS ARE IGNORED.
C     NOTE---THE ECT FILE MUST BE OPEN ON EACH CALL.
C
C  ARGUMENTS
C
C     ECT   ---INPUT ---EINO FILE NAME OF THE ECT
C     BUF   ---IN/OUT---ADDRESS OF A 3-WORD ARRAY INTO WHICH
C                       THE FIRST 3 WORDS OF THE RECORD ARE READ
C     IELEM ---OUTPUT---POINTER TO 1ST WORD OF ENTRY IN ELEM
C                       TABLE IN /GPTA1/
C
C NON-STANDARD RETURN---GIVEN WHEN EOF HIT. ECT IS CLOSED BEFORE RETURN.
C*****
      INTEGER ECT , BUF(3), ELEM, PLOTEL
C
      COMMON/ GPTA1 / NELEM, LAST, INCR, ELEM(1)
C
      DATA PLOTEL/ 4HPLOT /
C
C READ A 3-WORD RECORD HEADER. IF NOT 3 WORDS, TRY NEXT RECORD
C
   10 CONTINUE
      CALL READ(*90,*10,ECT,BUF,3,0,NREAD)
C
C SEARCH FOR MATCH OF FIRST WORD OF RECORD WITH ECT-ID WORD IN /GPTA1/
C IF FOUND AND NOT PLOTEL, RETURN POINTER.
C
      DO 20 I=1,LAST,INCR
      IF( BUF(1) .EQ. ELEM(I+3) ) GO TO 30
   20 CONTINUE
   25 CALL FWDREC(*90,ECT)
      GO TO 10
   30 IF( ELEM(I).EQ.PLOTEL ) GO TO 25
      IELEM = I
      RETURN
C
C EOF ENCOUNTERED--CLOSE FILE AND RETURN.
C
   90 CALL CLOSE( ECT, 1 )
      IELEM = 0
      RETURN 1
      END