File indexing completed on 2018-03-02 18:41:55 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
ddb868624b Jean*0001 #include "MDSIO_OPTIONS.h"
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE MDS_WR_REC_RS(
0009 I arr,
0010 O r4Buf, r8Buf,
0011 I fPrec, dUnit, iRec, nArr, myThid )
0012
0013
0014
0015
0016
0017 IMPLICIT NONE
0018 #include "EEPARAMS.h"
0019 #include "SIZE.h"
0020 #include "PARAMS.h"
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 INTEGER fPrec
0033 INTEGER dUnit
0034 INTEGER iRec
0035 INTEGER nArr
0036 INTEGER myThid
0037 _RS arr(nArr)
0038 Real*4 r4Buf(nArr)
0039 Real*8 r8Buf(nArr)
0040
0041
0042
0043 CHARACTER*(MAX_LEN_MBUF) msgBuf
0044 INTEGER k
0045
0046
ef8a09518b Jean*0047 IF ( debugLevel.GE.debLevD ) THEN
ddb868624b Jean*0048 WRITE(msgBuf,'(A,I9,2x,I9)')
0049 & ' MDS_WR_REC_RS: iRec,Dim = ', iRec, nArr
0050 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0051 & SQUEEZE_RIGHT , myThid )
0052 ENDIF
0053
0054 IF ( fPrec.EQ.precFloat32 ) THEN
0055 DO k=1,nArr
0056 r4Buf(k) = arr(k)
0057 ENDDO
0058 #ifdef _BYTESWAPIO
0059 CALL MDS_BYTESWAPR4( nArr, r4Buf )
0060 #endif
0061 WRITE( dUnit, rec=iRec ) r4Buf
0062 ELSEIF ( fPrec.EQ.precFloat64 ) THEN
0063 DO k=1,nArr
0064 r8Buf(k) = arr(k)
0065 ENDDO
0066 #ifdef _BYTESWAPIO
0067 CALL MDS_BYTESWAPR8( nArr, r8Buf )
0068 #endif
0069 WRITE( dUnit, rec=iRec ) r8Buf
0070 ELSE
0071 WRITE(msgBuf,'(A,I9)')
0072 & ' MDS_WR_REC_RS: illegal value for fPrec=',fPrec
0073 CALL PRINT_ERROR( msgBuf, myThid )
0074 STOP 'ABNORMAL END: S/R MDS_WR_REC_RS'
0075 ENDIF
0076
0077 RETURN
0078 END