/[MITgcm]/MITgcm/pkg/mdsio/mdsio_rd_rec_rl.F
ViewVC logotype

Contents of /MITgcm/pkg/mdsio/mdsio_rd_rec_rl.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download)
Tue Jun 7 22:28:02 2011 UTC (12 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63a, checkpoint63b, checkpoint63, checkpoint62z
Changes since 1.2: +2 -2 lines
test debugMode (instead of debugLevel) to print simple debug msg.

1 C $Header: /u/gcmpack/MITgcm/pkg/mdsio/mdsio_rd_rec_rl.F,v 1.2 2008/12/30 17:49:16 jmc Exp $
2 C $Name: $
3
4 #include "MDSIO_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP 0
8 C !ROUTINE: MDS_RD_REC_RL
9
10 C !INTERFACE:
11 SUBROUTINE MDS_RD_REC_RL(
12 O arr,
13 O r4Buf, r8Buf,
14 I fPrec, dUnit, iRec, nArr, myThid )
15
16 C !DESCRIPTION:
17 C Read one reccord from already opened io-unit "dUnit", into RL array "arr"
18
19 C !USES:
20 IMPLICIT NONE
21 #include "EEPARAMS.h"
22 #include "SIZE.h"
23 #include "PARAMS.h"
24
25 C !INPUT PARAMETERS:
26 C fPrec integer :: file precision
27 C dUnit integer :: 'Opened' I/O channel
28 C iRec integer :: record number to WRITE
29 C nArr integer :: dimension off array "arr"
30 C myThid integer :: my Thread Id number
31 C !OUTPUT PARAMETERS:
32 C arr RL :: vector array to read in
33 C r4Buf real*4 :: buffer array
34 C r8Buf real*8 :: buffer array
35 INTEGER fPrec
36 INTEGER dUnit
37 INTEGER iRec
38 INTEGER nArr
39 INTEGER myThid
40 _RL arr(nArr)
41 Real*4 r4Buf(nArr)
42 Real*8 r8Buf(nArr)
43 CEOP
44
45 C !LOCAL VARIABLES:
46 CHARACTER*(MAX_LEN_MBUF) msgBuf
47 INTEGER k
48
49 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
50 IF ( debugMode ) THEN
51 WRITE(msgBuf,'(A,I9.8,2x,I9.8)')
52 & ' MDS_RD_REC_RL: iRec,Dim = ', iRec, nArr
53 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
54 & SQUEEZE_RIGHT , myThid )
55 ENDIF
56
57 IF ( fPrec.EQ.precFloat32 ) THEN
58 READ( dUnit, rec=iRec ) r4Buf
59 #ifdef _BYTESWAPIO
60 CALL MDS_BYTESWAPR4( nArr, r4Buf )
61 #endif
62 DO k=1,nArr
63 arr(k) = r4Buf(k)
64 ENDDO
65 ELSEIF ( fPrec.EQ.precFloat64 ) THEN
66 #ifdef REPRODUCE_BOTTOM_CTRL_OLDRESULTS
67 READ( dUnit, rec=iRec ) arr
68 #else /* REPRODUCE_BOTTOM_CTRL_OLDRESULTS */
69 READ( dUnit, rec=iRec ) r8Buf
70 #ifdef _BYTESWAPIO
71 CALL MDS_BYTESWAPR8( nArr, r8Buf )
72 #endif
73 DO k=1,nArr
74 arr(k) = r8Buf(k)
75 ENDDO
76 #endif /* REPRODUCE_BOTTOM_CTRL_OLDRESULTS */
77 ELSE
78 WRITE(msgBuf,'(A,I9)')
79 & ' MDS_RD_REC_RL: illegal value for fPrec=',fPrec
80 CALL PRINT_ERROR( msgBuf, myThid )
81 STOP 'ABNORMAL END: S/R MDS_RD_REC_RL'
82 ENDIF
83
84 RETURN
85 END

  ViewVC Help
Powered by ViewVC 1.1.22