57 integer,
intent(in):: dimord
58 logical,
intent(in),
optional:: count_compact
59 logical,
intent(out),
optional:: err
60 integer:: sclass, scid, ld, sndims, stat, udimord, idimord, cause_i
65 character(STRING) :: endsub_msg
66 character(len = *),
parameter:: subname =
"GTVarOpen-By-Dimord" 67 character(len = *),
parameter:: version = &
69 &
'$Id: gtvaropenbydimord.f90,v 1.5 2009-07-04 04:58:06 morikawa Exp $' 71 call beginsub(subname,
'var.mapid=%d dimord=%d ', &
72 & i=(/source_var%mapid, dimord/), version=version)
80 if (
present(err)) err = .false.
88 if (sndims <= 0 .or. dimord > sndims)
then 92 allocate(map_src(sndims))
100 call dbgmessage(
'count_compact=%y', l=(/cnt_compact/))
102 if (cnt_compact)
then 107 if (udimord <= 0 .or. udimord >
size(map_src))
then 112 idimord = map_src(udimord)%dimno
113 if (idimord < 1)
then 114 call gt_open(var, map_src(udimord)%url, err=err)
122 if (sclass == vtb_class_netcdf)
then 125 call map_create(var, vtb_class_netcdf, gdnc%id, 1, (/ld/), stat)
131 map_result(1)%offset = map_src(udimord)%offset
132 map_result(1)%step = map_src(udimord)%step
133 map_result(1)%allcount = map_src(udimord)%allcount
134 map_result(1)%start = map_src(udimord)%start
135 map_result(1)%count = map_src(udimord)%count
136 map_result(1)%stride = map_src(udimord)%stride
137 call map_set(var, map=map_result, stat=stat)
138 else if (sclass == vtb_class_memory)
then 146 endsub_msg = CPrintf(
'result_var=%d', i=(/var%mapid/))
148 call storeerror(stat, subname, cause_i=cause_i, err=err)
149 call endsub(subname,
'%c', c1=trim(endsub_msg))
subroutine map_dup(var, source_var)
logical function, public present_and_true(arg)
integer, parameter, public gt_efake
integer function dimord_skip_compact(dimord, map)
subroutine, public map_create(var, class, cid, ndims, allcount, stat)
subroutine map_set(var, map, stat)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
subroutine, public dbgmessage(fmt, i, r, d, L, n, c1, c2, c3, ca)
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Handling character types.
Provides kind type parameter values.
subroutine, public map_lookup(var, vid, map, ndims)
integer, parameter, public gt_enomoredims
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
subroutine, public var_class(var, class, cid)
integer, parameter, public string
Character length for string.