gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
gdncvarputnum.f90
Go to the documentation of this file.
1! -*- coding: utf-8; mode: f90 -*-
2!-------------------------------------------------------------------------------------
3! Copyright (c) 2000-2026 Gtool Development Group. All rights reserved.
4!-------------------------------------------------------------------------------------
50subroutine gdncvarputreal(var, start, count, stride, imap, siz, value, iostat)
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
85end subroutine gdncvarputreal
86
110subroutine gdncvarputdouble(var, start, count, stride, imap, siz, value, iostat)
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
145end subroutine gdncvarputdouble
146
170subroutine gdncvarputint(var, start, count, stride, imap, siz, value, iostat)
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
204end subroutine gdncvarputint
205
229subroutine gdncvarputchar(var, start, count, stride, imap, siz, value, iostat)
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
263end subroutine gdncvarputchar
264
subroutine gdncvarputchar(var, start, count, stride, imap, siz, value, iostat)
subroutine gdncvarputint(var, start, count, stride, imap, siz, value, iostat)
subroutine gdncvarputreal(var, start, count, stride, imap, siz, value, iostat)
subroutine gdncvarputdouble(var, start, count, stride, imap, siz, value, iostat)
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:680
Provides kind type parameter values.
Definition dc_types.f90:55
integer, parameter, public sp
Single Precision Real number.
Definition dc_types.f90:82
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:92
integer function, public vtable_lookup(var, entry)