Loading...
Searching...
No Matches
gdncvarputnum.f90
Go to the documentation of this file.
1! -*- coding: utf-8; mode: f90 -*-
2!-------------------------------------------------------------------------------------
3! Copyright (c) 2000-2016 Gtool Development Group. All rights reserved.
4!-------------------------------------------------------------------------------------
5! ** Important**
6!
7! This file is generated from gdncvarputnum.erb by ERB included Ruby 2.3.1.
8! Please do not edit this file directly. @see "gdncvarputnum.erb"
9!-------------------------------------------------------------------------------------
10!
11!
12!= GD_NC_VARIABLES の出力
13!
14!= Put GD_NC_VARIABLES
15!
16! Authors:: Yasuhiro MORIKAWA, Eizi TOYODA
17! Version:: $Id: gdncvarputnum.rb2f90,v 1.3 2009-10-11 07:36:33 morikawa Exp $
18! Tag Name:: $Name: $
19! Copyright:: Copyright (C) GFD Dennou Club, 2000-2005. All rights reserved.
20! License:: See COPYRIGHT[link:../../COPYRIGHT]
21!
22subroutine gdncvarputreal(var, start, count, stride, imap, siz, value, iostat)
23 use dc_types, only: sp
26 use netcdf, only: nf90_noerr, nf90_einval, nf90_put_var
28 use dc_trace, only: dbgmessage
29 implicit none
30 type(gd_nc_variable), intent(in):: var
31 integer, intent(in):: start(:)
32 integer, intent(in):: count(:)
33 integer, intent(in):: stride(:)
34 integer, intent(in):: imap(:)
35 integer, intent(in):: siz
36 real(SP), intent(in):: value(siz)
37 integer, intent(out):: iostat
38 integer:: ndims
39 type(gd_nc_variable_entry):: ent
40 character(len = *), parameter:: subname = "GDNcVarPutReal"
41 continue
42 iostat = vtable_lookup(var, ent)
43 if (iostat /= nf90_noerr) goto 999
44 ndims = 0
45 if (associated(ent%dimids)) ndims = size(ent%dimids)
46 if (min(size(start), size(count), size(stride), size(imap)) < ndims) then
47 iostat = nf90_einval
48 goto 999
49 endif
50 call dbgmessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", &
51 & i=(/ent%fileid, ent%varid, start, count, stride, imap/), &
52 & n=(/ndims, ndims, ndims, ndims/))
53 iostat = gdncfiledatamode(ent%fileid)
54 if (iostat /= nf90_noerr) return
55 iostat = nf90_put_var(ent%fileid, ent%varid, value, &
56 & start, count, stride, imap)
57999 continue
58end subroutine gdncvarputreal
59
60subroutine gdncvarputdouble(var, start, count, stride, imap, siz, value, iostat)
61 use dc_types, only: dp
64 use netcdf, only: nf90_noerr, nf90_einval, nf90_put_var
66 use dc_trace, only: dbgmessage
67 implicit none
68 type(gd_nc_variable), intent(in):: var
69 integer, intent(in):: start(:)
70 integer, intent(in):: count(:)
71 integer, intent(in):: stride(:)
72 integer, intent(in):: imap(:)
73 integer, intent(in):: siz
74 real(DP), intent(in):: value(siz)
75 integer, intent(out):: iostat
76 integer:: ndims
77 type(gd_nc_variable_entry):: ent
78 character(len = *), parameter:: subname = "GDNcVarPutDouble"
79 continue
80 iostat = vtable_lookup(var, ent)
81 if (iostat /= nf90_noerr) goto 999
82 ndims = 0
83 if (associated(ent%dimids)) ndims = size(ent%dimids)
84 if (min(size(start), size(count), size(stride), size(imap)) < ndims) then
85 iostat = nf90_einval
86 goto 999
87 endif
88 call dbgmessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", &
89 & i=(/ent%fileid, ent%varid, start, count, stride, imap/), &
90 & n=(/ndims, ndims, ndims, ndims/))
91 iostat = gdncfiledatamode(ent%fileid)
92 if (iostat /= nf90_noerr) return
93 iostat = nf90_put_var(ent%fileid, ent%varid, value, &
94 & start, count, stride, imap)
95999 continue
96end subroutine gdncvarputdouble
97
98subroutine gdncvarputint(var, start, count, stride, imap, siz, value, iostat)
101 use netcdf, only: nf90_noerr, nf90_einval, nf90_put_var
103 use dc_trace, only: dbgmessage
104 implicit none
105 type(gd_nc_variable), intent(in):: var
106 integer, intent(in):: start(:)
107 integer, intent(in):: count(:)
108 integer, intent(in):: stride(:)
109 integer, intent(in):: imap(:)
110 integer, intent(in):: siz
111 integer, intent(in):: value(siz)
112 integer, intent(out):: iostat
113 integer:: ndims
114 type(gd_nc_variable_entry):: ent
115 character(len = *), parameter:: subname = "GDNcVarPutInt"
116 continue
117 iostat = vtable_lookup(var, ent)
118 if (iostat /= nf90_noerr) goto 999
119 ndims = 0
120 if (associated(ent%dimids)) ndims = size(ent%dimids)
121 if (min(size(start), size(count), size(stride), size(imap)) < ndims) then
122 iostat = nf90_einval
123 goto 999
124 endif
125 call dbgmessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", &
126 & i=(/ent%fileid, ent%varid, start, count, stride, imap/), &
127 & n=(/ndims, ndims, ndims, ndims/))
128 iostat = gdncfiledatamode(ent%fileid)
129 if (iostat /= nf90_noerr) return
130 iostat = nf90_put_var(ent%fileid, ent%varid, value, &
131 & start, count, stride, imap)
132999 continue
133end subroutine gdncvarputint
134
135subroutine gdncvarputchar(var, start, count, stride, imap, siz, value, iostat)
138 use netcdf, only: nf90_noerr, nf90_einval, nf90_put_var
140 use dc_trace, only: dbgmessage
141 implicit none
142 type(gd_nc_variable), intent(in):: var
143 integer, intent(in):: start(:)
144 integer, intent(in):: count(:)
145 integer, intent(in):: stride(:)
146 integer, intent(in):: imap(:)
147 integer, intent(in):: siz
148 character(*), intent(in):: value(siz)
149 integer, intent(out):: iostat
150 integer:: ndims
151 type(gd_nc_variable_entry):: ent
152 character(len = *), parameter:: subname = "GDNcVarPutChar"
153 continue
154 iostat = vtable_lookup(var, ent)
155 if (iostat /= nf90_noerr) goto 999
156 ndims = 0
157 if (associated(ent%dimids)) ndims = size(ent%dimids)
158 if (min(size(start), size(count), size(stride), size(imap)) < ndims) then
159 iostat = nf90_einval
160 goto 999
161 endif
162 call dbgmessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", &
163 & i=(/ent%fileid, ent%varid, start, count, stride, imap/), &
164 & n=(/ndims, ndims, ndims, ndims/))
165 iostat = gdncfiledatamode(ent%fileid)
166 if (iostat /= nf90_noerr) return
167 iostat = nf90_put_var(ent%fileid, ent%varid, value, &
168 & start, count, stride, imap)
169999 continue
170end subroutine gdncvarputchar
171
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)
Provides kind type parameter values.
Definition dc_types.f90:49
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:83
integer, parameter, public sp
Single Precision Real number.
Definition dc_types.f90:73
integer function, public vtable_lookup(var, entry)