Commit 1cd11bc6 authored by Henderson, Shane's avatar Henderson, Shane
Browse files

Merge branch 'getField_interfaces' into 'master'

Add more getField interfaces

See merge request https://code.ornl.gov/futility/Futility/-/merge_requests/426
parents f769790c 27c0330a
Loading
Loading
Loading
Loading
Loading
+64 −12
Original line number Diff line number Diff line
@@ -272,12 +272,18 @@ INTERFACE getField
  !> @copybrief IO_Strings::getField_char_string
  !> @copydetails IO_Strings::getField_char_string
  MODULE PROCEDURE getField_char_string
  !> @copybrief IO_Strings::getField_string_int
  !> @copydetails IO_Strings::getField_string_int
  MODULE PROCEDURE getField_string_int
  !> @copybrief IO_Strings::getField_string_real
  !> @copydetails IO_Strings::getField_string_real
  MODULE PROCEDURE getField_string_real
  !> @copybrief IO_Strings::getField_string_SNK
  !> @copydetails IO_Strings::getField_string_SNK
  MODULE PROCEDURE getField_string_SNK
  !> @copybrief IO_Strings::getField_string_SLK
  !> @copydetails IO_Strings::getField_string_SLK
  MODULE PROCEDURE getField_string_SLK
  !> @copybrief IO_Strings::getField_string_SSK
  !> @copydetails IO_Strings::getField_string_SSK
  MODULE PROCEDURE getField_string_SSK
  !> @copybrief IO_Strings::getField_string_SDK
  !> @copydetails IO_Strings::getField_string_SDK
  MODULE PROCEDURE getField_string_SDK
ENDINTERFACE getField

!> @brief Generic interface for strarraymatch
@@ -802,10 +808,10 @@ ENDSUBROUTINE getField_string_char
!>
!> See getField_char_string.
!>
SUBROUTINE getField_string_int(i,string,field,ierrout)
SUBROUTINE getField_string_SNK(i,string,field,ierrout)
  INTEGER(SIK),INTENT(IN) :: i
  TYPE(StringType),INTENT(IN) :: string
  INTEGER(SIK),INTENT(OUT) :: field
  INTEGER(SNK),INTENT(OUT) :: field
  INTEGER(SIK),INTENT(OUT),OPTIONAL :: ierrout

  CHARACTER(LEN=:),ALLOCATABLE :: char_field
@@ -814,7 +820,53 @@ SUBROUTINE getField_string_int(i,string,field,ierrout)
  CALL getField_char_char(i,CHAR(string),char_field,ierr)
  IF(ierr == 0) READ(char_field,*,IOSTAT=ierr) field
  IF(PRESENT(ierrout)) ierrout=ierr
ENDSUBROUTINE getField_string_int
ENDSUBROUTINE getField_string_SNK
!
!-------------------------------------------------------------------------------
!> @brief Return the ith field of a string as an integer
!> @param i the ith field
!> @param string the input string
!> @param field the output integer containing the ith field
!> @param ierrout an optional return argument with the IOSTAT value
!>
!> See getField_char_string.
!>
SUBROUTINE getField_string_SLK(i,string,field,ierrout)
  INTEGER(SIK),INTENT(IN) :: i
  TYPE(StringType),INTENT(IN) :: string
  INTEGER(SLK),INTENT(OUT) :: field
  INTEGER(SIK),INTENT(OUT),OPTIONAL :: ierrout

  CHARACTER(LEN=:),ALLOCATABLE :: char_field
  INTEGER(SIK) :: ierr

  CALL getField_char_char(i,CHAR(string),char_field,ierr)
  IF(ierr == 0) READ(char_field,*,IOSTAT=ierr) field
  IF(PRESENT(ierrout)) ierrout=ierr
ENDSUBROUTINE getField_string_SLK
!
!-------------------------------------------------------------------------------
!> @brief Return the ith field of a string as a real
!> @param i the ith field
!> @param string the input string
!> @param field the output real containing the ith field
!> @param ierrout an optional return argument with the IOSTAT value
!>
!> See getField_char_string.
!>
SUBROUTINE getField_string_SSK(i,string,field,ierrout)
  INTEGER(SIK),INTENT(IN) :: i
  TYPE(StringType),INTENT(IN) :: string
  REAL(SSK),INTENT(OUT) :: field
  INTEGER(SIK),INTENT(OUT),OPTIONAL :: ierrout

  CHARACTER(LEN=:),ALLOCATABLE :: char_field
  INTEGER(SIK) :: ierr

  CALL getField_char_char(i,CHAR(string),char_field,ierr)
  IF(ierr == 0) READ(char_field,*,IOSTAT=ierr) field
  IF(PRESENT(ierrout)) ierrout=ierr
ENDSUBROUTINE getField_string_SSK
!
!-------------------------------------------------------------------------------
!> @brief Return the ith field of a string as a real
@@ -825,10 +877,10 @@ ENDSUBROUTINE getField_string_int
!>
!> See getField_char_string.
!>
SUBROUTINE getField_string_real(i,string,field,ierrout)
SUBROUTINE getField_string_SDK(i,string,field,ierrout)
  INTEGER(SIK),INTENT(IN) :: i
  TYPE(StringType),INTENT(IN) :: string
  REAL(SRK),INTENT(OUT) :: field
  REAL(SDK),INTENT(OUT) :: field
  INTEGER(SIK),INTENT(OUT),OPTIONAL :: ierrout

  CHARACTER(LEN=:),ALLOCATABLE :: char_field
@@ -837,7 +889,7 @@ SUBROUTINE getField_string_real(i,string,field,ierrout)
  CALL getField_char_char(i,CHAR(string),char_field,ierr)
  IF(ierr == 0) READ(char_field,*,IOSTAT=ierr) field
  IF(PRESENT(ierrout)) ierrout=ierr
ENDSUBROUTINE getField_string_real
ENDSUBROUTINE getField_string_SDK
!
!-------------------------------------------------------------------------------
!> @brief Separate the path and filename.