14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 use dc_string, only: strhead
38 use gtdata_generic, only: gtdatatmpnam
43 use dc_trace, only: beginsub, endsub, dbgmessage
46 implicit none
47 type(GT_VARIABLE), intent(out):: var
48 character(len = *), intent(in):: url
49 integer, intent(in):: length
50 character(len = *), intent(in), optional:: xtype
51 character(len = *), intent(in), optional:: long_name
52 logical, intent(in), optional:: overwrite
53 logical, intent(out), optional:: err
54 character(len = STRING):: fnam, vnam, new_url, data_class
55 type(GD_NC_VARIABLE):: gdnc
56 integer :: stat, cause_i
57 character(len = *), parameter:: subname = "GTVarCreateD"
58 character(len = *), parameter:: version = &
59 & '$Name: $' // &
60 & '$Id: gtvarcreated.f90,v 1.5 2009-05-25 09:55:58 morikawa Exp $'
61continue
62 call beginsub(subname, 'url=<%c> length=%d', &
63 & c1=trim(url), i=(/length/), version=version)
65 cause_i = 0
66 data_class = ''
67
68 call urlsplit(url, file=fnam, var=vnam)
69 if (vnam == "") then
70 call gtdatatmpnam(file=fnam, base="dim", result=new_url)
71 else
72 new_url = url
73 endif
74
75 call create(var=gdnc, url=new_url, length=length, xtype=xtype, &
76 & overwrite=overwrite, err=err)
77 if (present(long_name)) then
78 call put_attr(gdnc,
'long_name', long_name, err=err)
79 endif
80 call map_create(var, vtb_class_netcdf, gdnc%id, 1, (/length/), stat)
82 cause_i = 1
83 goto 999
84 end if
86 data_class = 'netcdf'
87999 continue
88 call storeerror(stat, subname, err, cause_i=cause_i)
89 call endsub(subname, 'class=%c mapid=%d', &
90 & c1=trim(data_class), i=(/var%mapid/) )
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
subroutine, public map_create(var, class, cid, ndims, allcount, stat)
subroutine gtvar_dump(var)