SUBROUTINE open_phdf5_for_read (FileName, SysDepInfo, initialized, Hndl, iStatus) 1,4
IMPLICIT NONE
CHARACTER(*), INTENT(IN) :: filename
CHARACTER(*), INTENT(IN) :: SysDepInfo
LOGICAL, INTENT(IN) :: initialized
INTEGER, INTENT(OUT) :: Hndl
INTEGER, INTENT(OUT) :: iStatus
INCLUDE 'mpif.h'
INTEGER :: Comm_compute , Comm_io
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Begin of executable code ... ...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Comm_compute = MPI_COMM_WORLD
Comm_io = MPI_COMM_WORLD
IF(.NOT. initialized) CALL ext_phdf5_ioinit
(sysdepinfo,iStatus)
CALL ext_phdf5_open_for_read
( FileName , Comm_compute, Comm_io, SysDepInfo, &
Hndl , iStatus )
RETURN
END SUBROUTINE open_phdf5_for_read
SUBROUTINE close_phdf5_for_read(Hndl,ireturn) 1
IMPLICIT NONE
INTEGER, INTENT(IN) :: Hndl
INTEGER, INTENT(OUT) :: ireturn
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Begin of executable code .....
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
CALL ext_phdf5_ioclose
( Hndl, ireturn )
RETURN
END SUBROUTINE close_phdf5_for_read
SUBROUTINE shutdown_phdf5_io(ireturn) 2,2
IMPLICIT NONE
INTEGER, INTENT(OUT) :: ireturn
CALL ext_phdf5_ioexit
(ireturn)
RETURN
END SUBROUTINE
SUBROUTINE get_phdf5_next_time(Hndl,DateStr,istatus) 1,1
IMPLICIT NONE
INTEGER, INTENT(IN) :: Hndl
CHARACTER(*), INTENT(OUT) :: DateStr
INTEGER, INTENT(OUT) :: istatus
CALL ext_phdf5_get_next_time
( Hndl, DateStr, iStatus )
RETURN
END SUBROUTINE
SUBROUTINE get_phdf5_dom_ti_integer(Hndl, Element, Data, Status) 1,1
IMPLICIT NONE
INTEGER, INTENT(IN) :: Hndl
CHARACTER(*), INTENT(IN) :: Element
INTEGER, INTENT(OUT):: Data
INTEGER, INTENT(OUT):: Status
INTEGER :: Outcount
CALL ext_phdf5_get_dom_ti_integer
( Hndl, Element, Data, &
1, Outcount, Status )
RETURN
END SUBROUTINE get_phdf5_dom_ti_integer
SUBROUTINE get_phdf5_dom_ti_real(Hndl, Element, Data, Status) 1,1
IMPLICIT NONE
INTEGER, INTENT(IN) :: Hndl
CHARACTER(*), INTENT(IN) :: Element
REAL, INTENT(OUT):: Data
INTEGER, INTENT(OUT):: Status
INTEGER :: Outcount
CALL ext_phdf5_get_dom_ti_real
( Hndl, Element, Data, &
1, Outcount, Status )
RETURN
END SUBROUTINE get_phdf5_dom_ti_real
SUBROUTINE get_phdf5_dom_ti_char(Hndl, Element, Data, Status) 1,1
IMPLICIT NONE
INTEGER, INTENT(IN) :: Hndl
CHARACTER(*), INTENT(IN) :: Element
CHARACTER(*), INTENT(OUT):: Data
INTEGER, INTENT(OUT):: Status
CALL ext_phdf5_get_dom_ti_char
( Hndl, Element, Data, &
Status )
RETURN
END SUBROUTINE get_phdf5_dom_ti_char
SUBROUTINE get_phdf5_field(Hndl, DateStr, VarName, Field, FieldType, & 4,1
DomainDesc,MemoryOrder,Stagger,DimNames, &
DomainStart,DomainEnd,MemoryStart,MemoryEnd, &
PatchStart,PatchEnd, &
iStatus)
IMPLICIT NONE
INTEGER, INTENT(IN) :: Hndl
CHARACTER(*), INTENT(IN) :: DateStr
CHARACTER(*), INTENT(IN) :: VarName
INTEGER, INTENT(IN) :: FieldType
INTEGER, INTENT(IN) :: DomainDesc
CHARACTER(*), INTENT(IN) :: MemoryOrder
CHARACTER(*), INTENT(IN) :: Stagger
CHARACTER(*), INTENT(IN) :: DimNames(3)
INTEGER, INTENT(IN) :: DomainStart(3)
INTEGER, INTENT(IN) :: DomainEnd(3)
INTEGER, INTENT(IN) :: MemoryStart(3)
INTEGER, INTENT(IN) :: MemoryEnd(3)
INTEGER, INTENT(IN) :: PatchStart(3)
INTEGER, INTENT(IN) :: PatchEnd(3)
INTEGER, INTENT(OUT) :: Field(*)
INTEGER, INTENT(OUT) :: iStatus
INTEGER :: Comm, IOComm
INCLUDE 'mpif.h'
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Begin of executable code
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Comm = MPI_COMM_WORLD
IOComm = MPI_COMM_WORLD
! CALL ext_phdf5_get_var_ti_char ( Hndl,'MemoryOrder' , Varname, memoryorder, &
! iStatus )
!
! CALL ext_phdf5_get_var_ti_char ( Hndl,'stagger' , Varname, stagger, &
! iStatus )
CALL ext_phdf5_read_field
( Hndl , DateStr , VarName , &
Field , FieldType , &
Comm , IOComm , DomainDesc , &
MemoryOrder , Stagger , DimNames , &
DomainStart , DomainEnd , &
MemoryStart , MemoryEnd , &
PatchStart , PatchEnd , &
iStatus )
RETURN
END SUBROUTINE get_phdf5_field