2 ! Test various uses of BZ and BN format specifiers.
3 ! Portions inspired by NIST F77 testsuite FM711.f
4 ! Contributed by jvdelisle@verizon.net
7 integer I1(2,2), I2(2,2,2)
10 character*80 :: IDATA1
="111 2 2 3 3. 3E-1 44 5 5 6 . 67 . 78 8. 8E-1"
11 character*80 :: IDATA2
="2345 1 34512 45123 51234 2345 1 34512 45123 5"
12 character*80 :: IDATA3
="-8.0D0 1.0D-4 0.50D0 0.250D0"
13 character*80 :: ODATA
=""
14 character*80 :: CORRECT1
=" 1110 2020 .30303E-07 44 55 6.6 70.07 .888E+01"
15 character*80 :: CORRECT2
="23450 10345. 12.45 1235 1234 2345 1345. 12.45 1235"
16 character*80 :: CORRECT3
=" -0.8000000000D+01 0.1000000000D-03&
17 & 0.5000000000D+00 0.2500000000D+00"
18 READ(IDATA1
, 10) I1(1,2), IVI
, A1(3), JVI
, KVI
, A1(2), AVS
, A1(1)
19 10 FORMAT (BZ
,(2I4
, E10
.1
, BN
, 2I4
, F5
.2
, BZ
, F5
.2
, BN
, E10
.1
))
21 WRITE(ODATA
, 20) I1(1,2), IVI
, A1(3), JVI
, KVI
, A1(2), AVS
, A1(1)
22 20 FORMAT (2I5
, 1X
, E10
.5
, BN
, 2I5
, F6
.1
, BZ
, F6
.2
, BN
, 1X
, E8
.3
, I5
)
24 if (ODATA
/= CORRECT1
) call abort
27 READ(IDATA2
, 30) I2(1,2,1), A1(3), AVS
, IVI
, I1(1,1), JVI
, BVS
, A1(2), I2(1,1,1)
28 30 FORMAT (BZ
, (I5
, F5
.0
, BN
, F5
.2
, 2I5
, I5
, F5
.0
, BN
, F5
.2
, I5
))
30 WRITE(ODATA
, 40) I2(1,2,1), A1(3), AVS
, IVI
, I1(1,1), JVI
, BVS
, A1(2), I2(1,1,1)
31 40 FORMAT (I5
, F7
.0
, BZ
, 1X
, F5
.2
, 2(1X
,I4
),I5
, F7
.0
, BZ
, 1X
, F5
.2
, 1X
, I4
)
33 if (ODATA
/= CORRECT2
) call abort
42 if (ODATA
/= CORRECT3
) call abort