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