Commit 27c0330a authored by aarograh's avatar aarograh Committed by Henderson, Shane
Browse files

Add more getField interfaces

Squash branch 'getField_interfaces' into 'master'

* Add more getField interfaces

Ensure getField works with SNK/SLK/SSK/SDK

**Developer Checklist:**
- [x] Have you done a self-review after creating the merge request?
- [x] Have you filled in the Merge Request information (title, description) thoroughly?
- [x] Have you updated the relevant tickets (if this MR is linked to any VERA-dev tickets)?
- [x] Have you addressed all suggested feedback and commented on it to let the reviewer know? (Do not resolve discussions that the reviewer started)

**Reviewer Checklist:**
- [x] Have you confirmed all discussions were adequately addressed and resolved them all?
- [x] Does it conform to formatting guidelines?
- [x] Are there adequate and clear comments?
- [x] Is the design clean and sensible?
- [x] Are the changes optimal/efficient?
- [x] Were sufficient DBC checks added?
- [x] Are there unit tests? (if necessary)
- [x] Is the MR description clear, including a link to the VERA-Dev issue if appropriate?

**PSM Checklist**
- [x] Have you confirmed that all discussions were addressed, or that follow-on issues have been created for them?
- [x] Have you confirmed sufficient testing was conducted?
- [x] Does this impact other repositories?
- [x] Does the MR have an adequate description?
- [x] If the MR has multiple commits, did you set the MR to squash merge?

See merge request https://code.ornl.gov/futility/Futility/-/merge_requests/426
parent f769790c
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.