Loading...
Searching...
No Matches
gtvargetnum.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine gtvargetdouble (var, value, nvalue, err)
subroutine gtvargetreal (var, value, nvalue, err)
subroutine gtvargetint (var, value, nvalue, err)

Function/Subroutine Documentation

◆ gtvargetdouble()

subroutine gtvargetdouble ( type(gt_variable), intent(in) var,
real(dp), dimension(*), intent(out) value,
integer, intent(in) nvalue,
logical, intent(out), optional err )

Definition at line 41 of file gtvargetnum.f90.

42 use gtdata_types, only: gt_variable
43 use gtdata_internal_map, only: &
44 & var_class, &
45 & vtb_class_netcdf, &
48 use gtdata_netcdf_generic, only: get
50 use dc_types, only: string, dp
52 implicit none
53 type(GT_VARIABLE), intent(in) :: var
54 real(DP), intent(out) :: value(*)
55 integer, intent(in) :: nvalue
56 logical, intent(out), optional :: err
57 integer :: class, cid, stat
58 integer , pointer :: specs(:, :)
59 character(STRING):: cause_c
60 character(len = *), parameter:: subname = 'GTVarGetDouble'
61 continue
62 call var_class(var, class, cid)
63 stat = dc_noerr
64 cause_c = ''
65 if (nvalue < 1) then
66 stat = dc_enegative
67 cause_c = 'nvalue'
68 goto 999
69 end if
70 call gtvar_dump(var)
71 call map_to_internal_specs(var, specs)
72 if (class == vtb_class_netcdf) then
73 call get(gd_nc_variable(cid), start=specs(:, 1), count=specs(:, 2), &
74 & stride=specs(:, 3), imap=specs(:, 4), siz=nvalue, value=value, &
75 & iostat=stat)
76 else
77 stat = gt_efake
78 endif
79 if (associated(specs)) deallocate(specs)
80999 continue
81 call storeerror(stat, subname, cause_c = cause_c, err = err)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:830
integer, parameter, public gt_efake
Definition dc_error.f90:523
integer, parameter, public dc_noerr
Definition dc_error.f90:509
integer, parameter, public dc_enegative
Definition dc_error.f90:568
Provides kind type parameter values.
Definition dc_types.f90:49
integer, parameter, public string
Character length for string
Definition dc_types.f90:118
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:83
subroutine, public map_to_internal_specs(var, specs, ndims)
subroutine, public var_class(var, class, cid)

References dc_error::dc_enegative, dc_error::dc_noerr, dc_types::dp, dc_error::gt_efake, gtdata_internal_map::gtvar_dump(), gtdata_internal_map::map_to_internal_specs(), dc_error::storeerror(), dc_types::string, and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetint()

subroutine gtvargetint ( type(gt_variable), intent(in) var,
integer, dimension(*), intent(out) value,
integer, intent(in) nvalue,
logical, intent(out), optional err )

Definition at line 127 of file gtvargetnum.f90.

128 use gtdata_types, only: gt_variable
129 use gtdata_internal_map, only: &
130 & var_class, &
131 & vtb_class_netcdf, &
133 & gtvar_dump
134 use gtdata_netcdf_generic, only: get
136 use dc_types, only: string
138 implicit none
139 type(GT_VARIABLE), intent(in) :: var
140 integer, intent(out) :: value(*)
141 integer, intent(in) :: nvalue
142 logical, intent(out), optional :: err
143 integer :: class, cid, stat
144 integer , pointer :: specs(:, :)
145 character(STRING):: cause_c
146 character(len = *), parameter:: subname = 'GTVarGetDouble'
147 continue
148 call var_class(var, class, cid)
149 stat = dc_noerr
150 cause_c = ''
151 if (nvalue < 1) then
152 stat = dc_enegative
153 cause_c = 'nvalue'
154 goto 999
155 end if
156 call gtvar_dump(var)
157 call map_to_internal_specs(var, specs)
158 if (class == vtb_class_netcdf) then
159 call get(gd_nc_variable(cid), start=specs(:, 1), count=specs(:, 2), &
160 & stride=specs(:, 3), imap=specs(:, 4), siz=nvalue, value=value, &
161 & iostat=stat)
162 else
163 stat = gt_efake
164 endif
165 if (associated(specs)) deallocate(specs)
166999 continue
167 call storeerror(stat, subname, cause_c = cause_c, err = err)

References dc_error::dc_enegative, dc_error::dc_noerr, dc_error::gt_efake, gtdata_internal_map::gtvar_dump(), gtdata_internal_map::map_to_internal_specs(), dc_error::storeerror(), dc_types::string, and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetreal()

subroutine gtvargetreal ( type(gt_variable), intent(in) var,
real(sp), dimension(*), intent(out) value,
integer, intent(in) nvalue,
logical, intent(out), optional err )

Definition at line 84 of file gtvargetnum.f90.

85 use gtdata_types, only: gt_variable
86 use gtdata_internal_map, only: &
87 & var_class, &
88 & vtb_class_netcdf, &
91 use gtdata_netcdf_generic, only: get
93 use dc_types, only: string ,sp
95 implicit none
96 type(GT_VARIABLE), intent(in) :: var
97 real(SP), intent(out) :: value(*)
98 integer, intent(in) :: nvalue
99 logical, intent(out), optional :: err
100 integer :: class, cid, stat
101 integer , pointer :: specs(:, :)
102 character(STRING):: cause_c
103 character(len = *), parameter:: subname = 'GTVarGetDouble'
104 continue
105 call var_class(var, class, cid)
106 stat = dc_noerr
107 cause_c = ''
108 if (nvalue < 1) then
109 stat = dc_enegative
110 cause_c = 'nvalue'
111 goto 999
112 end if
113 call gtvar_dump(var)
114 call map_to_internal_specs(var, specs)
115 if (class == vtb_class_netcdf) then
116 call get(gd_nc_variable(cid), start=specs(:, 1), count=specs(:, 2), &
117 & stride=specs(:, 3), imap=specs(:, 4), siz=nvalue, value=value, &
118 & iostat=stat)
119 else
120 stat = gt_efake
121 endif
122 if (associated(specs)) deallocate(specs)
123999 continue
124 call storeerror(stat, subname, cause_c = cause_c, err = err)
integer, parameter, public sp
Single Precision Real number.
Definition dc_types.f90:73

References dc_error::dc_enegative, dc_error::dc_noerr, dc_error::gt_efake, gtdata_internal_map::gtvar_dump(), gtdata_internal_map::map_to_internal_specs(), dc_types::sp, dc_error::storeerror(), dc_types::string, and gtdata_internal_map::var_class().

Here is the call graph for this function: