Toggle navigation
Gtool Project
地球流体電脳倶楽部
dcmodel プロジェクト
SIGEN
English
gtdata
gtdata_memory
gdmemvarattradd.f90
Go to the documentation of this file.
1
subroutine
gdmemvarattradd
(var, attrname, attrval)
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
netcdf
, only
: nf90_noerr, nf90_enotatt
5
type
(
gd_mem_variable
),
intent(in)
:: var
6
character(*)
,
intent(in)
:: attrname
7
character(*)
,
intent(in)
:: attrval
8
type
(
gd_mem_variable_entry
),
pointer
:: ent
9
type
(
gd_mem_attr_chain
),
pointer
:: p
10
integer
:: i, stat
11
12
stat =
memtab_lookup
(var, ent)
13
if
(stat == nf90_noerr)
then
14
if
(
associated
(ent%current))
then
15
if
(ent%current%name == attrname)
then
16
p => ent%current
17
goto
100
18
endif
19
endif
20
p => ent%attr
21
do
22
if
(.not.
associated
(p))
exit
23
if
(p%name == attrname)
goto
100
24
p => p%next
25
enddo
26
stat = nf90_enotatt
27
endif
28
allocate
(p)
29
nullify
(p%next)
30
goto
120
31
32
100
continue
33
if
(
associated
(p%cbuf))
then
34
deallocate
(p%cbuf)
35
endif
36
37
120
continue
38
allocate
(p%cbuf(len(attrval)))
39
do
, i = 1, len(attrval)
40
p%cbuf(i) = attrval(i:i)
41
enddo
42
return
43
end subroutine
gdmemvarattradd
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
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
gdmemvarattradd
subroutine gdmemvarattradd(var, attrname, attrval)
Definition:
gdmemvarattradd.f90:2