Loading bindings/Fortran/modules/adios2_attribute_data_mod.f90 +15 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ module adios2_attribute_data_mod interface adios2_attribute_data ! Single Value !module procedure adios2_attribute_data_string module procedure adios2_attribute_data_string module procedure adios2_attribute_data_real module procedure adios2_attribute_data_dp module procedure adios2_attribute_data_integer1 Loading @@ -37,6 +37,20 @@ module adios2_attribute_data_mod contains ! Single value subroutine adios2_attribute_data_string(data, attribute, ierr) character*(*), intent(out):: data type(adios2_attribute), intent(in):: attribute integer, intent(out):: ierr call adios2_attribute_check_type(attribute, adios2_type_string, & 'attribute_data', ierr) if (ierr == 0) then call adios2_attribute_value_f2c(data, attribute%f2c, ierr) end if end subroutine subroutine adios2_attribute_data_real(data, attribute, ierr) real, intent(out):: data type(adios2_attribute), intent(in):: attribute Loading testing/adios2/bindings/fortran/TestBPWriteReadAttributes.f90 +9 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ program TestBPWriteAttributes type(adios2_attribute), dimension(14) :: attributes, attributes_in integer :: ierr, i character(len=23):: iString_value integer(kind=1):: i8_value integer(kind=2):: i16_value integer(kind=4):: i32_value Loading Loading @@ -99,6 +100,7 @@ program TestBPWriteAttributes call adios2_open(bpReader, ioRead, 'fattr_types.bp', adios2_mode_read, ierr) call adios2_inquire_attribute(attributes_in(1), ioRead, 'att_String', ierr) call adios2_inquire_attribute(attributes_in(2), ioRead, 'att_i8', ierr) call adios2_inquire_attribute(attributes_in(3), ioRead, 'att_i16', ierr) call adios2_inquire_attribute(attributes_in(4), ioRead, 'att_i32', ierr) Loading @@ -106,6 +108,13 @@ program TestBPWriteAttributes call adios2_inquire_attribute(attributes_in(6), ioRead, 'att_r32', ierr) call adios2_inquire_attribute(attributes_in(7), ioRead, 'att_r64', ierr) if(attributes_in(1)%valid .eqv. .false.) stop 'attribute iString not found' if(attributes_in(1)%type /= adios2_type_string) stop 'attribute iString wrong type' if(attributes_in(1)%length /= 1) stop 'attribute iString lenght is not 1' if(attributes_in(1)%is_value .eqv. .false.) stop 'attribute iString must be value' call adios2_attribute_data( iString_value, attributes_in(1), ierr) if( iString_value /= 'ADIOS2 String attribute' ) stop 'attribute iString data error' if(attributes_in(2)%valid .eqv. .false.) stop 'attribute i8 not found' if(attributes_in(2)%type /= adios2_type_integer1) stop 'attribute i8 wrong type' if(attributes_in(2)%length /= 1) stop 'attribute i8 lenght is not 1' Loading Loading
bindings/Fortran/modules/adios2_attribute_data_mod.f90 +15 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ module adios2_attribute_data_mod interface adios2_attribute_data ! Single Value !module procedure adios2_attribute_data_string module procedure adios2_attribute_data_string module procedure adios2_attribute_data_real module procedure adios2_attribute_data_dp module procedure adios2_attribute_data_integer1 Loading @@ -37,6 +37,20 @@ module adios2_attribute_data_mod contains ! Single value subroutine adios2_attribute_data_string(data, attribute, ierr) character*(*), intent(out):: data type(adios2_attribute), intent(in):: attribute integer, intent(out):: ierr call adios2_attribute_check_type(attribute, adios2_type_string, & 'attribute_data', ierr) if (ierr == 0) then call adios2_attribute_value_f2c(data, attribute%f2c, ierr) end if end subroutine subroutine adios2_attribute_data_real(data, attribute, ierr) real, intent(out):: data type(adios2_attribute), intent(in):: attribute Loading
testing/adios2/bindings/fortran/TestBPWriteReadAttributes.f90 +9 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ program TestBPWriteAttributes type(adios2_attribute), dimension(14) :: attributes, attributes_in integer :: ierr, i character(len=23):: iString_value integer(kind=1):: i8_value integer(kind=2):: i16_value integer(kind=4):: i32_value Loading Loading @@ -99,6 +100,7 @@ program TestBPWriteAttributes call adios2_open(bpReader, ioRead, 'fattr_types.bp', adios2_mode_read, ierr) call adios2_inquire_attribute(attributes_in(1), ioRead, 'att_String', ierr) call adios2_inquire_attribute(attributes_in(2), ioRead, 'att_i8', ierr) call adios2_inquire_attribute(attributes_in(3), ioRead, 'att_i16', ierr) call adios2_inquire_attribute(attributes_in(4), ioRead, 'att_i32', ierr) Loading @@ -106,6 +108,13 @@ program TestBPWriteAttributes call adios2_inquire_attribute(attributes_in(6), ioRead, 'att_r32', ierr) call adios2_inquire_attribute(attributes_in(7), ioRead, 'att_r64', ierr) if(attributes_in(1)%valid .eqv. .false.) stop 'attribute iString not found' if(attributes_in(1)%type /= adios2_type_string) stop 'attribute iString wrong type' if(attributes_in(1)%length /= 1) stop 'attribute iString lenght is not 1' if(attributes_in(1)%is_value .eqv. .false.) stop 'attribute iString must be value' call adios2_attribute_data( iString_value, attributes_in(1), ierr) if( iString_value /= 'ADIOS2 String attribute' ) stop 'attribute iString data error' if(attributes_in(2)%valid .eqv. .false.) stop 'attribute i8 not found' if(attributes_in(2)%type /= adios2_type_integer1) stop 'attribute i8 wrong type' if(attributes_in(2)%length /= 1) stop 'attribute i8 lenght is not 1' Loading