Vorige Seite Kein Verweis Übersicht Kein Verweis content index Hilfeseiten  

Fortran-Modul fileutil.f90

!
! Hilfsroutinen fuer File-I/O
!

module fileutil
  implicit none

contains

  function anzahlReals(fileId)
    ! gibt die Zahl von Realwerten im File der Unit fileId zurueck

    use kinds
    implicit none
    integer                :: anzahlReals
    integer, intent(in)    :: fileId
    real(kind=REAL8)       :: dummy
    integer                :: status

    anzahlReals = 0

    do
       read(fileId, *, iostat=status) dummy
       if (status /= 0) exit
       anzahlReals = anzahlReals + 1
    end do

    if (status > 0) then
       write (*,*) 'Konnte Array nicht lesen.'
       stop
    else                ! Ende der Datei erreicht
       rewind(fileId)
    end if

    status = dummy
    return
  end function anzahlReals

  function anzahlReals2(fileId)
    ! gibt die Zahl von Realwert-Paaren im File der Unit fileId zurueck

    use kinds
    implicit none
    integer                :: anzahlReals2
    integer, intent(in)    :: fileId
    real(kind=REAL8)       :: dummy1, dummy2
    integer                :: status

    anzahlReals2 = 0
    
    do
       read(fileId, *, iostat=status) dummy1, dummy2
       if (status /= 0) exit
       anzahlReals2 = anzahlReals2 + 1
    end do
    
    dummy2 = dummy1
    dummy1 = dummy2

    if (status > 0) then
       write (*,*) 'Konnte Array nicht lesen.'
       stop
    else                ! Ende der Datei erreicht
       rewind(fileId)
    end if

    return
  end function anzahlReals2


end module fileutil