anchor.diff:  if (GRD%var%missing) then
     if (GRD%var%missing_isnan) then
       if (isnan(F)) then
  -      F = zero
  +      F = spval
       else
         F = GRD%var%add_offset + GRD%var%scale_factor*F
       endif
     else
       if ((F.eq.GRD%var%missing_value)) then
  -      F = zero
  +      F = spval
       else
         F = GRD%var%add_offset + GRD%var%scale_factor*F
       endif
  
positive.code: ! ...
  ! =====================================================================
  ! ...
  function grid_read2D(GRD,layer,step) result(F)
  
  class(type_grid), intent(in)           :: GRD
  integer, intent(in), optional          :: layer 
  integer, intent(in), optional          :: step 
  real(dp), dimension(GRD%ni,GRD%nj)     :: F
  
  logical ZZ,TT
  integer k,l,err
  
  
  STATUS_ERROR = 0; STATUS_TEXT  = ""
  
negative.code: integer np
  integer ones(size(coords))
  real(dp) F1(1)
  real(dp) spval
  
  if (present(missing_value)) then
    spval = missing_value
  else
    spval = 0.0D0
  endif
  
  
  
  STATUS_ERROR = 0; STATUS_TEXT  = ""
  