unf_io_convert_1.f90

来自「用于进行gcc测试」· F90 代码 · 共 96 行

F90
96
字号
! { dg-do run }! { dg-options "-pedantic" }!  This test verifies the most basic sequential unformatted I/O!  with convert="swap".!  Adapted from seq_io.f.!      write 3 records of various sizes!      then read them backprogram main  implicit none  integer size  parameter(size=100)  logical debug   data debug /.FALSE./! set debug to true for help in debugging failures.  integer m(2)  integer n  real r(size)  integer i  character*4 str  m(1) = Z'11223344' ! { dg-warning "BOZ literal at .1. outside a DATA statement" }  m(2) = Z'55667788' ! { dg-warning "BOZ literal at .1. outside a DATA statement" }  n    = Z'77AABBCC' ! { dg-warning "BOZ literal at .1. outside a DATA statement" }  str = 'asdf'  do i = 1,size     r(i) = i  end do  open(9,form="unformatted",access="sequential",convert="swap") ! { dg-warning "Extension: CONVERT" }  write(9) m  ! an array of 2  write(9) n  ! an integer  write(9) r  ! an array of reals  write(9)str ! String! zero all the results so we can compare after they are read back  do i = 1,size     r(i) = 0  end do  m(1) = 0  m(2) = 0  n = 0  str = ' '    rewind(9)  read(9) m  read(9) n  read(9) r  read(9) str  !  ! check results  if (m(1).ne.Z'11223344') then     if (debug) then        print '(A,Z8)','m(1) incorrect.  m(1) = ',m(1)     else        call abort     endif  endif    if (m(2).ne.Z'55667788') then     if (debug) then        print '(A,Z8)','m(2) incorrect.  m(2) = ',m(2)     else        call abort     endif  endif    if (n.ne.Z'77AABBCC') then     if (debug) then        print '(A,Z8)','n incorrect.  n = ',n     else        call abort     endif  endif    do i = 1,size     if (int(r(i)).ne.i) then        if (debug) then           print*,'element ',i,' was ',r(i),' should be ',i        else           call abort        endif     endif  end do  if (str .ne. 'asdf') then     if (debug) then        print *,'str incorrect, str = ', str     else        call abort     endif  end if  ! use hexdump to look at the file "fort.9"  if (debug) then     close(9)  else     close(9,status='DELETE')  endifend program main

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?