Skip to content

Commit

Permalink
Enable missing value (_FillValue) handling for imports
Browse files Browse the repository at this point in the history
This update also include minor changes to how fname set in the metadata
utilities file.

Signed-off-by: Lizzie Lundgren <elundgren@seas.harvard.edu>
  • Loading branch information
lizziel committed May 16, 2022
1 parent becda42 commit 930b556
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 25 deletions.
44 changes: 22 additions & 22 deletions base/FileMetadataUtilities.F90
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ function var_get_missing_value(this,var_name,rc) result(missing_value)
integer, optional, intent(out) :: rc

integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
type(Variable), pointer :: var

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_variable(var_name,_RC)
_ASSERT(associated(var),"no variable named "//var_name//" in "//fname)
! check _FillValue, we could do more, not sure what to do here like also check for missing_value ...
Expand All @@ -81,10 +81,10 @@ logical function var_has_missing_value(this,var_name,rc)
integer, optional, intent(out) :: rc

integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
type(Variable), pointer :: var

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_variable(var_name,_RC)
_ASSERT(associated(var),"no variable named "//var_name//" in "//fname)
var_has_missing_value = var%is_attribute_present("_FillValue")
Expand All @@ -99,10 +99,10 @@ logical function var_has_attr(this,var_name,attr_name,rc)
integer, optional, intent(out) :: rc

integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
type(Variable), pointer :: var

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_variable(var_name,_RC)
_ASSERT(associated(var),"no variable named "//var_name//" in "//fname)
var_has_attr = var%is_attribute_present(attr_name)
Expand All @@ -119,12 +119,12 @@ function get_var_attr_real32(this,var_name,attr_name,rc) result(attr_real32)
real(REAL32) :: tmp(1)
real(REAL64) :: tmpd(1)
integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
type(Attribute), pointer :: attr
type(Variable), pointer :: var
class(*), pointer :: attr_val(:)

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_variable(var_name,_RC)
_ASSERT(associated(var),"no variable named "//var_name//" in "//fname)
attr => var%get_attribute(attr_name,_RC)
Expand Down Expand Up @@ -153,12 +153,12 @@ function get_var_attr_real64(this,var_name,attr_name,rc) result(attr_real64)

real(REAL64) :: tmp(1)
integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
type(Attribute), pointer :: attr
type(Variable), pointer :: var
class(*), pointer :: attr_val(:)

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_variable(var_name,_RC)
_ASSERT(associated(var),"no variable named "//var_name//" in "//fname)
attr => var%get_attribute(attr_name,_RC)
Expand All @@ -184,12 +184,12 @@ function get_var_attr_int32(this,var_name,attr_name,rc) result(attr_int32)

integer(INT32) :: tmp(1)
integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
type(Attribute), pointer :: attr
type(Variable), pointer :: var
class(*), pointer :: attr_val(:)

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_variable(var_name,_RC)
_ASSERT(associated(var),"no variable named "//var_name//" in "//fname)
attr => var%get_attribute(attr_name,_RC)
Expand All @@ -215,12 +215,12 @@ function get_var_attr_int64(this,var_name,attr_name,rc) result(attr_int64)

integer(INT64) :: tmp(1)
integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
type(Attribute), pointer :: attr
type(Variable), pointer :: var
class(*), pointer :: attr_val(:)

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_variable(var_name,_RC)
_ASSERT(associated(var),"no variable named "//var_name//" in "//fname)
attr => var%get_attribute(attr_name,_RC)
Expand All @@ -245,12 +245,12 @@ function get_var_attr_string(this,var_name,attr_name,rc) result(attr_string)
integer, optional, intent(out) :: rc

integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
type(Attribute), pointer :: attr
type(Variable), pointer :: var
class(*), pointer :: attr_val

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_variable(var_name,_RC)
_ASSERT(associated(var),"no variable named "//var_name//" in "//fname)
attr => var%get_attribute(attr_name,_RC)
Expand Down Expand Up @@ -281,7 +281,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour,
integer, optional, intent(out) :: rc

integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
class(CoordinateVariable), pointer :: var
type(Attribute), pointer :: attr
class(*), pointer :: pTimeUnits
Expand All @@ -299,7 +299,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour,
real(REAL64), allocatable :: tr_r64(:)
type(ESMF_TimeInterval) :: tint

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_coordinate_variable('time',rc=status)
_VERIFY(status)
attr => var%get_attribute('units')
Expand Down Expand Up @@ -462,15 +462,15 @@ function get_variable_attribute(this,var_name,attr_name,rc) result(units)
character(len=*), intent(in) :: attr_name
integer, optional, intent(out) :: rc

character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
character(len=:), pointer :: units
type(Attribute), pointer :: attr => null()
class(Variable), pointer :: var => null()
class(*), pointer :: vunits
logical :: isPresent
integer :: status

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_variable(var_name,rc=status)
_VERIFY(status)
isPresent = var%is_attribute_present(trim(attr_name))
Expand Down Expand Up @@ -499,14 +499,14 @@ subroutine get_coordinate_info(this,coordinate_name,coordSize,coordUnits,coords,
integer, optional, intent(out) :: rc

integer :: status
character(len=ESMF_MAXSTR) :: fname
character(:), allocatable :: fname
class(CoordinateVariable), pointer :: var
type(Attribute), pointer :: attr
character(len=:), pointer :: vdim
class(*), pointer :: coordUnitPtr
class(*), pointer :: ptr(:)

fname = get_file_name(this,_RC)
fname = this%get_file_name(_RC)
var => this%get_coordinate_variable(trim(coordinate_name),rc=status)
_VERIFY(status)

Expand Down
6 changes: 3 additions & 3 deletions griddedio/GriddedIO.F90
Original file line number Diff line number Diff line change
Expand Up @@ -975,9 +975,9 @@ subroutine request_data_from_file(this,filename,timeindex,rc)
call ESMF_FieldGet(output_field,rank=rank,rc=status)
_VERIFY(status)
missing_value = MAPL_UNDEF
!ewl if (metadata%var_has_missing_value(trim(names(i)))) then
!ewl missing_value = metadata%var_get_missing_value(trim(names(i)),_RC)
!ewl end if
if (metadata%var_has_missing_value(trim(names(i)))) then
missing_value = metadata%var_get_missing_value(trim(names(i)),_RC)
end if
if (rank==2) then
input_fields(i) = ESMF_FieldCreate(filegrid,typekind=ESMF_TYPEKIND_R4,gridToFieldMap=[1,2],name=trim(names(i)),rc=status)
_VERIFY(status)
Expand Down

0 comments on commit 930b556

Please sign in to comment.