OBJ_SURF Derived Type

type, public :: OBJ_SURF

C like surface object: header and heights

Note

Fortran surface object, adapted from ‘surffile.c’, ‘gwyddion’ software, Copyright (C) 2005 David Necas, Petr Klapetek.


Components

Type Visibility Attributes Name Initial
real(kind=C_FLOAT), public :: XOffset
real(kind=C_FLOAT), public :: YOffset
real(kind=C_FLOAT), public :: ZOffset
integer(kind=C_SHORT), public :: absolute
integer(kind=C_SHORT), public :: acquisition
character(kind=C_CHAR, len=1), public, dimension(128) :: client_zone
integer(kind=C_SHORT), public :: comment_size
integer(kind=C_SHORT), public :: day
integer(kind=C_SHORT), public :: dayof
real(kind=C_FLOAT), public :: dx
character(kind=C_CHAR, len=1), public, dimension( 16) :: dx_unit
real(kind=C_FLOAT), public :: dy
character(kind=C_CHAR, len=1), public, dimension( 16) :: dy_unit
real(kind=C_FLOAT), public :: dz
character(kind=C_CHAR, len=1), public, dimension( 16) :: dz_unit
integer(kind=C_SHORT), public :: format
integer(kind=C_SHORT), public :: hours
integer(kind=C_SHORT), public :: imprint
integer(kind=C_SHORT), public :: inversion
integer(kind=C_SHORT), public :: leveling
integer(kind=C_SHORT), public :: material_code
real(kind=C_FLOAT), public :: measurement_duration
integer(kind=C_SHORT), public :: minutes
integer(kind=C_SHORT), public :: month
integer(kind=C_SHORT), public :: nobjects
integer(kind=C_INT), public :: nofpoints
character(kind=C_CHAR, len=1), public, dimension( 30) :: object_name
character(kind=C_CHAR, len=1), public, dimension( 12) :: obsolete
character(kind=C_CHAR, len=1), public, dimension( 10) :: obsolete2
character(kind=C_CHAR, len=1), public, dimension( 30) :: operator_name
integer(kind=C_SHORT), public :: pointsize
integer(kind=C_SHORT), public :: private_size
integer(kind=C_SHORT), public :: range
character(kind=C_CHAR, len=1), public, dimension( 8) :: reserved
character(kind=C_CHAR, len=1), public, dimension( 34) :: reservedzone
integer(kind=C_SHORT), public :: seconds
character(kind=C_CHAR, len=1), public, dimension( 12) :: signature
integer(kind=C_SHORT), public :: special_points
integer(kind=C_SHORT), public :: type
integer(kind=C_INT), public, allocatable :: val(:)

heights

integer(kind=C_SHORT), public :: version
character(kind=C_CHAR, len=1), public, dimension( 16) :: xaxis
character(kind=C_CHAR, len=1), public, dimension( 16) :: xlength_unit
integer(kind=C_INT), public :: xres
real(kind=C_FLOAT), public :: xunit_ratio
character(kind=C_CHAR, len=1), public, dimension( 16) :: yaxis
integer(kind=C_SHORT), public :: year
character(kind=C_CHAR, len=1), public, dimension( 16) :: ylength_unit
integer(kind=C_INT), public :: yres
real(kind=C_FLOAT), public :: yunit_ratio
character(kind=C_CHAR, len=1), public, dimension( 16) :: zaxis
character(kind=C_CHAR, len=1), public, dimension( 16) :: zlength_unit
integer(kind=C_INT), public :: zmax
integer(kind=C_INT), public :: zmin
real(kind=C_FLOAT), public :: zunit_ratio

Source Code

type OBJ_SURF
   ! bytes below: 8+10+2*12+9*16+2*30+34+128 = 408
   character(kind=C_CHAR), dimension( 12) :: signature
   character(kind=C_CHAR), dimension( 16) :: xlength_unit
   character(kind=C_CHAR), dimension( 16) :: ylength_unit
   character(kind=C_CHAR), dimension( 16) :: zlength_unit
   character(kind=C_CHAR), dimension( 16) :: xaxis
   character(kind=C_CHAR), dimension( 16) :: yaxis
   character(kind=C_CHAR), dimension( 16) :: zaxis
   character(kind=C_CHAR), dimension( 16) :: dx_unit
   character(kind=C_CHAR), dimension( 16) :: dy_unit
   character(kind=C_CHAR), dimension( 16) :: dz_unit
   character(kind=C_CHAR), dimension( 30) :: object_name
   character(kind=C_CHAR), dimension( 30) :: operator_name
   character(kind=C_CHAR), dimension(128) :: client_zone
   character(kind=C_CHAR), dimension(  8) :: reserved
   character(kind=C_CHAR), dimension( 34) :: reservedzone
   character(kind=C_CHAR), dimension( 12) :: obsolete
   character(kind=C_CHAR), dimension( 10) :: obsolete2

   ! bytes below: 10*4 = 40
   real(kind=C_FLOAT) :: dx
   real(kind=C_FLOAT) :: dy
   real(kind=C_FLOAT) :: dz
   real(kind=C_FLOAT) :: xunit_ratio
   real(kind=C_FLOAT) :: yunit_ratio
   real(kind=C_FLOAT) :: zunit_ratio
   real(kind=C_FLOAT) :: XOffset
   real(kind=C_FLOAT) :: YOffset
   real(kind=C_FLOAT) :: ZOffset
   real(kind=C_FLOAT) :: measurement_duration

   ! bytes below: 5*4 = 20
   integer(kind=C_INT) :: zmin
   integer(kind=C_INT) :: zmax
   integer(kind=C_INT) :: xres
   integer(kind=C_INT) :: yres
   integer(kind=C_INT) :: nofpoints

   ! bytes below: 22*2 = 44
   integer(kind=C_SHORT) :: format
   integer(kind=C_SHORT) :: version
   integer(kind=C_SHORT) :: material_code
   integer(kind=C_SHORT) :: type
   integer(kind=C_SHORT) :: range
   integer(kind=C_SHORT) :: special_points
   integer(kind=C_SHORT) :: absolute
   integer(kind=C_SHORT) :: pointsize
   integer(kind=C_SHORT) :: imprint
   integer(kind=C_SHORT) :: inversion
   integer(kind=C_SHORT) :: leveling
   integer(kind=C_SHORT) :: seconds
   integer(kind=C_SHORT) :: minutes
   integer(kind=C_SHORT) :: hours
   integer(kind=C_SHORT) :: day
   integer(kind=C_SHORT) :: month
   integer(kind=C_SHORT) :: year
   integer(kind=C_SHORT) :: dayof
   integer(kind=C_SHORT) :: comment_size
   integer(kind=C_SHORT) :: private_size
   integer(kind=C_SHORT) :: nobjects
   integer(kind=C_SHORT) :: acquisition

   integer(kind=C_INT), allocatable :: val(:) !! *heights*
endtype OBJ_SURF