34 character(len=*),
intent(in) :: fname
35 integer,
intent(out) :: ncfileid
37 ncstatus = nf90_open(path=trim(adjustl(fname)),mode=nf90_nowrite,ncid=ncfileid)
39 write(0,fmt=
'(a)')
'error opening netcdf file '//trim(adjustl(fname))
48 character(len=*),
intent(in) :: fname
49 integer,
intent(in) :: ncfileid
52 write(0,fmt=
'(a)')
'error closing netcdf file '//trim(adjustl(fname))
59 integer,
intent(in) :: fileid
60 character(len=*),
intent(in) :: variable
61 integer,
intent(out) :: output
63 integer :: ncdimid, ierr
66 ncstatus = nf90_inq_dimid(fileid,trim(adjustl(variable)),ncdimid) ; ierr = ierr +
ncstatus
67 ncstatus = nf90_inquire_dimension(fileid,ncdimid,len=output) ; ierr = ierr +
ncstatus
69 write(0,*)
'Error reading dimension for '//trim(adjustl(variable))
70 write(0,*)
'ierr = ',ierr
81 integer,
intent(in) :: fileid, dim1
82 character(len=*),
intent(in) :: variable
83 real,
intent(inout),
dimension(dim1) :: output
85 integer :: ncvarid, ierr
88 ncstatus = nf90_inq_varid(fileid,trim(adjustl(variable)),ncvarid) ; ierr = ierr +
ncstatus
92 write(0,*)
'Error reading data for '//trim(adjustl(variable))
93 write(0,*)
'ierr = ',ierr
103 integer,
intent(in) :: fileid, dim1
104 character(len=*),
intent(in) :: variable
105 integer,
intent(inout),
dimension(dim1) :: output
107 integer :: ncvarid, ierr
110 ncstatus = nf90_inq_varid(fileid,trim(adjustl(variable)),ncvarid) ; ierr = ierr +
ncstatus
113 if ( ierr /= 0 )
then
114 write(0,*)
'Error reading data for '//trim(adjustl(variable))
115 write(0,*)
'ierr = ',ierr
125 integer,
intent(in) :: fileid, dim1
126 character(len=*),
intent(in) :: variable
127 character(len=*),
intent(inout),
dimension(dim1) :: output
129 integer :: ncvarid, ierr
132 ncstatus = nf90_inq_varid(fileid,trim(adjustl(variable)),ncvarid) ; ierr = ierr +
ncstatus
135 if ( ierr /= 0 )
then
136 write(0,*)
'Error reading data for '//trim(adjustl(variable))
137 write(0,*)
'ierr = ',ierr
146 character(len=*),
intent(in) :: fname
147 integer,
intent(out) :: ncfileid
151 ncstatus = nf90_create(path=trim(adjustl(fname)),cmode=nf90_netcdf4,ncid=ncfileid)
153 write(0,fmt=
'(a)')
'error creating netcdf file '//trim(adjustl(fname))
162 integer,
intent(in) :: fileid
163 character(len=*),
intent(in) :: variable
164 integer,
intent(in) :: input
165 integer,
intent(out) :: output
167 integer :: ncdimid, ierr
170 ncstatus = nf90_def_dim(fileid,trim(adjustl(variable)),input,ncdimid)
172 ncstatus = nf90_put_att(fileid, nf90_global, variable, input)
175 if ( ierr /= 0 )
then
176 write(0,*)
'Error defining dimension for '//trim(adjustl(variable))
177 write(0,*)
'ncstatus = ', ierr
188 integer,
intent(in) :: fileid
189 character(len=*),
intent(in) :: variable
190 integer,
dimension(:),
intent(in) :: dimids
191 integer,
intent(in) :: nctype
192 character(len=*),
intent(in),
optional :: attrib_name
193 character(len=*),
intent(in),
optional :: attrib
195 integer :: ncvarid, ierr
196 character(len=nstring) :: att_name
197 character(len=nstring) :: att
200 ncstatus = nf90_def_var(fileid,trim(adjustl(variable)),nctype,dimids,ncvarid)
202 if ( nctype == nf90_float )
then
205 else if ( nctype == nf90_int )
then
212 if (
present(attrib_name) ) att_name = attrib_name
213 if (
present(attrib ) ) att = attrib
214 if ( len_trim(att_name) > 0 .and. len_trim(att) > 0 )
then
215 ncstatus = nf90_put_att(fileid, ncvarid, trim(att_name), trim(att))
219 if ( ierr /= 0 )
then
220 write(0,*)
'Error defining var for '//trim(adjustl(variable))
221 write(0,*)
'ierr = ', ierr
230 integer,
intent(in) :: fileid
234 write(0,*)
'Error end defining for fileid = ', fileid
244 integer,
intent(in) :: fileid
245 character(len=*),
intent(in) :: variable
246 real,
dimension(:),
intent(in) :: input
248 integer :: ncvarid, ierr
251 ncstatus = nf90_inq_varid(fileid,trim(adjustl(variable)),ncvarid)
253 ncstatus = nf90_put_var(fileid,ncvarid,input)
256 if ( ierr /= 0 )
then
257 write(0,*)
'Error writing data for '//trim(adjustl(variable))
258 write(0,*)
'ierr = ',ierr
267 integer,
intent(in) :: fileid
268 character(len=*),
intent(in) :: variable
269 integer,
dimension(:),
intent(in) :: input
271 integer :: ncvarid, ierr
274 ncstatus = nf90_inq_varid(fileid,trim(adjustl(variable)),ncvarid)
276 ncstatus = nf90_put_var(fileid,ncvarid,input)
279 if ( ierr /= 0 )
then
280 write(0,*)
'Error writing data for '//trim(adjustl(variable))
281 write(0,*)
'ierr = ',ierr
290 integer,
intent(in) :: fileid
291 character(len=*),
intent(in) :: variable
292 character(len=*),
dimension(:),
intent(in) :: input
294 integer :: ncvarid, ierr
297 ncstatus = nf90_inq_varid(fileid,trim(adjustl(variable)),ncvarid)
299 ncstatus = nf90_put_var(fileid,ncvarid,input)
302 if ( ierr /= 0 )
then
303 write(0,*)
'Error writing data for '//trim(adjustl(variable))
304 write(0,*)
'ierr = ',ierr
integer(i_kind), parameter nstring
integer(i_kind), parameter missing_i
real(r_kind), parameter missing_r
subroutine put_netcdf_var_integer(fileid, variable, input)
subroutine, public close_netcdf(fname, ncfileid)
subroutine put_netcdf_var_real(fileid, variable, input)
subroutine, public get_netcdf_dims(fileid, variable, output)
subroutine get_netcdf_var_1d_real(fileid, variable, dim1, output)
subroutine, public def_netcdf_dims(fileid, variable, input, output)
subroutine, public open_netcdf_for_write(fname, ncfileid)
subroutine get_netcdf_var_1d_integer(fileid, variable, dim1, output)
subroutine, public def_netcdf_end(fileid)
subroutine, public open_netcdf(fname, ncfileid)
subroutine get_netcdf_var_1d_char(fileid, variable, dim1, output)
subroutine, public def_netcdf_var(fileid, variable, dimids, nctype, attrib_name, attrib)
subroutine put_netcdf_var_char(fileid, variable, input)