anvarputnum.f90

Path: src/anvarputnum.f90
Last Update: Thu Sep 08 22:21:48 JST 2005
    Copyright (C) GFD Dennou Club, 2000-2005. All rights reserved.

Put AN_VARIABLES

This file is created by "anvarputtype.m4" by m4 command using "intrinsic_types.m4". Don‘t edit each files directly.

Methods

Included Modules

dc_types an_types an_vartable netcdf_f77 an_file dc_trace

Public Instance methods

var :type(AN_VARIABLE), intent(in)
start(:) :integer(INTK), intent(in)
count(:) :integer(INTK), intent(in)
stride(:) :integer(INTK), intent(in)
imap(:) :integer(INTK), intent(in)
siz :integer(INTK), intent(in)
value(siz) :real(DP), intent(in)
iostat :integer(INTK), intent(out)

[Source]




subroutine ANVarPutDouble(var, start, count, stride, imap, siz, value, iostat)

    implicit none
    type(AN_VARIABLE), intent(in):: var
    integer(INTK),           intent(in):: start(:)
    integer(INTK),           intent(in):: count(:)
    integer(INTK),           intent(in):: stride(:)
    integer(INTK),           intent(in):: imap(:)
    integer(INTK),           intent(in):: siz
    real(DP), intent(in):: value(siz)
    integer(INTK), intent(out):: iostat
    integer(INTK):: ndims
    type(an_variable_entry):: ent
    character(len = *), parameter:: subname = "ANVarPutDouble"
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 = anfiledatamode(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 ANVarPutDouble
var :type(AN_VARIABLE), intent(in)
start(:) :integer(INTK), intent(in)
count(:) :integer(INTK), intent(in)
stride(:) :integer(INTK), intent(in)
imap(:) :integer(INTK), intent(in)
siz :integer(INTK), intent(in)
value(siz) :real(SP), intent(in)
iostat :integer(INTK), intent(out)

[Source]

subroutine ANVarPutReal(var, start, count, stride, imap, siz, value, iostat)

    implicit none
    type(AN_VARIABLE), intent(in):: var
    integer(INTK),           intent(in):: start(:)
    integer(INTK),           intent(in):: count(:)
    integer(INTK),           intent(in):: stride(:)
    integer(INTK),           intent(in):: imap(:)
    integer(INTK),           intent(in):: siz
    real(SP), intent(in):: value(siz)
    integer(INTK), intent(out):: iostat
    integer(INTK):: ndims
    type(an_variable_entry):: ent
    character(len = *), parameter:: subname = "ANVarPutReal"
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 = anfiledatamode(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 ANVarPutReal

[Validate]