File: close.f

package info (click to toggle)
nastran 0.1.95-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye
  • size: 122,540 kB
  • sloc: fortran: 284,409; sh: 771; makefile: 324
file content (64 lines) | stat: -rw-r--r-- 2,104 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
        SUBROUTINE CLOSE ( FILE, IOP )
C***************************************************************
C                          NOTICE
C
C     THIS PROGRAM BELONGS TO RPK CORPORATION.  IT IS CONSIDERED
C A TRADE SECRET AND IS NOT TO BE DIVULGED OR USED BY PARTIES
C WHO HAVE NOT RECEIVED WRITTEN AUTHORIZATION FROM RPK.
C***************************************************************
      INCLUDE 'DSIOF.COM'
      INCLUDE 'XNSTRN.COM'
      INTEGER*2         IUNIT
      COMMON / DSUNIT / IUNIT( 220 )
      COMMON / SYSTEM / ISYSBF, DUM1( 77 ), IDIAG, DUM2( 21 )
      INTEGER           FILE
      NAME   = FILE
      IOCODE = IOP
      IRETRN = 77
      CALL DSGEFL
      IF ( IFILEX .EQ. 0 ) GO TO 50
      IRETRN = 0
      IF ( IAND( IDIAG,2**14 ).NE. 0 ) CALL DSMSG( 2 )
      IF ( IOCODE .NE. 1 ) GO TO 20
      IF ( IPRVOP .EQ. 0 ) GO TO 10
      CALL DSEFWR
      IF ( ( INDCLR-INDBAS ) .EQ. 5 ) GO TO 5
      IBASE( INDBAS+4 ) = INDCLR - INDBAS + 1
      CALL DBMMGR( 4 )
5     CALL DSXFSZ
10    CONTINUE
      CALL DBMMGR( 2 )
      NBLOCK  = 1
      INDCLR  = INDBAS + 5
      INDCBP  = INDCLR
      GO TO 40
20    IF ( IPRVOP .EQ. 0 ) GO TO 30
      CALL DSEFWR
      IBASE( INDBAS+4 ) = INDCLR - INDBAS + 1
C SAVE INDBAS TO ALLOW DSBRC1 TO CORRECTLY BACKSPACE FILE OPENNED FOR WRITE
      ISAVE = INDBAS
      CALL DBMMGR( 4 )
      CALL DSXFSZ
      INDBAS = ISAVE
      IF ( IOCODE .NE. -2 ) CALL DSBRC1
C      CALL DSGNCL
      CALL DBMMGR( 2 )
      GO TO 40
30    IF ( INDCBP .EQ. INDCLR ) GO TO 35
      CALL DSSKRC
35    CONTINUE
      CALL DBMMGR( 2 )
40    CALL DSSDCB
      FCB( 2,IFILEX ) = 0
      FCB(12,IFILEX ) = 0
      IF ( NAME .LT. 101 .OR. NAME .GT. 320 ) GO TO 50
      IUNIT( NAME-100 ) = 0
50    RETURN
C***************************************************************
C                          NOTICE
C
C     THIS PROGRAM BELONGS TO RPK CORPORATION.  IT IS CONSIDERED
C A TRADE SECRET AND IS NOT TO BE DIVULGED OR USED BY PARTIES
C WHO HAVE NOT RECEIVED WRITTEN AUTHORIZATION FROM RPK.
C***************************************************************
      END