File indexing completed on 2018-03-02 18:36:11 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
d7dd491794 Jean*0001 #include "CPP_EEOPTIONS.h"
0002
0003 subroutine MDS_BYTESWAPR4( n, arr )
0004
4d40368441 Jean*0005
d7dd491794 Jean*0006
4d40368441 Jean*0007
d7dd491794 Jean*0008
0009
0010
0011 implicit none
9c4e526255 Dimi*0012
0013 #ifdef FAST_BYTESWAP
0014
0015
0016 integer n
0017 integer(kind=4) arr(n), i32
0018
0019
0020 integer i
0021
0022 i32(i) = ishft(i.and. z'ff000000', -24) .or.
0023 & ishft(i.and. z'00ff0000', -8) .or.
0024 & ishft(i.and. z'0000ff00', 8) .or.
0025 & ishft(i.and. z'000000ff', 24)
0026 do i = 1,n
0027 arr(i) = i32(arr(i))
0028 enddo
0029
0030 #else /* FAST_BYTESWAP */
0031
d7dd491794 Jean*0032
0033 integer n
0034 character*(*) arr
9c4e526255 Dimi*0035
d7dd491794 Jean*0036
0037 integer i
0038 character*(1) cc
9c4e526255 Dimi*0039
d7dd491794 Jean*0040 do i=1,4*n,4
0041 cc=arr(i:i)
0042 arr(i:i)=arr(i+3:i+3)
0043 arr(i+3:i+3)=cc
0044 cc=arr(i+1:i+1)
0045 arr(i+1:i+1)=arr(i+2:i+2)
0046 arr(i+2:i+2)=cc
0047 enddo
9c4e526255 Dimi*0048
0049 #endif /* FAST_BYTESWAP */
0050
d7dd491794 Jean*0051 return
0052 end