source: lmdz_wrf/WRFV3/external/io_grib2/bacio-1.3/baciof.F @ 1

Last change on this file since 1 was 1, checked in by lfita, 10 years ago
  • -- --- Opening of the WRF+LMDZ coupling repository --- -- -

WRF: version v3.3
LMDZ: version v1818

More details in:

File size: 16.0 KB
Line 
1C-----------------------------------------------------------------------
2      MODULE BACIO_MODULE
3C$$$  F90-MODULE DOCUMENTATION BLOCK
4C
5C F90-MODULE: BACIO_MODULE   BYTE-ADDRESSABLE I/O MODULE
6C   PRGMMR: IREDELL          ORG: NP23        DATE: 98-06-04
7C
8C ABSTRACT: MODULE TO SHARE FILE DESCRIPTORS
9C   IN THE BYTE-ADDESSABLE I/O PACKAGE.
10C
11C PROGRAM HISTORY LOG:
12C   98-06-04  IREDELL
13C
14C ATTRIBUTES:
15C   LANGUAGE: FORTRAN 90
16C
17C$$$
18      INTEGER,EXTERNAL:: BACIO
19      INTEGER,DIMENSION(999),SAVE:: FD=999*0
20      INTEGER,DIMENSION(20),SAVE:: BAOPTS=0
21      INCLUDE 'baciof.h'
22      END
23C-----------------------------------------------------------------------
24      SUBROUTINE BASETO(NOPT,VOPT)
25C$$$  SUBPROGRAM DOCUMENTATION BLOCK
26C
27C SUBPROGRAM: BASETO         BYTE-ADDRESSABLE SET OPTIONS
28C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
29C
30C ABSTRACT: SET OPTIONS FOR BYTE-ADDRESSABLE I/O.
31C   ALL OPTIONS DEFAULT TO 0.
32C   OPTION 1: BLOCKED READING OPTION
33C             IF THE OPTION VALUE IS 1, THEN THE READING IS BLOCKED
34C             INTO FOUR 4096-BYTE BUFFERS.  THIS MAY BE EFFICIENT IF
35C             THE READS WILL BE REQUESTED IN MUCH SMALLER CHUNKS.
36C             OTHERWISE, EACH CALL TO BAREAD INITIATES A PHYSICAL READ.
37C
38C PROGRAM HISTORY LOG:
39C   1998-06-04  IREDELL
40C
41C USAGE:    CALL BASETO(NOPT,VOPT)
42C   INPUT ARGUMENTS:
43C     NOPT         INTEGER OPTION NUMBER
44C     VOPT         INTEGER OPTION VALUE
45C
46C MODULES USED:
47C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
48C
49C ATTRIBUTES:
50C   LANGUAGE: FORTRAN 90
51C
52C$$$
53      USE BACIO_MODULE
54      INTEGER NOPT,VOPT
55C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
56      IF(NOPT.GE.1.AND.NOPT.LE.20) BAOPTS(NOPT)=VOPT
57C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
58      END
59C-----------------------------------------------------------------------
60      SUBROUTINE BAOPEN(LU,CFN,IRET)
61C$$$  SUBPROGRAM DOCUMENTATION BLOCK
62C
63C SUBPROGRAM: BAOPEN         BYTE-ADDRESSABLE OPEN
64C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
65C
66C ABSTRACT: OPEN A BYTE-ADDRESSABLE FILE.
67C
68C PROGRAM HISTORY LOG:
69C   1998-06-04  IREDELL
70C
71C USAGE:    CALL BAOPEN(LU,CFN,IRET)
72C   INPUT ARGUMENTS:
73C     LU           INTEGER UNIT TO OPEN
74C     CFN          CHARACTER FILENAME TO OPEN
75C                  (CONSISTING OF NONBLANK PRINTABLE CHARACTERS)
76C   OUTPUT ARGUMENTS:
77C     IRET         INTEGER RETURN CODE
78C
79C MODULES USED:
80C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
81C
82C SUBPROGRAMS CALLED:
83C   BACIO          BYTE-ADDRESSABLE I/O C PACKAGE
84C
85C ATTRIBUTES:
86C   LANGUAGE: FORTRAN 90
87C
88C$$$
89      USE BACIO_MODULE
90      CHARACTER CFN*(*)
91      CHARACTER(80) CMSG
92      INTEGER SIZE = 1
93
94C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
95      IF(LU.LT.001.OR.LU.GT.999) THEN
96        IRET=6
97        RETURN
98      ENDIF
99C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
100      IRET=BACIO(BACIO_OPENRW,IB,JB,SIZE,NB,KA,FD(LU),CFN,A)
101C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
102      END
103C-----------------------------------------------------------------------
104      SUBROUTINE BAOPENR(LU,CFN,IRET)
105C$$$  SUBPROGRAM DOCUMENTATION BLOCK
106C
107C SUBPROGRAM: BAOPENR        BYTE-ADDRESSABLE OPEN
108C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
109C
110C ABSTRACT: OPEN A BYTE-ADDRESSABLE FILE FOR READ ONLY.
111C
112C PROGRAM HISTORY LOG:
113C   1998-06-04  IREDELL
114C
115C USAGE:    CALL BAOPENR(LU,CFN,IRET)
116C   INPUT ARGUMENTS:
117C     LU           INTEGER UNIT TO OPEN
118C     CFN          CHARACTER FILENAME TO OPEN
119C                  (CONSISTING OF NONBLANK PRINTABLE CHARACTERS)
120C   OUTPUT ARGUMENTS:
121C     IRET         INTEGER RETURN CODE
122C
123C MODULES USED:
124C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
125C
126C SUBPROGRAMS CALLED:
127C   BACIO          BYTE-ADDRESSABLE I/O C PACKAGE
128C
129C ATTRIBUTES:
130C   LANGUAGE: FORTRAN 90
131C
132C$$$
133      USE BACIO_MODULE
134      CHARACTER CFN*(*)
135      INTEGER SIZE = 1
136C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
137      IF(LU.LT.001.OR.LU.GT.999) THEN
138        IRET=6
139        RETURN
140      ENDIF
141C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
142      IRET=BACIO(BACIO_OPENR,IB,JB,SIZE,NB,KA,FD(LU),CFN,A)
143C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
144      END
145C-----------------------------------------------------------------------
146      SUBROUTINE BAOPENW(LU,CFN,IRET)
147C$$$  SUBPROGRAM DOCUMENTATION BLOCK
148C
149C SUBPROGRAM: BAOPENW        BYTE-ADDRESSABLE OPEN
150C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
151C
152C ABSTRACT: OPEN A BYTE-ADDRESSABLE FILE FOR WRITE ONLY.
153C
154C PROGRAM HISTORY LOG:
155C   1998-06-04  IREDELL
156C
157C USAGE:    CALL BAOPENW(LU,CFN,IRET)
158C   INPUT ARGUMENTS:
159C     LU           INTEGER UNIT TO OPEN
160C     CFN          CHARACTER FILENAME TO OPEN
161C                  (CONSISTING OF NONBLANK PRINTABLE CHARACTERS)
162C   OUTPUT ARGUMENTS:
163C     IRET         INTEGER RETURN CODE
164C
165C MODULES USED:
166C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
167C
168C SUBPROGRAMS CALLED:
169C   BACIO          BYTE-ADDRESSABLE I/O C PACKAGE
170C
171C ATTRIBUTES:
172C   LANGUAGE: FORTRAN 90
173C
174C$$$
175      USE BACIO_MODULE
176      CHARACTER CFN*(*)
177      INTEGER SIZE = 1
178C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
179      IF(LU.LT.001.OR.LU.GT.999) THEN
180        IRET=6
181        RETURN
182      ENDIF
183C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
184      IRET=BACIO(BACIO_OPENWT,IB,JB,SIZE,NB,KA,FD(LU),CFN,A)
185C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
186      END
187C-----------------------------------------------------------------------
188      SUBROUTINE BAOPENWT(LU,CFN,IRET)
189C$$$  SUBPROGRAM DOCUMENTATION BLOCK
190C
191C SUBPROGRAM: BAOPENWT       BYTE-ADDRESSABLE OPEN
192C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
193C
194C ABSTRACT: OPEN A BYTE-ADDRESSABLE FILE FOR WRITE ONLY WITH TRUNCATION.
195C
196C PROGRAM HISTORY LOG:
197C   1998-06-04  IREDELL
198C
199C USAGE:    CALL BAOPENWT(LU,CFN,IRET)
200C   INPUT ARGUMENTS:
201C     LU           INTEGER UNIT TO OPEN
202C     CFN          CHARACTER FILENAME TO OPEN
203C                  (CONSISTING OF NONBLANK PRINTABLE CHARACTERS)
204C   OUTPUT ARGUMENTS:
205C     IRET         INTEGER RETURN CODE
206C
207C MODULES USED:
208C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
209C
210C SUBPROGRAMS CALLED:
211C   BACIO          BYTE-ADDRESSABLE I/O C PACKAGE
212C
213C ATTRIBUTES:
214C   LANGUAGE: FORTRAN 90
215C
216C$$$
217      USE BACIO_MODULE
218      CHARACTER CFN*(*)
219      INTEGER SIZE = 1
220C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
221      IF(LU.LT.001.OR.LU.GT.999) THEN
222        IRET=6
223        RETURN
224      ENDIF
225C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
226      IRET=BACIO(BACIO_OPENWT,IB,JB,SIZE,NB,KA,FD(LU),CFN,A)
227C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
228      END
229C-----------------------------------------------------------------------
230      SUBROUTINE BAOPENWA(LU,CFN,IRET)
231C$$$  SUBPROGRAM DOCUMENTATION BLOCK
232C
233C SUBPROGRAM: BAOPENWA       BYTE-ADDRESSABLE OPEN
234C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
235C
236C ABSTRACT: OPEN A BYTE-ADDRESSABLE FILE FOR WRITE ONLY WITH APPEND.
237C
238C PROGRAM HISTORY LOG:
239C   1998-06-04  IREDELL
240C
241C USAGE:    CALL BAOPENWA(LU,CFN,IRET)
242C   INPUT ARGUMENTS:
243C     LU           INTEGER UNIT TO OPEN
244C     CFN          CHARACTER FILENAME TO OPEN
245C                  (CONSISTING OF NONBLANK PRINTABLE CHARACTERS)
246C   OUTPUT ARGUMENTS:
247C     IRET         INTEGER RETURN CODE
248C
249C MODULES USED:
250C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
251C
252C SUBPROGRAMS CALLED:
253C   BACIO          BYTE-ADDRESSABLE I/O C PACKAGE
254C
255C ATTRIBUTES:
256C   LANGUAGE: FORTRAN 90
257C
258C$$$
259      USE BACIO_MODULE
260      CHARACTER CFN*(*)
261      INTEGER SIZE = 1
262C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
263      IF(LU.LT.001.OR.LU.GT.999) THEN
264        IRET=6
265        RETURN
266      ENDIF
267C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
268      IRET=BACIO(BACIO_OPENWA,IB,JB,SIZE,NB,KA,FD(LU),CFN,A)
269C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
270      END
271C-----------------------------------------------------------------------
272      SUBROUTINE BACLOSE(LU,IRET)
273C$$$  SUBPROGRAM DOCUMENTATION BLOCK
274C
275C SUBPROGRAM: BACLOSE        BYTE-ADDRESSABLE CLOSE
276C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
277C
278C ABSTRACT: CLOSE A BYTE-ADDRESSABLE FILE.
279C
280C PROGRAM HISTORY LOG:
281C   1998-06-04  IREDELL
282C
283C USAGE:    CALL BACLOSE(LU,IRET)
284C   INPUT ARGUMENTS:
285C     LU           INTEGER UNIT TO CLOSE
286C   OUTPUT ARGUMENTS:
287C     IRET         INTEGER RETURN CODE
288C
289C MODULES USED:
290C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
291C
292C SUBPROGRAMS CALLED:
293C   BACIO          BYTE-ADDRESSABLE I/O C PACKAGE
294C
295C REMARKS:  A BAOPEN MUST HAVE ALREADY BEEN CALLED.
296C
297C ATTRIBUTES:
298C   LANGUAGE: FORTRAN 90
299C
300C$$$
301      USE BACIO_MODULE
302      INTEGER SIZE = 1
303C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
304      IF(LU.LT.001.OR.LU.GT.999) THEN
305        IRET=6
306        RETURN
307      ENDIF
308C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
309      IRET=BACIO(BACIO_CLOSE,IB,JB,SIZE,NB,KA,FD(LU),CFN,A)
310      IF(IRET.EQ.0) FD(LU)=0
311C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
312      END
313C-----------------------------------------------------------------------
314      SUBROUTINE BAREAD(LU,IB,NB,KA,A)
315C$$$  SUBPROGRAM DOCUMENTATION BLOCK
316C
317C SUBPROGRAM: BAREAD         BYTE-ADDRESSABLE READ
318C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
319C
320C ABSTRACT: READ A GIVEN NUMBER OF BYTES FROM AN UNBLOCKED FILE,
321C   SKIPPING A GIVEN NUMBER OF BYTES.
322C   THE PHYSICAL I/O IS BLOCKED INTO FOUR 4096-BYTE BUFFERS
323C   IF THE BYTE-ADDRESSABLE OPTION 1 HAS BEEN SET TO 1 BY BASETO.
324C   THIS BUFFERED READING IS INCOMPATIBLE WITH NO-SEEK READING.
325C
326C PROGRAM HISTORY LOG:
327C   1998-06-04  IREDELL
328C
329C USAGE:    CALL BAREAD(LU,IB,NB,KA,A)
330C   INPUT ARGUMENTS:
331C     LU           INTEGER UNIT TO READ
332C     IB           INTEGER NUMBER OF BYTES TO SKIP
333C                  (IF IB<0, THEN THE FILE IS ACCESSED WITH NO SEEKING)
334C     NB           INTEGER NUMBER OF BYTES TO READ
335C   OUTPUT ARGUMENTS:
336C     KA           INTEGER NUMBER OF BYTES ACTUALLY READ
337C     A            CHARACTER*1 (NB) DATA READ
338C
339C MODULES USED:
340C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
341C
342C SUBPROGRAMS CALLED:
343C   BACIO          BYTE-ADDRESSABLE I/O C PACKAGE
344C
345C REMARKS:  A BAOPEN MUST HAVE ALREADY BEEN CALLED.
346C
347C ATTRIBUTES:
348C   LANGUAGE: FORTRAN 90
349C
350C$$$
351      USE BACIO_MODULE
352      CHARACTER A(NB)
353      CHARACTER CFN
354      PARAMETER(NY=4096,MY=4)
355      INTEGER NS(MY),NN(MY)
356      CHARACTER Y(NY,MY)
357      DATA LUX/0/
358      SAVE JY,NS,NN,Y,LUX
359      INTEGER SIZE=1
360      INTEGER ZERO=0
361C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
362      IF(FD(LU).LE.0) THEN
363        KA=0
364        RETURN
365      ENDIF
366      IF(IB.LT.0.AND.BAOPTS(1).EQ.1) THEN
367        KA=0
368        RETURN
369      ENDIF
370      IF(NB.LE.0) THEN
371        KA=0
372        RETURN
373      ENDIF
374C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
375C  UNBUFFERED I/O
376      IF(BAOPTS(1).NE.1) THEN
377        IF(IB.GE.0) THEN
378           
379          IRET=BACIO(BACIO_READ,IB,JB,SIZE,NB,KA,FD(LU),CFN,A)
380        ELSE
381          IRET=BACIO(BACIO_READ+BACIO_NOSEEK,ZERO,JB,SIZE,NB,KA,
382     &          FD(LU),CFN,A)
383        ENDIF
384C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
385C  BUFFERED I/O
386C  GET DATA FROM PREVIOUS CALL IF POSSIBLE
387      ELSE
388        KA=0
389        IF(LUX.NE.LU) THEN
390          JY=0
391          NS=0
392          NN=0
393        ELSE
394          DO I=1,MY
395            IY=MOD(JY+I-1,MY)+1
396            KY=IB+KA-NS(IY)
397            IF(KA.LT.NB.AND.KY.GE.0.AND.KY.LT.NN(IY)) THEN
398              K=MIN(NB-KA,NN(IY)-KY)
399              A(KA+1:KA+K)=Y(KY+1:KY+K,IY)
400              KA=KA+K
401            ENDIF
402          ENDDO
403        ENDIF
404C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
405C  SET POSITION AND READ BUFFER AND GET DATA
406        IF(KA.LT.NB) THEN
407          LUX=ABS(LU)
408          JY=MOD(JY,MY)+1
409          NS(JY)=IB+KA
410          IRET=BACIO(BACIO_READ,NS(JY),JB,SIZE,NY,NN(JY),
411     &               FD(LUX),CFN,Y(1,JY))
412          IF(NN(JY).GT.0) THEN
413            K=MIN(NB-KA,NN(JY))
414            A(KA+1:KA+K)=Y(1:K,JY)
415            KA=KA+K
416          ENDIF
417C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
418C  CONTINUE TO READ BUFFER AND GET DATA
419          DOWHILE(NN(JY).EQ.NY.AND.KA.LT.NB)
420            JY=MOD(JY,MY)+1
421            NS(JY)=NS(JY)+NN(JY)
422            IRET=BACIO(BACIO_READ+BACIO_NOSEEK,NS(JY),JB,SIZE,NY,NN(JY),
423     &                 FD(LUX),CFN,Y(1,JY))
424            IF(NN(JY).GT.0) THEN
425              K=MIN(NB-KA,NN(JY))
426              A(KA+1:KA+K)=Y(1:K,JY)
427              KA=KA+K
428            ENDIF
429          ENDDO
430        ENDIF
431      ENDIF
432C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
433      END
434C-----------------------------------------------------------------------
435      SUBROUTINE BAWRITE(LU,IB,NB,KA,A)
436C$$$  SUBPROGRAM DOCUMENTATION BLOCK
437C
438C SUBPROGRAM: BAWRITE        BYTE-ADDRESSABLE WRITE
439C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
440C
441C ABSTRACT: WRITE A GIVEN NUMBER OF BYTES TO AN UNBLOCKED FILE,
442C   SKIPPING A GIVEN NUMBER OF BYTES.
443C
444C PROGRAM HISTORY LOG:
445C   1998-06-04  IREDELL
446C
447C USAGE:    CALL BAWRITE(LU,IB,NB,KA,A)
448C   INPUT ARGUMENTS:
449C     LU           INTEGER UNIT TO WRITE
450C     IB           INTEGER NUMBER OF BYTES TO SKIP
451C                  (IF IB<0, THEN THE FILE IS ACCESSED WITH NO SEEKING)
452C     NB           INTEGER NUMBER OF BYTES TO WRITE
453C     A            CHARACTER*1 (NB) DATA TO WRITE
454C   OUTPUT ARGUMENTS:
455C     KA           INTEGER NUMBER OF BYTES ACTUALLY WRITTEN
456C
457C MODULES USED:
458C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
459C
460C SUBPROGRAMS CALLED:
461C   BACIO          BYTE-ADDRESSABLE I/O C PACKAGE
462C
463C REMARKS:  A BAOPEN MUST HAVE ALREADY BEEN CALLED.
464C
465C ATTRIBUTES:
466C   LANGUAGE: FORTRAN 90
467C
468C$$$
469      USE BACIO_MODULE
470      CHARACTER A(NB)
471      CHARACTER CFN
472      INTEGER SIZE=1
473      INTEGER ZERO=0
474C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
475      IF(FD(LU).LE.0) THEN
476        KA=0
477        RETURN
478      ENDIF
479      IF(NB.LE.0) THEN
480        KA=0
481        RETURN
482      ENDIF
483C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
484      IF(IB.GE.0) THEN
485        IRET=BACIO(BACIO_WRITE,IB,JB,SIZE,NB,KA,FD(LU),CFN,A)
486      ELSE
487        IRET=BACIO(BACIO_WRITE+BACIO_NOSEEK,ZERO,JB,SIZE,NB,KA,
488     &        FD(LU),CFN,A)
489      ENDIF
490C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
491      END
492C-----------------------------------------------------------------------
493      SUBROUTINE WRYTE(LU,NB,A)
494C$$$  SUBPROGRAM DOCUMENTATION BLOCK
495C
496C SUBPROGRAM: WRYTE          WRITE DATA OUT BY BYTES
497C   PRGMMR: IREDELL          ORG: W/NMC23     DATE: 1998-06-04
498C
499C ABSTRACT: WRITE A GIVEN NUMBER OF BYTES TO AN UNBLOCKED FILE.
500C
501C PROGRAM HISTORY LOG:
502C   92-10-31  IREDELL
503C   95-10-31  IREDELL     WORKSTATION VERSION
504C   1998-06-04  IREDELL   BACIO VERSION
505C
506C USAGE:    CALL WRYTE(LU,NB,A)
507C   INPUT ARGUMENTS:
508C     LU           INTEGER UNIT TO WHICH TO WRITE
509C     NB           INTEGER NUMBER OF BYTES TO WRITE
510C     A            CHARACTER*1 (NB) DATA TO WRITE
511C
512C MODULES USED:
513C   BACIO_MODULE   BYTE-ADDRESSABLE I/O FORTRAN INTERFACE
514C
515C SUBPROGRAMS CALLED:
516C   BACIO          BYTE-ADDRESSABLE I/O C PACKAGE
517C
518C REMARKS:  A BAOPEN MUST HAVE ALREADY BEEN CALLED.
519C
520C ATTRIBUTES:
521C   LANGUAGE: FORTRAN 90
522C
523C$$$
524      USE BACIO_MODULE
525      CHARACTER A(NB)
526      CHARACTER CFN
527      INTEGER SIZE=1
528      INTEGER ZERO=0
529C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
530      IF(FD(LU).LE.0) THEN
531        RETURN
532      ENDIF
533      IF(NB.LE.0) THEN
534        RETURN
535      ENDIF
536C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
537      IRET=BACIO(BACIO_WRITE+BACIO_NOSEEK,ZERO,JB,SIZE,NB,KA,FD(LU),
538     &        CFN,A)
539C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
540      RETURN
541      END
Note: See TracBrowser for help on using the repository browser.