gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
Functions/Subroutines
gdncvarputnum.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine gdncvarputreal (var, start, count, stride, imap, siz, value, iostat)
 
subroutine gdncvarputdouble (var, start, count, stride, imap, siz, value, iostat)
 
subroutine gdncvarputint (var, start, count, stride, imap, siz, value, iostat)
 
subroutine gdncvarputchar (var, start, count, stride, imap, siz, value, iostat)
 

Function/Subroutine Documentation

◆ gdncvarputchar()

subroutine gdncvarputchar ( type(gd_nc_variable), intent(in)  var,
integer, dimension(:), intent(in)  start,
integer, dimension(:), intent(in)  count,
integer, dimension(:), intent(in)  stride,
integer, dimension(:), intent(in)  imap,
integer, intent(in)  siz,
character(*), dimension(siz), intent(in)  value,
integer, intent(out)  iostat 
)

Put variable data (char type)

Writes data to a netCDF variable with array slicing support.

Parameters
[in]varVariable handle
[in]startStart indices for each dimension
[in]countCount of elements to write for each dimension
[in]strideStride (interval) for each dimension
[in]imapMemory mapping vector (see NetCDF manual NF_PUT_VARM_type)
[in]sizSize of value array
[in]valueData to write
[out]iostatI/O status (NF90_NOERR on success)

Definition at line 229 of file gdncvarputnum.f90.

232 use netcdf, only: nf90_noerr, nf90_einval, nf90_put_var
234 use dc_trace, only: dbgmessage
235 implicit none
236 type(GD_NC_VARIABLE), intent(in):: var
237 integer, intent(in):: start(:)
238 integer, intent(in):: count(:)
239 integer, intent(in):: stride(:)
240 integer, intent(in):: imap(:)
241 integer, intent(in):: siz
242 character(*), intent(in):: value(siz)
243 integer, intent(out):: iostat
244 integer:: ndims
245 type(GD_NC_VARIABLE_ENTRY):: ent
246 continue
247 iostat = vtable_lookup(var, ent)
248 if (iostat /= nf90_noerr) goto 999
249 ndims = 0
250 if (associated(ent%dimids)) ndims = size(ent%dimids)
251 if (min(size(start), size(count), size(stride), size(imap)) < ndims) then
252 iostat = nf90_einval
253 goto 999
254 endif
255 call dbgmessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", &
256 & i=(/ent%fileid, ent%varid, start, count, stride, imap/), &
257 & n=(/ndims, ndims, ndims, ndims/))
258 iostat = gdncfiledatamode(ent%fileid)
259 if (iostat /= nf90_noerr) return
260 iostat = nf90_put_var(ent%fileid, ent%varid, value, &
261 & start, count, stride, imap)
262999 continue
Debug tracing module.
Definition dc_trace.f90:150
subroutine, public dbgmessage(fmt, i, r, d, l, n, c1, c2, c3, ca)
Definition dc_trace.f90:661
integer function, public vtable_lookup(var, entry)

References dc_trace::dbgmessage(), and gtdata_netcdf_internal::vtable_lookup().

Here is the call graph for this function:

◆ gdncvarputdouble()

subroutine gdncvarputdouble ( type(gd_nc_variable), intent(in)  var,
integer, dimension(:), intent(in)  start,
integer, dimension(:), intent(in)  count,
integer, dimension(:), intent(in)  stride,
integer, dimension(:), intent(in)  imap,
integer, intent(in)  siz,
real(dp), dimension(siz), intent(in)  value,
integer, intent(out)  iostat 
)

Put variable data (double type)

Writes data to a netCDF variable with array slicing support.

Parameters
[in]varVariable handle
[in]startStart indices for each dimension
[in]countCount of elements to write for each dimension
[in]strideStride (interval) for each dimension
[in]imapMemory mapping vector (see NetCDF manual NF_PUT_VARM_type)
[in]sizSize of value array
[in]valueData to write
[out]iostatI/O status (NF90_NOERR on success)

Definition at line 110 of file gdncvarputnum.f90.

111 use dc_types, only: dp
114 use netcdf, only: nf90_noerr, nf90_einval, nf90_put_var
116 use dc_trace, only: dbgmessage
117 implicit none
118 type(GD_NC_VARIABLE), intent(in):: var
119 integer, intent(in):: start(:)
120 integer, intent(in):: count(:)
121 integer, intent(in):: stride(:)
122 integer, intent(in):: imap(:)
123 integer, intent(in):: siz
124 real(DP), intent(in):: value(siz)
125 integer, intent(out):: iostat
126 integer:: ndims
127 type(GD_NC_VARIABLE_ENTRY):: ent
128 continue
129 iostat = vtable_lookup(var, ent)
130 if (iostat /= nf90_noerr) goto 999
131 ndims = 0
132 if (associated(ent%dimids)) ndims = size(ent%dimids)
133 if (min(size(start), size(count), size(stride), size(imap)) < ndims) then
134 iostat = nf90_einval
135 goto 999
136 endif
137 call dbgmessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", &
138 & i=(/ent%fileid, ent%varid, start, count, stride, imap/), &
139 & n=(/ndims, ndims, ndims, ndims/))
140 iostat = gdncfiledatamode(ent%fileid)
141 if (iostat /= nf90_noerr) return
142 iostat = nf90_put_var(ent%fileid, ent%varid, value, &
143 & start, count, stride, imap)
144999 continue
Provides kind type parameter values.
Definition dc_types.f90:55
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:92

References dc_trace::dbgmessage(), dc_types::dp, and gtdata_netcdf_internal::vtable_lookup().

Here is the call graph for this function:

◆ gdncvarputint()

subroutine gdncvarputint ( type(gd_nc_variable), intent(in)  var,
integer, dimension(:), intent(in)  start,
integer, dimension(:), intent(in)  count,
integer, dimension(:), intent(in)  stride,
integer, dimension(:), intent(in)  imap,
integer, intent(in)  siz,
integer, dimension(siz), intent(in)  value,
integer, intent(out)  iostat 
)

Put variable data (int type)

Writes data to a netCDF variable with array slicing support.

Parameters
[in]varVariable handle
[in]startStart indices for each dimension
[in]countCount of elements to write for each dimension
[in]strideStride (interval) for each dimension
[in]imapMemory mapping vector (see NetCDF manual NF_PUT_VARM_type)
[in]sizSize of value array
[in]valueData to write
[out]iostatI/O status (NF90_NOERR on success)

Definition at line 170 of file gdncvarputnum.f90.

173 use netcdf, only: nf90_noerr, nf90_einval, nf90_put_var
175 use dc_trace, only: dbgmessage
176 implicit none
177 type(GD_NC_VARIABLE), intent(in):: var
178 integer, intent(in):: start(:)
179 integer, intent(in):: count(:)
180 integer, intent(in):: stride(:)
181 integer, intent(in):: imap(:)
182 integer, intent(in):: siz
183 integer, intent(in):: value(siz)
184 integer, intent(out):: iostat
185 integer:: ndims
186 type(GD_NC_VARIABLE_ENTRY):: ent
187 continue
188 iostat = vtable_lookup(var, ent)
189 if (iostat /= nf90_noerr) goto 999
190 ndims = 0
191 if (associated(ent%dimids)) ndims = size(ent%dimids)
192 if (min(size(start), size(count), size(stride), size(imap)) < ndims) then
193 iostat = nf90_einval
194 goto 999
195 endif
196 call dbgmessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", &
197 & i=(/ent%fileid, ent%varid, start, count, stride, imap/), &
198 & n=(/ndims, ndims, ndims, ndims/))
199 iostat = gdncfiledatamode(ent%fileid)
200 if (iostat /= nf90_noerr) return
201 iostat = nf90_put_var(ent%fileid, ent%varid, value, &
202 & start, count, stride, imap)
203999 continue

References dc_trace::dbgmessage(), and gtdata_netcdf_internal::vtable_lookup().

Here is the call graph for this function:

◆ gdncvarputreal()

subroutine gdncvarputreal ( type(gd_nc_variable), intent(in)  var,
integer, dimension(:), intent(in)  start,
integer, dimension(:), intent(in)  count,
integer, dimension(:), intent(in)  stride,
integer, dimension(:), intent(in)  imap,
integer, intent(in)  siz,
real(sp), dimension(siz), intent(in)  value,
integer, intent(out)  iostat 
)

Definition at line 50 of file gdncvarputnum.f90.

51 use dc_types, only: sp
54 use netcdf, only: nf90_noerr, nf90_einval, nf90_put_var
56 use dc_trace, only: dbgmessage
57 implicit none
58 type(GD_NC_VARIABLE), intent(in):: var
59 integer, intent(in):: start(:)
60 integer, intent(in):: count(:)
61 integer, intent(in):: stride(:)
62 integer, intent(in):: imap(:)
63 integer, intent(in):: siz
64 real(SP), intent(in):: value(siz)
65 integer, intent(out):: iostat
66 integer:: ndims
67 type(GD_NC_VARIABLE_ENTRY):: ent
68 continue
69 iostat = vtable_lookup(var, ent)
70 if (iostat /= nf90_noerr) goto 999
71 ndims = 0
72 if (associated(ent%dimids)) ndims = size(ent%dimids)
73 if (min(size(start), size(count), size(stride), size(imap)) < ndims) then
74 iostat = nf90_einval
75 goto 999
76 endif
77 call dbgmessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", &
78 & i=(/ent%fileid, ent%varid, start, count, stride, imap/), &
79 & n=(/ndims, ndims, ndims, ndims/))
80 iostat = gdncfiledatamode(ent%fileid)
81 if (iostat /= nf90_noerr) return
82 iostat = nf90_put_var(ent%fileid, ent%varid, value, &
83 & start, count, stride, imap)
84999 continue
integer, parameter, public sp
Single Precision Real number.
Definition dc_types.f90:82

References dc_trace::dbgmessage(), dc_types::sp, and gtdata_netcdf_internal::vtable_lookup().

Here is the call graph for this function: