From 4edf8e1c6c5eb39fc231d5dd9db5e5588f1453e0 Mon Sep 17 00:00:00 2001 From: Sharan Roongta Date: Fri, 26 Feb 2021 21:26:24 +0100 Subject: [PATCH 01/10] better yaml error description for type mismatch --- src/YAML_types.f90 | 72 +++++++++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 27 deletions(-) diff --git a/src/YAML_types.f90 b/src/YAML_types.f90 index b71261d9c..92e2a41ba 100644 --- a/src/YAML_types.f90 +++ b/src/YAML_types.f90 @@ -302,16 +302,22 @@ end subroutine tScalar_assign__ !-------------------------------------------------------------------------------------------------- !> @brief Type guard, guarantee scalar !-------------------------------------------------------------------------------------------------- -function tNode_asScalar(self) result(scalar) +function tNode_asScalar(self,parent_node) result(scalar) - class(tNode), intent(in), target :: self - class(tScalar), pointer :: scalar + class(tNode), intent(in), target :: self + class(tNode), intent(in), optional :: parent_node + class(tScalar), pointer :: scalar select type(self) class is(tScalar) scalar => self class default - call IO_error(706,ext_msg='Expected "scalar"') + if (present(parent_node)) write(6,'(a)') parent_node%asFormattedString() + if(self%isDict()) then + call IO_error(706,ext_msg='Expected "scalar", found "dict"') + else + call IO_error(706,ext_msg='Expected "scalar", found "list"') + endif end select end function tNode_asScalar @@ -320,16 +326,22 @@ end function tNode_asScalar !-------------------------------------------------------------------------------------------------- !> @brief Type guard, guarantee list !-------------------------------------------------------------------------------------------------- -function tNode_asList(self) result(list) +function tNode_asList(self,parent_node) result(list) - class(tNode), intent(in), target :: self - class(tList), pointer :: list + class(tNode), intent(in), target :: self + class(tNode), intent(in),optional :: parent_node + class(tList), pointer :: list select type(self) class is(tList) list => self class default - call IO_error(706,ext_msg='Expected "list"') + if (present(parent_node)) write(6,'(a)') parent_node%asFormattedString() + if(self%isScalar()) then + call IO_error(706,ext_msg='Expected "list", found "scalar"') + else + call IO_error(706,ext_msg='Expected "list", found "dict"') + endif end select end function tNode_asList @@ -340,14 +352,19 @@ end function tNode_asList !-------------------------------------------------------------------------------------------------- function tNode_asDict(self) result(dict) - class(tNode), intent(in), target :: self - class(tDict), pointer :: dict + class(tNode), intent(in), target :: self + class(tDict), pointer :: dict select type(self) class is(tDict) dict => self class default - call IO_error(706,ext_msg='Expected "dict"') + write(6,'(a)') self%asFormattedString() + if(self%isScalar()) then + call IO_error(706,ext_msg='Expected "dict", found "scalar"') + else + call IO_error(706,ext_msg='Expected "dict", found "list"') + endif end select end function tNode_asDict @@ -444,7 +461,7 @@ function tNode_get_byIndex_asFloat(self,i) result(nodeAsFloat) type(tScalar), pointer :: scalar node => self%get(i) - scalar => node%asScalar() + scalar => node%asScalar(self) nodeAsFloat = scalar%asFloat() end function tNode_get_byIndex_asFloat @@ -463,7 +480,7 @@ function tNode_get_byIndex_asInt(self,i) result(nodeAsInt) type(tScalar), pointer :: scalar node => self%get(i) - scalar => node%asScalar() + scalar => node%asScalar(self) nodeAsInt = scalar%asInt() end function tNode_get_byIndex_asInt @@ -482,7 +499,7 @@ function tNode_get_byIndex_asBool(self,i) result(nodeAsBool) type(tScalar), pointer :: scalar node => self%get(i) - scalar => node%asScalar() + scalar => node%asScalar(self) nodeAsBool = scalar%asBool() end function tNode_get_byIndex_asBool @@ -501,7 +518,7 @@ function tNode_get_byIndex_asString(self,i) result(nodeAsString) type(tScalar), pointer :: scalar node => self%get(i) - scalar => node%asScalar() + scalar => node%asScalar(self) nodeAsString = scalar%asString() end function tNode_get_byIndex_asString @@ -520,7 +537,7 @@ function tNode_get_byIndex_asFloats(self,i) result(nodeAsFloats) class(tList), pointer :: list node => self%get(i) - list => node%asList() + list => node%asList(self) nodeAsFloats = list%asFloats() end function tNode_get_byIndex_asFloats @@ -539,7 +556,7 @@ function tNode_get_byIndex_asInts(self,i) result(nodeAsInts) class(tList), pointer :: list node => self%get(i) - list => node%asList() + list => node%asList(self) nodeAsInts = list%asInts() end function tNode_get_byIndex_asInts @@ -558,7 +575,7 @@ function tNode_get_byIndex_asBools(self,i) result(nodeAsBools) class(tList), pointer :: list node => self%get(i) - list => node%asList() + list => node%asList(self) nodeAsBools = list%asBools() end function tNode_get_byIndex_asBools @@ -577,7 +594,7 @@ function tNode_get_byIndex_asStrings(self,i) result(nodeAsStrings) type(tList), pointer :: list node => self%get(i) - list => node%asList() + list => node%asList(self) nodeAsStrings = list%asStrings() end function tNode_get_byIndex_asStrings @@ -699,10 +716,11 @@ function tNode_get_byKey_asFloat(self,k,defaultVal) result(nodeAsFloat) class(tNode), pointer :: node type(tScalar), pointer :: scalar + character(len=:), allocatable :: str if(self%contains(k)) then node => self%get(k) - scalar => node%asScalar() + scalar => node%asScalar(self) nodeAsFloat = scalar%asFloat() elseif(present(defaultVal)) then nodeAsFloat = defaultVal @@ -728,7 +746,7 @@ function tNode_get_byKey_asInt(self,k,defaultVal) result(nodeAsInt) if(self%contains(k)) then node => self%get(k) - scalar => node%asScalar() + scalar => node%asScalar(self) nodeAsInt = scalar%asInt() elseif(present(defaultVal)) then nodeAsInt = defaultVal @@ -754,7 +772,7 @@ function tNode_get_byKey_asBool(self,k,defaultVal) result(nodeAsBool) if(self%contains(k)) then node => self%get(k) - scalar => node%asScalar() + scalar => node%asScalar(self) nodeAsBool = scalar%asBool() elseif(present(defaultVal)) then nodeAsBool = defaultVal @@ -780,7 +798,7 @@ function tNode_get_byKey_asString(self,k,defaultVal) result(nodeAsString) if(self%contains(k)) then node => self%get(k) - scalar => node%asScalar() + scalar => node%asScalar(self) nodeAsString = scalar%asString() elseif(present(defaultVal)) then nodeAsString = defaultVal @@ -808,7 +826,7 @@ function tNode_get_byKey_asFloats(self,k,defaultVal,requiredSize) result(nodeAsF if(self%contains(k)) then node => self%get(k) - list => node%asList() + list => node%asList(self) nodeAsFloats = list%asFloats() elseif(present(defaultVal)) then nodeAsFloats = defaultVal @@ -839,7 +857,7 @@ function tNode_get_byKey_asInts(self,k,defaultVal,requiredSize) result(nodeAsInt if(self%contains(k)) then node => self%get(k) - list => node%asList() + list => node%asList(self) nodeAsInts = list%asInts() elseif(present(defaultVal)) then nodeAsInts = defaultVal @@ -869,7 +887,7 @@ function tNode_get_byKey_asBools(self,k,defaultVal) result(nodeAsBools) if(self%contains(k)) then node => self%get(k) - list => node%asList() + list => node%asList(self) nodeAsBools = list%asBools() elseif(present(defaultVal)) then nodeAsBools = defaultVal @@ -895,7 +913,7 @@ function tNode_get_byKey_asStrings(self,k,defaultVal) result(nodeAsStrings) if(self%contains(k)) then node => self%get(k) - list => node%asList() + list => node%asList(self) nodeAsStrings = list%asStrings() elseif(present(defaultVal)) then nodeAsStrings = defaultVal From c0620037a166c3bfbf4428a58063cdc43bbab6e7 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Sat, 27 Feb 2021 13:14:53 -0500 Subject: [PATCH 02/10] simplified tNode_get_byKey_asIndex and tNode_getKey_byIndex; syntax polishing --- src/YAML_types.f90 | 74 ++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 42 deletions(-) diff --git a/src/YAML_types.f90 b/src/YAML_types.f90 index 92e2a41ba..342440b34 100644 --- a/src/YAML_types.f90 +++ b/src/YAML_types.f90 @@ -72,7 +72,7 @@ module YAML_types getKey => tNode_getKey_byIndex procedure :: & contains => tNode_contains - + generic :: & get => tNode_get_byIndex, & tNode_get_byKey @@ -157,7 +157,7 @@ module YAML_types emptyDict type(tList), target, public :: & emptyList - + abstract interface recursive function asFormattedString(self,indent) @@ -179,7 +179,7 @@ module YAML_types public :: & YAML_types_init, & - output_asStrings, & !ToDo: Hack for GNU. Remove later + output_asStrings, & !ToDo: Hack for GNU. Remove later assignment(=) contains @@ -435,13 +435,12 @@ function tNode_get_byIndex(self,i) result(node) integer :: j self_ => self%asList() + item => self_%first + if(i < 1 .or. i > self_%length) call IO_error(150,ext_msg='tNode_get_byIndex') - j = 1 - item => self_%first - do while(j item%next - j = j + 1 enddo node => item%node @@ -615,14 +614,10 @@ function tNode_getKey_byIndex(self,i) result(key) dict => self%asDict() item => dict%first - do j = 1, dict%length - if(j == i) then - key = item%key - exit - else - item => item%next - endif + do j = 1, min(i,dict%length)-1 + item => item%next enddo + key = item%key end function tNode_getKey_byIndex @@ -630,7 +625,7 @@ end function tNode_getKey_byIndex !------------------------------------------------------------------------------------------------- !> @brief Checks if a given key/item is present in the dict/list !------------------------------------------------------------------------------------------------- -function tNode_contains(self,k) result(exists) +function tNode_contains(self,k) result(exists) class(tNode), intent(in), target :: self character(len=*), intent(in) :: k @@ -641,18 +636,18 @@ function tNode_contains(self,k) result(exists) type(tDict), pointer :: dict exists = .false. - if(self%isDict()) then + if (self%isDict()) then dict => self%asDict() do j=1, dict%length - if(dict%getKey(j) == k) then + if (dict%getKey(j) == k) then exists = .true. return endif enddo - elseif(self%isList()) then + elseif (self%isList()) then list => self%asList() - do j =1, list%length - if(list%get_asString(j) == k) then + do j=1, list%length + if (list%get_asString(j) == k) then exists = .true. return endif @@ -681,7 +676,7 @@ function tNode_get_byKey(self,k,defaultVal) result(node) found = present(defaultVal) if(found) node => defaultVal - + self_ => self%asDict() j = 1 @@ -694,7 +689,7 @@ function tNode_get_byKey(self,k,defaultVal) result(node) item => item%next j = j + 1 enddo - + if (.not. found) then call IO_error(143,ext_msg=k) else @@ -911,11 +906,11 @@ function tNode_get_byKey_asStrings(self,k,defaultVal) result(nodeAsStrings) class(tNode), pointer :: node type(tList), pointer :: list - if(self%contains(k)) then + if (self%contains(k)) then node => self%get(k) list => node%asList(self) nodeAsStrings = list%asStrings() - elseif(present(defaultVal)) then + elseif (present(defaultVal)) then nodeAsStrings = defaultVal else call IO_error(143,ext_msg=k) @@ -943,7 +938,7 @@ function output_asStrings(self) result(output) !ToDo: SR: Rem end function output_asStrings - + !-------------------------------------------------------------------------------------------------- !> @brief Returns the index of a key in a dictionary @@ -954,25 +949,20 @@ function tNode_get_byKey_asIndex(self,key) result(keyIndex) character(len=*), intent(in) :: key integer :: keyIndex - integer :: i type(tDict), pointer :: dict type(tItem), pointer :: item dict => self%asDict() item => dict%first - keyIndex = -1 - do i = 1, dict%length - if(key == item%key) then - keyIndex = i - exit - else - item => item%next - endif + keyIndex = 1 + do while (associated(item%next) .and. item%key /= key) + item => item%next + keyIndex = keyIndex+1 enddo - if(keyIndex == -1) call IO_error(140,ext_msg=key) + if (item%key /= key) call IO_error(140,ext_msg=key) + - end function tNode_get_byKey_asIndex @@ -1003,7 +993,7 @@ recursive function tList_asFormattedString(self,indent) result(str) integer :: i, indent_ str = '' - if(present(indent)) then + if (present(indent)) then indent_ = indent else indent_ = 0 @@ -1011,7 +1001,7 @@ recursive function tList_asFormattedString(self,indent) result(str) item => self%first do i = 1, self%length - if(i /= 1) str = str//repeat(' ',indent_) + if (i /= 1) str = str//repeat(' ',indent_) str = str//'- '//item%node%asFormattedString(indent_+2) item => item%next end do @@ -1032,7 +1022,7 @@ recursive function tDict_asFormattedString(self,indent) result(str) integer :: i, indent_ str = '' - if(present(indent)) then + if (present(indent)) then indent_ = indent else indent_ = 0 @@ -1040,7 +1030,7 @@ recursive function tDict_asFormattedString(self,indent) result(str) item => self%first do i = 1, self%length - if(i /= 1) str = str//repeat(' ',indent_) + if (i /= 1) str = str//repeat(' ',indent_) select type(node_1 =>item%node) class is(tScalar) str = str//trim(item%key)//': '//item%node%asFormattedString(indent_+len_trim(item%key)+2) @@ -1254,7 +1244,7 @@ subroutine tDict_set(self,key,node) if (item%key == key) exit item => item%next end do searchExisting - if (.not. item%key == key) then + if (item%key /= key) then allocate(item%next) item => item%next self%length = self%length + 1 @@ -1288,7 +1278,7 @@ recursive subroutine tItem_finalize(self) type(tItem),intent(inout) :: self deallocate(self%node) - if(associated(self%next)) deallocate(self%next) + if (associated(self%next)) deallocate(self%next) end subroutine tItem_finalize From fd24c9c2a193972ea17e94ba848d87d2aeb43028 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Sat, 27 Feb 2021 13:22:46 -0500 Subject: [PATCH 03/10] simplified tNode_get_byKey_asIndex and tNode_getKey_byIndex==>get_byIndex_asKey; syntax polishing --- src/YAML_types.f90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/YAML_types.f90 b/src/YAML_types.f90 index 342440b34..7a741a5c8 100644 --- a/src/YAML_types.f90 +++ b/src/YAML_types.f90 @@ -67,9 +67,9 @@ module YAML_types procedure :: & tNode_get_byKey_asStrings => tNode_get_byKey_asStrings procedure :: & - getIndex => tNode_get_byKey_asIndex + getKey => tNode_get_byIndex_asKey procedure :: & - getKey => tNode_getKey_byIndex + getIndex => tNode_get_byKey_asIndex procedure :: & contains => tNode_contains @@ -602,7 +602,7 @@ end function tNode_get_byIndex_asStrings !-------------------------------------------------------------------------------------------------- !> @brief Returns the key in a dictionary as a string !-------------------------------------------------------------------------------------------------- -function tNode_getKey_byIndex(self,i) result(key) +function tNode_get_byIndex_asKey(self,i) result(key) class(tNode), intent(in), target :: self integer, intent(in) :: i @@ -619,7 +619,7 @@ function tNode_getKey_byIndex(self,i) result(key) enddo key = item%key -end function tNode_getKey_byIndex +end function tNode_get_byIndex_asKey !------------------------------------------------------------------------------------------------- From 5d51da11e527615c5a7f3adfdf9ff76c2e83ac3a Mon Sep 17 00:00:00 2001 From: Sharan Roongta Date: Tue, 2 Mar 2021 18:41:26 +0100 Subject: [PATCH 04/10] trying new structure to have better yaml error messages --- src/YAML_types.f90 | 175 +++++++++++++++++++++++++++++++-------------- 1 file changed, 123 insertions(+), 52 deletions(-) diff --git a/src/YAML_types.f90 b/src/YAML_types.f90 index b71261d9c..a6b9d9740 100644 --- a/src/YAML_types.f90 +++ b/src/YAML_types.f90 @@ -310,8 +310,6 @@ function tNode_asScalar(self) result(scalar) select type(self) class is(tScalar) scalar => self - class default - call IO_error(706,ext_msg='Expected "scalar"') end select end function tNode_asScalar @@ -328,8 +326,6 @@ function tNode_asList(self) result(list) select type(self) class is(tList) list => self - class default - call IO_error(706,ext_msg='Expected "list"') end select end function tNode_asList @@ -346,8 +342,6 @@ function tNode_asDict(self) result(dict) select type(self) class is(tDict) dict => self - class default - call IO_error(706,ext_msg='Expected "dict"') end select end function tNode_asDict @@ -417,7 +411,12 @@ function tNode_get_byIndex(self,i) result(node) class(tItem), pointer :: item integer :: j - self_ => self%asList() + if(self%isList()) then + self_ => self%asList() + else + call IO_error(706,ext_msg='Expected List') + endif + if(i < 1 .or. i > self_%length) call IO_error(150,ext_msg='tNode_get_byIndex') j = 1 @@ -444,8 +443,12 @@ function tNode_get_byIndex_asFloat(self,i) result(nodeAsFloat) type(tScalar), pointer :: scalar node => self%get(i) - scalar => node%asScalar() - nodeAsFloat = scalar%asFloat() + if(node%isScalar()) then + scalar => node%asScalar() + nodeAsFloat = scalar%asFloat() + else + call IO_error(706,ext_msg='Expected Scalar') + endif end function tNode_get_byIndex_asFloat @@ -463,8 +466,12 @@ function tNode_get_byIndex_asInt(self,i) result(nodeAsInt) type(tScalar), pointer :: scalar node => self%get(i) - scalar => node%asScalar() - nodeAsInt = scalar%asInt() + if(node%isScalar()) then + scalar => node%asScalar() + nodeAsInt = scalar%asInt() + else + call IO_error(706,ext_msg='Expected Scalar') + endif end function tNode_get_byIndex_asInt @@ -482,8 +489,12 @@ function tNode_get_byIndex_asBool(self,i) result(nodeAsBool) type(tScalar), pointer :: scalar node => self%get(i) - scalar => node%asScalar() - nodeAsBool = scalar%asBool() + if(node%isScalar()) then + scalar => node%asScalar() + nodeAsBool = scalar%asBool() + else + call IO_error(706,ext_msg='Expected Scalar') + endif end function tNode_get_byIndex_asBool @@ -501,8 +512,12 @@ function tNode_get_byIndex_asString(self,i) result(nodeAsString) type(tScalar), pointer :: scalar node => self%get(i) - scalar => node%asScalar() - nodeAsString = scalar%asString() + if(node%isScalar()) then + scalar => node%asScalar() + nodeAsString = scalar%asString() + else + call IO_error(706,ext_msg='Expected Scalar') + endif end function tNode_get_byIndex_asString @@ -520,8 +535,12 @@ function tNode_get_byIndex_asFloats(self,i) result(nodeAsFloats) class(tList), pointer :: list node => self%get(i) - list => node%asList() - nodeAsFloats = list%asFloats() + if(node%isList()) then + list => node%asList() + nodeAsFloats = list%asFloats() + else + call IO_error(706,ext_msg='Expected list') + endif end function tNode_get_byIndex_asFloats @@ -539,8 +558,12 @@ function tNode_get_byIndex_asInts(self,i) result(nodeAsInts) class(tList), pointer :: list node => self%get(i) - list => node%asList() - nodeAsInts = list%asInts() + if(node%isList()) then + list => node%asList() + nodeAsInts = list%asInts() + else + call IO_error(706,ext_msg='Expected list') + endif end function tNode_get_byIndex_asInts @@ -558,8 +581,12 @@ function tNode_get_byIndex_asBools(self,i) result(nodeAsBools) class(tList), pointer :: list node => self%get(i) - list => node%asList() - nodeAsBools = list%asBools() + if(node%isList()) then + list => node%asList() + nodeAsBools = list%asBools() + else + call IO_error(706,ext_msg='Expected list') + endif end function tNode_get_byIndex_asBools @@ -577,8 +604,12 @@ function tNode_get_byIndex_asStrings(self,i) result(nodeAsStrings) type(tList), pointer :: list node => self%get(i) - list => node%asList() - nodeAsStrings = list%asStrings() + if(node%isList()) then + list => node%asList() + nodeAsStrings = list%asStrings() + else + call IO_error(706,ext_msg='Expected list') + endif end function tNode_get_byIndex_asStrings @@ -596,16 +627,20 @@ function tNode_getKey_byIndex(self,i) result(key) type(tDict), pointer :: dict type(tItem), pointer :: item - dict => self%asDict() - item => dict%first - do j = 1, dict%length - if(j == i) then - key = item%key - exit - else - item => item%next - endif - enddo + if(self%isDict()) then + dict => self%asDict() + item => dict%first + do j = 1, dict%length + if(j == i) then + key = item%key + exit + else + item => item%next + endif + enddo + else + call IO_error(706,ext_msg='Expected dict') + endif end function tNode_getKey_byIndex @@ -641,7 +676,7 @@ function tNode_contains(self,k) result(exists) endif enddo else - call IO_error(706,ext_msg='Expected "list" or "dict"') + call IO_error(706,ext_msg='Expected "list" or "dict"') endif end function tNode_contains @@ -664,8 +699,12 @@ function tNode_get_byKey(self,k,defaultVal) result(node) found = present(defaultVal) if(found) node => defaultVal - - self_ => self%asDict() + + if(self%isDict()) then + self_ => self%asDict() + else + call IO_error(706,ext_msg='Expected Dict for key '//k) + endif j = 1 item => self_%first @@ -702,8 +741,12 @@ function tNode_get_byKey_asFloat(self,k,defaultVal) result(nodeAsFloat) if(self%contains(k)) then node => self%get(k) - scalar => node%asScalar() - nodeAsFloat = scalar%asFloat() + if(node%isScalar()) then + scalar => node%asScalar() + nodeAsFloat = scalar%asFloat() + else + call IO_error(706,ext_msg='Expected Scalar for key '//k) + endif elseif(present(defaultVal)) then nodeAsFloat = defaultVal else @@ -728,8 +771,12 @@ function tNode_get_byKey_asInt(self,k,defaultVal) result(nodeAsInt) if(self%contains(k)) then node => self%get(k) - scalar => node%asScalar() - nodeAsInt = scalar%asInt() + if(node%isScalar()) then + scalar => node%asScalar() + nodeAsInt = scalar%asInt() + else + call IO_error(706,ext_msg='Expected Scalar for key '//k) + endif elseif(present(defaultVal)) then nodeAsInt = defaultVal else @@ -754,8 +801,12 @@ function tNode_get_byKey_asBool(self,k,defaultVal) result(nodeAsBool) if(self%contains(k)) then node => self%get(k) - scalar => node%asScalar() - nodeAsBool = scalar%asBool() + if(node%isScalar()) then + scalar => node%asScalar() + nodeAsBool = scalar%asBool() + else + call IO_error(706,ext_msg='Expected Scalar for key '//k) + endif elseif(present(defaultVal)) then nodeAsBool = defaultVal else @@ -780,8 +831,12 @@ function tNode_get_byKey_asString(self,k,defaultVal) result(nodeAsString) if(self%contains(k)) then node => self%get(k) - scalar => node%asScalar() - nodeAsString = scalar%asString() + if(node%isScalar()) then + scalar => node%asScalar() + nodeAsString = scalar%asString() + else + call IO_error(706,ext_msg='Expected Scalar for key '//k) + endif elseif(present(defaultVal)) then nodeAsString = defaultVal else @@ -808,8 +863,12 @@ function tNode_get_byKey_asFloats(self,k,defaultVal,requiredSize) result(nodeAsF if(self%contains(k)) then node => self%get(k) - list => node%asList() - nodeAsFloats = list%asFloats() + if(node%isList()) then + list => node%asList() + nodeAsFloats = list%asFloats() + else + call IO_error(706,ext_msg='Expected list for key '//k) + endif elseif(present(defaultVal)) then nodeAsFloats = defaultVal else @@ -839,8 +898,12 @@ function tNode_get_byKey_asInts(self,k,defaultVal,requiredSize) result(nodeAsInt if(self%contains(k)) then node => self%get(k) - list => node%asList() - nodeAsInts = list%asInts() + if(node%isList()) then + list => node%asList() + nodeAsInts = list%asInts() + else + call IO_error(706,ext_msg='Expected list for key '//k) + endif elseif(present(defaultVal)) then nodeAsInts = defaultVal else @@ -869,8 +932,12 @@ function tNode_get_byKey_asBools(self,k,defaultVal) result(nodeAsBools) if(self%contains(k)) then node => self%get(k) - list => node%asList() - nodeAsBools = list%asBools() + if(node%isList())then + list => node%asList() + nodeAsBools = list%asBools() + else + call IO_error(706,ext_msg='Expected list for key '//k) + endif elseif(present(defaultVal)) then nodeAsBools = defaultVal else @@ -895,8 +962,12 @@ function tNode_get_byKey_asStrings(self,k,defaultVal) result(nodeAsStrings) if(self%contains(k)) then node => self%get(k) - list => node%asList() - nodeAsStrings = list%asStrings() + if(node%isList()) then + list => node%asList() + nodeAsStrings = list%asStrings() + else + call IO_error(706,ext_msg='Expected list for key '//k) + endif elseif(present(defaultVal)) then nodeAsStrings = defaultVal else From aa5cd76d33c1e4728bdcc454b5bb1312061cf8a3 Mon Sep 17 00:00:00 2001 From: Sharan Roongta Date: Mon, 29 Mar 2021 13:47:23 +0200 Subject: [PATCH 05/10] function not needed --- src/YAML_types.f90 | 345 ++++++++++++++++++++------------------------- 1 file changed, 154 insertions(+), 191 deletions(-) diff --git a/src/YAML_types.f90 b/src/YAML_types.f90 index 9c5214164..5ee9325b4 100644 --- a/src/YAML_types.f90 +++ b/src/YAML_types.f90 @@ -20,16 +20,10 @@ module YAML_types procedure(asFormattedString), deferred :: asFormattedString procedure :: & asScalar => tNode_asScalar - procedure :: & - isScalar => tNode_isScalar procedure :: & asList => tNode_asList - procedure :: & - isList => tNode_isList procedure :: & asDict => tNode_asDict - procedure :: & - isDict => tNode_isDict procedure :: & tNode_get_byIndex => tNode_get_byIndex procedure :: & @@ -347,57 +341,6 @@ function tNode_asDict(self) result(dict) end function tNode_asDict -!-------------------------------------------------------------------------------------------------- -!> @brief Checks if node is a scalar -!-------------------------------------------------------------------------------------------------- -function tNode_isScalar(self) result(scalar) - - class(tNode), intent(in), target :: self - logical :: scalar - - scalar = .false. - select type(self) - class is(tScalar) - scalar = .true. - end select - -end function tNode_isScalar - - -!-------------------------------------------------------------------------------------------------- -!> @brief Checks if node is a list -!-------------------------------------------------------------------------------------------------- -function tNode_isList(self) result(list) - - class(tNode), intent(in), target :: self - logical :: list - - list = .false. - select type(self) - class is(tList) - list = .true. - end select - -end function tNode_isList - - -!-------------------------------------------------------------------------------------------------- -!> @brief Checks if node is a dict -!-------------------------------------------------------------------------------------------------- -function tNode_isDict(self) result(dict) - - class(tNode), intent(in), target :: self - logical :: dict - - dict = .false. - select type(self) - class is(tDict) - dict = .true. - end select - -end function tNode_isDict - - !-------------------------------------------------------------------------------------------------- !> @brief Access by index !-------------------------------------------------------------------------------------------------- @@ -411,11 +354,12 @@ function tNode_get_byIndex(self,i) result(node) class(tItem), pointer :: item integer :: j - if (self%isList()) then - self_ => self%asList() - else - call IO_error(706,ext_msg='Expected List') - endif + select type(self) + class is(tList) + self_ => self%asList() + class default + call IO_error(706,ext_msg='Expected List') + endselect item => self_%first @@ -442,12 +386,13 @@ function tNode_get_byIndex_asFloat(self,i) result(nodeAsFloat) type(tScalar), pointer :: scalar node => self%get(i) - if (node%isScalar()) then - scalar => node%asScalar() - nodeAsFloat = scalar%asFloat() - else - call IO_error(706,ext_msg='Expected Scalar') - endif + select type(node) + class is(tScalar) + scalar => node%asScalar() + nodeAsFloat = scalar%asFloat() + class default + call IO_error(706,ext_msg='Expected Scalar') + end select end function tNode_get_byIndex_asFloat @@ -465,12 +410,13 @@ function tNode_get_byIndex_asInt(self,i) result(nodeAsInt) type(tScalar), pointer :: scalar node => self%get(i) - if (node%isScalar()) then - scalar => node%asScalar() - nodeAsInt = scalar%asInt() - else - call IO_error(706,ext_msg='Expected Scalar') - endif + select type(node) + class is(tScalar) + scalar => node%asScalar() + nodeAsInt = scalar%asInt() + class default + call IO_error(706,ext_msg='Expected Scalar') + end select end function tNode_get_byIndex_asInt @@ -488,12 +434,13 @@ function tNode_get_byIndex_asBool(self,i) result(nodeAsBool) type(tScalar), pointer :: scalar node => self%get(i) - if (node%isScalar()) then - scalar => node%asScalar() - nodeAsBool = scalar%asBool() - else - call IO_error(706,ext_msg='Expected Scalar') - endif + select type(node) + class is(tScalar) + scalar => node%asScalar() + nodeAsBool = scalar%asBool() + class default + call IO_error(706,ext_msg='Expected Scalar') + endselect end function tNode_get_byIndex_asBool @@ -511,12 +458,13 @@ function tNode_get_byIndex_asString(self,i) result(nodeAsString) type(tScalar), pointer :: scalar node => self%get(i) - if (node%isScalar()) then - scalar => node%asScalar() - nodeAsString = scalar%asString() - else - call IO_error(706,ext_msg='Expected Scalar') - endif + select type(node) + class is(tScalar) + scalar => node%asScalar() + nodeAsString = scalar%asString() + class default + call IO_error(706,ext_msg='Expected Scalar') + endselect end function tNode_get_byIndex_asString @@ -534,12 +482,13 @@ function tNode_get_byIndex_asFloats(self,i) result(nodeAsFloats) class(tList), pointer :: list node => self%get(i) - if (node%isList()) then - list => node%asList() - nodeAsFloats = list%asFloats() - else - call IO_error(706,ext_msg='Expected list') - endif + select type(node) + class is(tList) + list => node%asList() + nodeAsFloats = list%asFloats() + class default + call IO_error(706,ext_msg='Expected list') + endselect end function tNode_get_byIndex_asFloats @@ -557,12 +506,13 @@ function tNode_get_byIndex_asInts(self,i) result(nodeAsInts) class(tList), pointer :: list node => self%get(i) - if (node%isList()) then - list => node%asList() - nodeAsInts = list%asInts() - else - call IO_error(706,ext_msg='Expected list') - endif + select type(node) + class is(tList) + list => node%asList() + nodeAsInts = list%asInts() + class default + call IO_error(706,ext_msg='Expected list') + endselect end function tNode_get_byIndex_asInts @@ -580,12 +530,13 @@ function tNode_get_byIndex_asBools(self,i) result(nodeAsBools) class(tList), pointer :: list node => self%get(i) - if (node%isList()) then - list => node%asList() - nodeAsBools = list%asBools() - else - call IO_error(706,ext_msg='Expected list') - endif + select type(node) + class is(tList) + list => node%asList() + nodeAsBools = list%asBools() + class default + call IO_error(706,ext_msg='Expected list') + endselect end function tNode_get_byIndex_asBools @@ -603,12 +554,13 @@ function tNode_get_byIndex_asStrings(self,i) result(nodeAsStrings) type(tList), pointer :: list node => self%get(i) - if (node%isList()) then - list => node%asList() - nodeAsStrings = list%asStrings() - else - call IO_error(706,ext_msg='Expected list') - endif + select type(node) + class is(tList) + list => node%asList() + nodeAsStrings = list%asStrings() + class default + call IO_error(706,ext_msg='Expected list') + endselect end function tNode_get_byIndex_asStrings @@ -626,15 +578,16 @@ function tNode_get_byIndex_asKey(self,i) result(key) type(tDict), pointer :: dict type(tItem), pointer :: item - if (self%isDict()) then - dict => self%asDict() - item => dict%first - do j = 1, min(i,dict%length)-1 - item => item%next - enddo - else - call IO_error(706,ext_msg='Expected dict') - endif + select type(self) + class is(tDict) + dict => self%asDict() + item => dict%first + do j = 1, min(i,dict%length)-1 + item => item%next + enddo + class default + call IO_error(706,ext_msg='Expected dict') + endselect key = item%key @@ -655,25 +608,26 @@ function tNode_contains(self,k) result(exists) type(tDict), pointer :: dict exists = .false. - if (self%isDict()) then - dict => self%asDict() - do j=1, dict%length - if (dict%getKey(j) == k) then - exists = .true. - return - endif - enddo - elseif (self%isList()) then - list => self%asList() - do j=1, list%length - if (list%get_asString(j) == k) then - exists = .true. - return - endif - enddo - else - call IO_error(706,ext_msg='Expected "list" or "dict"') - endif + select type(self) + class is(tDict) + dict => self%asDict() + do j=1, dict%length + if (dict%getKey(j) == k) then + exists = .true. + return + endif + enddo + class is(tList) + list => self%asList() + do j=1, list%length + if (list%get_asString(j) == k) then + exists = .true. + return + endif + enddo + class default + call IO_error(706,ext_msg='Expected "list" or "dict"') + endselect end function tNode_contains @@ -696,11 +650,12 @@ function tNode_get_byKey(self,k,defaultVal) result(node) found = present(defaultVal) if (found) node => defaultVal - if (self%isDict()) then - self_ => self%asDict() - else - call IO_error(706,ext_msg='Expected Dict for key '//k) - endif + select type(self) + class is(tDict) + self_ => self%asDict() + class default + call IO_error(706,ext_msg='Expected Dict for key '//k) + endselect j = 1 item => self_%first @@ -738,12 +693,13 @@ function tNode_get_byKey_asFloat(self,k,defaultVal) result(nodeAsFloat) if (self%contains(k)) then node => self%get(k) - if (node%isScalar()) then - scalar => node%asScalar() - nodeAsFloat = scalar%asFloat() - else - call IO_error(706,ext_msg='Expected Scalar for key '//k) - endif + select type(node) + class is(tScalar) + scalar => node%asScalar() + nodeAsFloat = scalar%asFloat() + class default + call IO_error(706,ext_msg='Expected Scalar for key '//k) + endselect elseif (present(defaultVal)) then nodeAsFloat = defaultVal else @@ -768,12 +724,13 @@ function tNode_get_byKey_asInt(self,k,defaultVal) result(nodeAsInt) if (self%contains(k)) then node => self%get(k) - if (node%isScalar()) then - scalar => node%asScalar() - nodeAsInt = scalar%asInt() - else - call IO_error(706,ext_msg='Expected Scalar for key '//k) - endif + select type(node) + class is(tScalar) + scalar => node%asScalar() + nodeAsInt = scalar%asInt() + class default + call IO_error(706,ext_msg='Expected Scalar for key '//k) + endselect elseif (present(defaultVal)) then nodeAsInt = defaultVal else @@ -798,12 +755,13 @@ function tNode_get_byKey_asBool(self,k,defaultVal) result(nodeAsBool) if (self%contains(k)) then node => self%get(k) - if (node%isScalar()) then - scalar => node%asScalar() - nodeAsBool = scalar%asBool() - else - call IO_error(706,ext_msg='Expected Scalar for key '//k) - endif + select type(node) + class is(tScalar) + scalar => node%asScalar() + nodeAsBool = scalar%asBool() + class default + call IO_error(706,ext_msg='Expected Scalar for key '//k) + endselect elseif (present(defaultVal)) then nodeAsBool = defaultVal else @@ -828,12 +786,13 @@ function tNode_get_byKey_asString(self,k,defaultVal) result(nodeAsString) if (self%contains(k)) then node => self%get(k) - if (node%isScalar()) then - scalar => node%asScalar() - nodeAsString = scalar%asString() - else - call IO_error(706,ext_msg='Expected Scalar for key '//k) - endif + select type(node) + class is(tScalar) + scalar => node%asScalar() + nodeAsString = scalar%asString() + class default + call IO_error(706,ext_msg='Expected Scalar for key '//k) + endselect elseif (present(defaultVal)) then nodeAsString = defaultVal else @@ -860,12 +819,13 @@ function tNode_get_byKey_asFloats(self,k,defaultVal,requiredSize) result(nodeAsF if (self%contains(k)) then node => self%get(k) - if (node%isList()) then - list => node%asList() - nodeAsFloats = list%asFloats() - else - call IO_error(706,ext_msg='Expected list for key '//k) - endif + select type(self) + class is(tList) + list => node%asList() + nodeAsFloats = list%asFloats() + class default + call IO_error(706,ext_msg='Expected list for key '//k) + endselect elseif (present(defaultVal)) then nodeAsFloats = defaultVal else @@ -895,12 +855,13 @@ function tNode_get_byKey_asInts(self,k,defaultVal,requiredSize) result(nodeAsInt if (self%contains(k)) then node => self%get(k) - if (node%isList()) then - list => node%asList() - nodeAsInts = list%asInts() - else - call IO_error(706,ext_msg='Expected list for key '//k) - endif + select type(node) + class is(tList) + list => node%asList() + nodeAsInts = list%asInts() + class default + call IO_error(706,ext_msg='Expected list for key '//k) + endselect elseif (present(defaultVal)) then nodeAsInts = defaultVal else @@ -929,12 +890,13 @@ function tNode_get_byKey_asBools(self,k,defaultVal) result(nodeAsBools) if (self%contains(k)) then node => self%get(k) - if (node%isList())then - list => node%asList() - nodeAsBools = list%asBools() - else - call IO_error(706,ext_msg='Expected list for key '//k) - endif + select type(node) + class is(tList) + list => node%asList() + nodeAsBools = list%asBools() + class default + call IO_error(706,ext_msg='Expected list for key '//k) + endselect elseif (present(defaultVal)) then nodeAsBools = defaultVal else @@ -959,12 +921,13 @@ function tNode_get_byKey_asStrings(self,k,defaultVal) result(nodeAsStrings) if (self%contains(k)) then node => self%get(k) - if (node%isList()) then - list => node%asList() - nodeAsStrings = list%asStrings() - else - call IO_error(706,ext_msg='Expected list for key '//k) - endif + select type(node) + class is(tList) + list => node%asList() + nodeAsStrings = list%asStrings() + class default + call IO_error(706,ext_msg='Expected list for key '//k) + endselect elseif (present(defaultVal)) then nodeAsStrings = defaultVal else From 7e8f630a6260fadb4cfa82b5984699e03c686a4f Mon Sep 17 00:00:00 2001 From: Sharan Roongta Date: Mon, 29 Mar 2021 21:44:37 +0200 Subject: [PATCH 06/10] consistent --- src/YAML_types.f90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/YAML_types.f90 b/src/YAML_types.f90 index 72262f1ad..eff5f2483 100644 --- a/src/YAML_types.f90 +++ b/src/YAML_types.f90 @@ -855,7 +855,7 @@ function tNode_get_byKey_as1dFloat(self,k,defaultVal,requiredSize) result(nodeAs list => node%asList() nodeAs1dFloat = list%as1dFloat() class default - call IO_error(706,ext_msg='Expected 1D list for key '//k) + call IO_error(706,ext_msg='Expected 1D Float array for key '//k) endselect elseif (present(defaultVal)) then nodeAs1dFloat = defaultVal @@ -891,7 +891,7 @@ function tNode_get_byKey_as2dFloat(self,k,defaultVal) result(nodeAs2dFloat) rows => node%asList() nodeAs2dFloat = rows%as2dFloat() class default - call IO_error(706,ext_msg='Expected 2D list for key '//k) + call IO_error(706,ext_msg='Expected 2D Float array for key '//k) endselect elseif(present(defaultVal)) then nodeAs2dFloat = defaultVal @@ -923,7 +923,7 @@ function tNode_get_byKey_as1dInt(self,k,defaultVal,requiredSize) result(nodeAs1d list => node%asList() nodeAs1dInt = list%as1dInt() class default - call IO_error(706,ext_msg='Expected list for key '//k) + call IO_error(706,ext_msg='Expected 1D Integer array for key '//k) endselect elseif (present(defaultVal)) then nodeAs1dInt = defaultVal @@ -958,7 +958,7 @@ function tNode_get_byKey_as1dBool(self,k,defaultVal) result(nodeAs1dBool) list => node%asList() nodeAs1dBool = list%as1dBool() class default - call IO_error(706,ext_msg='Expected list for key '//k) + call IO_error(706,ext_msg='Expected 1D Boolean array for key '//k) endselect elseif (present(defaultVal)) then nodeAs1dBool = defaultVal @@ -989,7 +989,7 @@ function tNode_get_byKey_as1dString(self,k,defaultVal) result(nodeAs1dString) list => node%asList() nodeAs1dString = list%as1dString() class default - call IO_error(706,ext_msg='Expected list for key '//k) + call IO_error(706,ext_msg='Expected 1D String array for key '//k) endselect elseif (present(defaultVal)) then nodeAs1dString = defaultVal From 8ac4850dd3a5107d0526c6d5c90f195ebb53d3b2 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Wed, 31 Mar 2021 10:55:25 -0400 Subject: [PATCH 07/10] more consistent error messages --- src/YAML_types.f90 | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/YAML_types.f90 b/src/YAML_types.f90 index eff5f2483..b294f9ba1 100644 --- a/src/YAML_types.f90 +++ b/src/YAML_types.f90 @@ -389,7 +389,7 @@ function tNode_get_byIndex(self,i) result(node) class is(tList) self_ => self%asList() class default - call IO_error(706,ext_msg='Expected List') + call IO_error(706,ext_msg='Expected list') endselect item => self_%first @@ -418,11 +418,11 @@ function tNode_get_byIndex_asFloat(self,i) result(nodeAsFloat) node => self%get(i) select type(node) - class is(tScalar) + class is(tScalar) scalar => node%asScalar() nodeAsFloat = scalar%asFloat() class default - call IO_error(706,ext_msg='Expected Scalar') + call IO_error(706,ext_msg='Expected scalar float') end select end function tNode_get_byIndex_asFloat @@ -446,7 +446,7 @@ function tNode_get_byIndex_asInt(self,i) result(nodeAsInt) scalar => node%asScalar() nodeAsInt = scalar%asInt() class default - call IO_error(706,ext_msg='Expected Scalar') + call IO_error(706,ext_msg='Expected scalar integer') end select end function tNode_get_byIndex_asInt @@ -470,7 +470,7 @@ function tNode_get_byIndex_asBool(self,i) result(nodeAsBool) scalar => node%asScalar() nodeAsBool = scalar%asBool() class default - call IO_error(706,ext_msg='Expected Scalar') + call IO_error(706,ext_msg='Expected scalar Boolean') endselect end function tNode_get_byIndex_asBool @@ -494,7 +494,7 @@ function tNode_get_byIndex_asString(self,i) result(nodeAsString) scalar => node%asScalar() nodeAsString = scalar%asString() class default - call IO_error(706,ext_msg='Expected Scalar') + call IO_error(706,ext_msg='Expected scalar string') endselect end function tNode_get_byIndex_asString @@ -518,7 +518,7 @@ function tNode_get_byIndex_as1dFloat(self,i) result(nodeAs1dFloat) list => node%asList() nodeAs1dFloat = list%as1dFloat() class default - call IO_error(706,ext_msg='Expected list') + call IO_error(706,ext_msg='Expected list of floats') endselect end function tNode_get_byIndex_as1dFloat @@ -542,7 +542,7 @@ function tNode_get_byIndex_as1dInt(self,i) result(nodeAs1dInt) list => node%asList() nodeAs1dInt = list%as1dInt() class default - call IO_error(706,ext_msg='Expected list') + call IO_error(706,ext_msg='Expected list of integers') endselect end function tNode_get_byIndex_as1dInt @@ -566,7 +566,7 @@ function tNode_get_byIndex_as1dBool(self,i) result(nodeAs1dBool) list => node%asList() nodeAs1dBool = list%as1dBool() class default - call IO_error(706,ext_msg='Expected list') + call IO_error(706,ext_msg='Expected list of Booleans') endselect end function tNode_get_byIndex_as1dBool @@ -590,7 +590,7 @@ function tNode_get_byIndex_as1dString(self,i) result(nodeAs1dString) list => node%asList() nodeAs1dString = list%as1dString() class default - call IO_error(706,ext_msg='Expected list') + call IO_error(706,ext_msg='Expected list of strings') endselect end function tNode_get_byIndex_as1dString @@ -619,7 +619,7 @@ function tNode_get_byIndex_asKey(self,i) result(key) class default call IO_error(706,ext_msg='Expected dict') endselect - + key = item%key end function tNode_get_byIndex_asKey @@ -657,7 +657,7 @@ function tNode_contains(self,k) result(exists) endif enddo class default - call IO_error(706,ext_msg='Expected "list" or "dict"') + call IO_error(706,ext_msg='Expected list or dict') endselect end function tNode_contains @@ -685,7 +685,7 @@ function tNode_get_byKey(self,k,defaultVal) result(node) class is(tDict) self_ => self%asDict() class default - call IO_error(706,ext_msg='Expected Dict for key '//k) + call IO_error(706,ext_msg='Expected dict for key '//k) endselect j = 1 @@ -729,7 +729,7 @@ function tNode_get_byKey_asFloat(self,k,defaultVal) result(nodeAsFloat) scalar => node%asScalar() nodeAsFloat = scalar%asFloat() class default - call IO_error(706,ext_msg='Expected Scalar for key '//k) + call IO_error(706,ext_msg='Expected scalar float for key '//k) endselect elseif (present(defaultVal)) then nodeAsFloat = defaultVal @@ -760,7 +760,7 @@ function tNode_get_byKey_asInt(self,k,defaultVal) result(nodeAsInt) scalar => node%asScalar() nodeAsInt = scalar%asInt() class default - call IO_error(706,ext_msg='Expected Scalar for key '//k) + call IO_error(706,ext_msg='Expected scalar integer for key '//k) endselect elseif (present(defaultVal)) then nodeAsInt = defaultVal @@ -791,7 +791,7 @@ function tNode_get_byKey_asBool(self,k,defaultVal) result(nodeAsBool) scalar => node%asScalar() nodeAsBool = scalar%asBool() class default - call IO_error(706,ext_msg='Expected Scalar for key '//k) + call IO_error(706,ext_msg='Expected scalar Boolean for key '//k) endselect elseif (present(defaultVal)) then nodeAsBool = defaultVal @@ -822,7 +822,7 @@ function tNode_get_byKey_asString(self,k,defaultVal) result(nodeAsString) scalar => node%asScalar() nodeAsString = scalar%asString() class default - call IO_error(706,ext_msg='Expected Scalar for key '//k) + call IO_error(706,ext_msg='Expected scalar string for key '//k) endselect elseif (present(defaultVal)) then nodeAsString = defaultVal @@ -855,7 +855,7 @@ function tNode_get_byKey_as1dFloat(self,k,defaultVal,requiredSize) result(nodeAs list => node%asList() nodeAs1dFloat = list%as1dFloat() class default - call IO_error(706,ext_msg='Expected 1D Float array for key '//k) + call IO_error(706,ext_msg='Expected 1D float array for key '//k) endselect elseif (present(defaultVal)) then nodeAs1dFloat = defaultVal @@ -891,7 +891,7 @@ function tNode_get_byKey_as2dFloat(self,k,defaultVal) result(nodeAs2dFloat) rows => node%asList() nodeAs2dFloat = rows%as2dFloat() class default - call IO_error(706,ext_msg='Expected 2D Float array for key '//k) + call IO_error(706,ext_msg='Expected 2D float array for key '//k) endselect elseif(present(defaultVal)) then nodeAs2dFloat = defaultVal @@ -923,7 +923,7 @@ function tNode_get_byKey_as1dInt(self,k,defaultVal,requiredSize) result(nodeAs1d list => node%asList() nodeAs1dInt = list%as1dInt() class default - call IO_error(706,ext_msg='Expected 1D Integer array for key '//k) + call IO_error(706,ext_msg='Expected 1D integer array for key '//k) endselect elseif (present(defaultVal)) then nodeAs1dInt = defaultVal @@ -989,7 +989,7 @@ function tNode_get_byKey_as1dString(self,k,defaultVal) result(nodeAs1dString) list => node%asList() nodeAs1dString = list%as1dString() class default - call IO_error(706,ext_msg='Expected 1D String array for key '//k) + call IO_error(706,ext_msg='Expected 1D string array for key '//k) endselect elseif (present(defaultVal)) then nodeAs1dString = defaultVal From 09beb8f38cb0dd06bf471aca2d4f01aedc9bcf7a Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 3 Apr 2021 16:44:38 +0200 Subject: [PATCH 08/10] white space adjustments --- src/YAML_types.f90 | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/YAML_types.f90 b/src/YAML_types.f90 index b294f9ba1..3d83831e6 100644 --- a/src/YAML_types.f90 +++ b/src/YAML_types.f90 @@ -123,15 +123,15 @@ module YAML_types procedure :: asFormattedString => tList_asFormattedString procedure :: append => tList_append procedure :: & - as1dFloat => tList_as1dFloat + as1dFloat => tList_as1dFloat procedure :: & - as2dFloat => tList_as2dFloat + as2dFloat => tList_as2dFloat procedure :: & - as1dInt => tList_as1dInt + as1dInt => tList_as1dInt procedure :: & - as1dBool => tList_as1dBool + as1dBool => tList_as1dBool procedure :: & - as1dString => tList_as1dString + as1dString => tList_as1dString final :: tList_finalize end type tList @@ -329,8 +329,8 @@ end subroutine tScalar_assign__ !-------------------------------------------------------------------------------------------------- function tNode_asScalar(self) result(scalar) - class(tNode), intent(in), target :: self - class(tScalar), pointer :: scalar + class(tNode), intent(in), target :: self + class(tScalar), pointer :: scalar select type(self) class is(tScalar) @@ -345,8 +345,8 @@ end function tNode_asScalar !-------------------------------------------------------------------------------------------------- function tNode_asList(self) result(list) - class(tNode), intent(in), target :: self - class(tList), pointer :: list + class(tNode), intent(in), target :: self + class(tList), pointer :: list select type(self) class is(tList) @@ -361,8 +361,8 @@ end function tNode_asList !-------------------------------------------------------------------------------------------------- function tNode_asDict(self) result(dict) - class(tNode), intent(in), target :: self - class(tDict), pointer :: dict + class(tNode), intent(in), target :: self + class(tDict), pointer :: dict select type(self) class is(tDict) @@ -720,7 +720,6 @@ function tNode_get_byKey_asFloat(self,k,defaultVal) result(nodeAsFloat) class(tNode), pointer :: node type(tScalar), pointer :: scalar - character(len=:), allocatable :: str if (self%contains(k)) then node => self%get(k) From 857a990a0ef3590560184e059b6a9f6b540d0c84 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 3 Apr 2021 20:39:07 +0200 Subject: [PATCH 09/10] avoid long lines --- src/mesh/DAMASK_mesh.f90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mesh/DAMASK_mesh.f90 b/src/mesh/DAMASK_mesh.f90 index 5ef0f7a36..e19aee822 100644 --- a/src/mesh/DAMASK_mesh.f90 +++ b/src/mesh/DAMASK_mesh.f90 @@ -89,7 +89,8 @@ program DAMASK_mesh if (maxCutBack < 0) call IO_error(301,ext_msg='maxCutBack') ! reading basic information from load case file and allocate data structure containing load cases - call DMGetDimension(geomMesh,dimPlex,ierr); CHKERRA(ierr) !< dimension of mesh (2D or 3D) + call DMGetDimension(geomMesh,dimPlex,ierr) !< dimension of mesh (2D or 3D) + CHKERRA(ierr) nActiveFields = 1 allocate(solres(nActiveFields)) From 7371c421d4f5b03395fd9d01a7471415d0ef60bd Mon Sep 17 00:00:00 2001 From: Test User Date: Sat, 3 Apr 2021 22:22:58 +0200 Subject: [PATCH 10/10] [skip ci] updated version information after successful test of v3.0.0-alpha2-687-g857a990a0 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 0c9d33075..d816b70f2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v3.0.0-alpha2-673-g0c08c9753 +v3.0.0-alpha2-687-g857a990a0