Path: | gtdata/gtdata_netcdf/gdncvarputattrreal.f90 |
Last Update: | Mon May 25 18:51:59 +0900 2009 |
Copyright (C) GFD Dennou Club, 2000. All rights reserved
Subroutine : | |
var : | type(GD_NC_VARIABLE), intent(in) |
name : | character(len = *), intent(in) |
value(:) : | double precision, intent(in) |
err : | logical, intent(out), optional |
subroutine GDNcVarPutAttrDouble(var, name, value, err) use gtdata_netcdf_types, only: GD_NC_VARIABLE, GD_NC_VARIABLE_ENTRY use gtdata_netcdf_internal, only: vtable_lookup use gtdata_netcdf_file_generic, only: GDNcFileDefineMode use netcdf_f77, only: NF_PUT_ATT_DOUBLE, NF_NOERR, NF_DEL_ATT, NF_ENOTINDEFINE, NF_DOUBLE, NF_GLOBAL use dc_url, only: GT_PLUS use dc_error implicit none type(GD_NC_VARIABLE), intent(in):: var character(len = *), intent(in):: name double precision, intent(in):: value(:) logical, intent(out), optional:: err type(GD_NC_VARIABLE_ENTRY):: ent integer:: stat continue stat = vtable_lookup(var, ent) if (stat /= 0) goto 999 if (size(value) == 0) then if (name(1:1) == GT_PLUS) then stat = nf_del_att(ent%fileid, NF_GLOBAL, name=name(2:)) else stat = nf_del_att(ent%fileid, ent%varid, name=name) endif goto 999 endif stat = GDNcFileDefineMode(ent%fileid) if (stat /= NF_NOERR) goto 999 if (name(1:1) == GT_PLUS) then stat = nf_put_att_double(ent%fileid, NF_GLOBAL, name=name(2:), xtype=NF_DOUBLE, len=size(value), dvals=value) else stat = nf_put_att_double(ent%fileid, ent%varid, name=name, xtype=NF_DOUBLE, len=size(value), dvals=value) endif 999 continue call StoreError(stat, 'GDNcVarPutAttrDouble', err) end subroutine
Subroutine : | |
var : | type(GD_NC_VARIABLE), intent(in) |
name : | character(len = *), intent(in) |
value(:) : | real, intent(in) |
err : | logical, intent(out), optional |
subroutine GDNcVarPutAttrReal(var, name, value, err) use gtdata_netcdf_types, only: GD_NC_VARIABLE, GD_NC_VARIABLE_ENTRY use gtdata_netcdf_file_generic, only: GDNcFileDefineMode use gtdata_netcdf_internal, only: vtable_lookup use netcdf_f77, only: NF_PUT_ATT_REAL, NF_NOERR, NF_DEL_ATT, NF_ENOTINDEFINE, NF_FLOAT, NF_GLOBAL use dc_url, only: GT_PLUS use dc_error implicit none type(GD_NC_VARIABLE), intent(in):: var character(len = *), intent(in):: name real, intent(in):: value(:) logical, intent(out), optional:: err type(GD_NC_VARIABLE_ENTRY):: ent integer:: stat continue stat = vtable_lookup(var, ent) if (stat /= NF_NOERR) goto 999 if (size(value) == 0) then if (name(1:1) == GT_PLUS) then stat = nf_del_att(ent%fileid, NF_GLOBAL, name=name(2:)) else stat = nf_del_att(ent%fileid, ent%varid, name=name) endif goto 999 endif stat = GDNcFileDefineMode(ent%fileid) if (stat /= NF_NOERR) goto 999 if (name(1:1) == GT_PLUS) then stat = nf_put_att_real(ent%fileid, NF_GLOBAL, name=name(2:), xtype=NF_FLOAT, len=size(value), rvals=value) else stat = nf_put_att_real(ent%fileid, ent%varid, name=name, xtype=NF_FLOAT, len=size(value), rvals=value) endif 999 continue call StoreError(stat, 'GDNcVarPutAttrReal', err) end subroutine