Path: | gtdata/gtdata_netcdf/gdncvarputnum.f90 |
Last Update: | Mon May 25 18:51:59 +0900 2009 |
Authors: | Yasuhiro MORIKAWA, Eizi TOYODA |
Version: | $Id: gdncvarputnum.f90,v 1.2 2009-05-25 09:51:59 morikawa Exp $ |
Tag Name: | $Name: gtool5-20090729 $ |
Copyright: | Copyright (C) GFD Dennou Club, 2000-2005. All rights reserved. |
License: | See COPYRIGHT |
Subroutine : | |
var : | type(GD_NC_VARIABLE), intent(in) |
start(:) : | integer, intent(in) |
count(:) : | integer, intent(in) |
stride(:) : | integer, intent(in) |
imap(:) : | integer, intent(in) |
siz : | integer, intent(in) |
value(siz) : | real(DP), intent(in) |
iostat : | integer, intent(out) |
subroutine GDNcVarPutDouble(var, start, count, stride, imap, siz, value, iostat) use dc_types, only: DP use gtdata_netcdf_types, only: GD_NC_VARIABLE use gtdata_netcdf_internal, only: GD_NC_VARIABLE_ENTRY, vtable_lookup use netcdf_f77, only: nf_noerr, nf_einval, nf_put_varm_Double use gtdata_netcdf_file_generic, only: GDNcFileDataMode use dc_trace, only: BeginSub, EndSub, DbgMessage implicit none type(GD_NC_VARIABLE), intent(in):: var integer, intent(in):: start(:) integer, intent(in):: count(:) integer, intent(in):: stride(:) integer, intent(in):: imap(:) integer, intent(in):: siz real(DP), intent(in):: value(siz) integer, intent(out):: iostat integer:: ndims type(GD_NC_VARIABLE_ENTRY):: ent character(len = *), parameter:: subname = "GDNcVarPutDouble" continue call BeginSub(subname) iostat = vtable_lookup(var, ent) if (iostat /= nf_noerr) goto 999 ndims = 0 if (associated(ent%dimids)) ndims = size(ent%dimids) if (min(size(start), size(count), size(stride), size(imap)) < ndims) then iostat = nf_einval goto 999 endif call DbgMessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", i=(/ent%fileid, ent%varid, start, count, stride, imap/), n=(/ndims, ndims, ndims, ndims/)) iostat = GDNcFileDataMode(ent%fileid) if (iostat /= nf_noerr) return iostat = nf_put_varm_Double(ent%fileid, ent%varid, start, count, stride, imap, value) 999 continue call EndSub(subname, "iostat=%d", i=(/iostat/)) end subroutine GDNcVarPutDouble
Subroutine : | |
var : | type(GD_NC_VARIABLE), intent(in) |
start(:) : | integer, intent(in) |
count(:) : | integer, intent(in) |
stride(:) : | integer, intent(in) |
imap(:) : | integer, intent(in) |
siz : | integer, intent(in) |
value(siz) : | integer, intent(in) |
iostat : | integer, intent(out) |
subroutine GDNcVarPutInt(var, start, count, stride, imap, siz, value, iostat) use dc_types, only: DP use gtdata_netcdf_types, only: GD_NC_VARIABLE use gtdata_netcdf_internal, only: GD_NC_VARIABLE_ENTRY, vtable_lookup use netcdf_f77, only: nf_noerr, nf_einval, nf_put_varm_Int use gtdata_netcdf_file_generic, only: GDNcFileDataMode use dc_trace, only: BeginSub, EndSub, DbgMessage implicit none type(GD_NC_VARIABLE), intent(in):: var integer, intent(in):: start(:) integer, intent(in):: count(:) integer, intent(in):: stride(:) integer, intent(in):: imap(:) integer, intent(in):: siz integer, intent(in):: value(siz) integer, intent(out):: iostat integer:: ndims type(GD_NC_VARIABLE_ENTRY):: ent character(len = *), parameter:: subname = "GDNcVarPutInt" continue call BeginSub(subname) iostat = vtable_lookup(var, ent) if (iostat /= nf_noerr) goto 999 ndims = 0 if (associated(ent%dimids)) ndims = size(ent%dimids) if (min(size(start), size(count), size(stride), size(imap)) < ndims) then iostat = nf_einval goto 999 endif call DbgMessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", i=(/ent%fileid, ent%varid, start, count, stride, imap/), n=(/ndims, ndims, ndims, ndims/)) iostat = GDNcFileDataMode(ent%fileid) if (iostat /= nf_noerr) return iostat = nf_put_varm_Int(ent%fileid, ent%varid, start, count, stride, imap, value) 999 continue call EndSub(subname, "iostat=%d", i=(/iostat/)) end subroutine GDNcVarPutInt
Subroutine : | |
var : | type(GD_NC_VARIABLE), intent(in) |
start(:) : | integer, intent(in) |
count(:) : | integer, intent(in) |
stride(:) : | integer, intent(in) |
imap(:) : | integer, intent(in) |
siz : | integer, intent(in) |
value(siz) : | real, intent(in) |
iostat : | integer, intent(out) |
subroutine GDNcVarPutReal(var, start, count, stride, imap, siz, value, iostat) use dc_types, only: DP use gtdata_netcdf_types, only: GD_NC_VARIABLE use gtdata_netcdf_internal, only: GD_NC_VARIABLE_ENTRY, vtable_lookup use netcdf_f77, only: nf_noerr, nf_einval, nf_put_varm_Real use gtdata_netcdf_file_generic, only: GDNcFileDataMode use dc_trace, only: BeginSub, EndSub, DbgMessage implicit none type(GD_NC_VARIABLE), intent(in):: var integer, intent(in):: start(:) integer, intent(in):: count(:) integer, intent(in):: stride(:) integer, intent(in):: imap(:) integer, intent(in):: siz real, intent(in):: value(siz) integer, intent(out):: iostat integer:: ndims type(GD_NC_VARIABLE_ENTRY):: ent character(len = *), parameter:: subname = "GDNcVarPutReal" continue call BeginSub(subname) iostat = vtable_lookup(var, ent) if (iostat /= nf_noerr) goto 999 ndims = 0 if (associated(ent%dimids)) ndims = size(ent%dimids) if (min(size(start), size(count), size(stride), size(imap)) < ndims) then iostat = nf_einval goto 999 endif call DbgMessage("f=%d v=%d sta=%*d c=%*d str=%*d imap=%*d", i=(/ent%fileid, ent%varid, start, count, stride, imap/), n=(/ndims, ndims, ndims, ndims/)) iostat = GDNcFileDataMode(ent%fileid) if (iostat /= nf_noerr) return iostat = nf_put_varm_Real(ent%fileid, ent%varid, start, count, stride, imap, value) 999 continue call EndSub(subname, "iostat=%d", i=(/iostat/)) end subroutine GDNcVarPutReal