Toggle navigation
Gtool Project
地球流体電脳倶楽部
dcmodel プロジェクト
SIGEN
English
gtdata
gtdata_memory
gdmemvarattrget.f90
Go to the documentation of this file.
1
subroutine
gdmemvarattrget
(var, name, value, err)
2
use
gtdata_memory_types
, only
:
gd_mem_variable
,
gd_mem_variable_entry
,
gd_mem_attr_chain
3
use
gtdata_memory_internal
, only
:
memtab_lookup
4
use
dc_error
, only
:
storeerror
5
use
netcdf
, only
: nf90_enotatt, nf90_noerr
6
type
(
gd_mem_variable
),
intent(in)
:: var
7
character(len = *)
,
intent(in)
:: name
8
character(len = *)
,
intent(out)
:: value
9
logical
,
intent(out)
,
optional
:: err
10
type
(
gd_mem_variable_entry
),
pointer
:: ent
11
type
(
gd_mem_attr_chain
),
pointer
:: p
12
integer
:: i, stat
13
stat =
memtab_lookup
(var, ent)
14
if
(stat == nf90_noerr)
then
15
if
(
associated
(ent%current))
then
16
p => ent%current
17
if
(p%name == name)
goto
100
18
endif
19
p => ent%attr
20
do
21
if
(.not.
associated
(p))
exit
22
if
(p%name == name)
goto
100
23
p => p%next
24
enddo
25
stat = nf90_enotatt
26
endif
27
call
storeerror
(stat,
"GDMemVarAttrGet"
, err, cause_c=name)
28
return
29
30
100
continue
31
if
(
associated
(p%cbuf))
then
32
do
, i = 1, len(
value
)
33
value(i:i) = p%cbuf(i)
34
enddo
35
else
36
value
=
""
37
endif
38
39
end subroutine
gdmemvarattrget
dc_error
Definition:
dc_error.f90:11
gtdata_memory_types::gd_mem_variable
Definition:
gtdata_memory_types.f90:29
gtdata_memory_types::gd_mem_attr_chain
Definition:
gtdata_memory_types.f90:15
dc_error::storeerror
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition:
dc_error.f90:830
gtdata_memory_internal
Definition:
gtdata_memory_internal.f90:10
gtdata_memory_types
Definition:
gtdata_memory_types.f90:9
gtdata_memory_internal::memtab_lookup
Definition:
gtdata_memory_internal.f90:31
gtdata_memory_types::gd_mem_variable_entry
Definition:
gtdata_memory_types.f90:21
gdmemvarattrget
subroutine gdmemvarattrget(var, name, value, err)
Definition:
gdmemvarattrget.f90:2