gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
gtvarcreated.f90 File Reference

Create independent variable (dimension). More...

Go to the source code of this file.

Functions/Subroutines

subroutine gtvarcreated (var, url, length, xtype, long_name, overwrite, err)

Detailed Description

Create independent variable (dimension).

Author
Yasuhiro MORIKAWA, Eizi TOYODA

This subroutine is provided through gtdata_generic.

Definition in file gtvarcreated.f90.

Function/Subroutine Documentation

◆ gtvarcreated()

subroutine gtvarcreated ( type(gt_variable), intent(out) var,
character(len = *), intent(in) url,
integer, intent(in) length,
character(len = *), intent(in), optional xtype,
character(len = *), intent(in), optional long_name,
logical, intent(in), optional overwrite,
logical, intent(out), optional err )

Create dimension variable

Creates a variable of GT_VARIABLE type with itself as the dimension at location url with length length, and sets it to var. Like variables opened with Open, var must later be closed with Close.

Specifying length == 0 makes the variable an unlimited dimension. If xtype is omitted, it defaults to "float". Creation fails if the variable already exists, but continues by overwriting if overwrite == .true.. (Note: overwrite behavior is not yet guaranteed.) Omitting dims means setting a 0-dimensional variable.

Since dimension variables are often auto-generated, names are auto-generated for specifications lacking a variable name part.

If an error occurs during creation, outputs a message and terminates. If err is provided, returns .true. and program does not terminate.

Parameters
[out]varVariable handle
[in]urlVariable URL
[in]lengthDimension length (0 for unlimited)
[in]xtypeData type (optional, default "float")
[in]long_nameLong name attribute (optional)
[in]overwriteAllow overwrite (optional)
[out]errError flag (optional)

Definition at line 77 of file gtvarcreated.f90.

78 use dc_string, only: strhead
79 use gtdata_types, only: gt_variable
83 use gtdata_internal_map, only: map_create, vtb_class_netcdf, gtvar_dump
84 use dc_url, only: urlsplit, urlmerge
86 use dc_error, only: storeerror, dc_noerr
87 use dc_types, only: string
88 implicit none
89 type(GT_VARIABLE), intent(out):: var
90 character(len = *), intent(in):: url
91 integer, intent(in):: length
92 character(len = *), intent(in), optional:: xtype
93 character(len = *), intent(in), optional:: long_name
94 logical, intent(in), optional:: overwrite
95 logical, intent(out), optional:: err
96 character(len = STRING):: fnam, vnam, new_url, data_class
97 type(GD_NC_VARIABLE):: gdnc
98 integer :: stat, cause_i
99 character(len = *), parameter:: subname = "GTVarCreateD"
100 character(len = *), parameter:: version = &
101 & '$Name: $' // &
102 & '$Id: gtvarcreated.f90,v 1.5 2009-05-25 09:55:58 morikawa Exp $'
103continue
104 call beginsub(subname, 'url=<%c> length=%d', &
105 & c1=trim(url), i=(/length/), version=version)
106 stat = dc_noerr
107 cause_i = 0
108 data_class = ''
109 ! URL の検査
110 call urlsplit(url, file=fnam, var=vnam)
111 if (vnam == "") then
112 call gtdatatmpnam(file=fnam, base="dim", result=new_url)
113 else
114 new_url = url
115 endif
116 ! gdnc 形式が選択される場合は
117 call create(var=gdnc, url=new_url, length=length, xtype=xtype, &
118 & overwrite=overwrite, err=err)
119 if (present(long_name)) then
120 call put_attr(gdnc, 'long_name', long_name, err=err)
121 endif
122 call map_create(var, vtb_class_netcdf, gdnc%id, 1, (/length/), stat)
123 if (stat /= dc_noerr) then
124 cause_i = 1
125 goto 999
126 end if
127 call gtvar_dump(var)
128 data_class = 'netcdf'
129999 continue
130 call storeerror(stat, subname, err, cause_i=cause_i)
131 call endsub(subname, 'class=%c mapid=%d', &
132 & c1=trim(data_class), i=(/var%mapid/) )
Error handling module.
Definition dc_error.f90:454
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:891
integer, parameter, public dc_noerr
Error storage variables
Definition dc_error.f90:468
Handling character types.
Definition dc_string.f90:83
Debug tracing module.
Definition dc_trace.f90:150
subroutine, public dbgmessage(fmt, i, r, d, l, n, c1, c2, c3, ca)
Definition dc_trace.f90:680
subroutine, public beginsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca, version)
Definition dc_trace.f90:476
subroutine, public endsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca)
Definition dc_trace.f90:599
Provides kind type parameter values.
Definition dc_types.f90:55
integer, parameter, public string
Character length for string
Definition dc_types.f90:137
Variable URL string parser.
Definition dc_url.f90:61
subroutine, public map_create(var, class, cid, ndims, allcount, stat)

References dc_trace::beginsub(), dc_trace::dbgmessage(), dc_error::dc_noerr, dc_trace::endsub(), gtdata_internal_map::gtvar_dump(), gtdata_internal_map::map_create(), dc_error::storeerror(), and dc_types::string.

Here is the call graph for this function: