27 use dc_trace
, only: beginsub, endsub, dbgmessage
28 use dc_string
, only: putline, printf, split, strinclude, stoa, joinchar
29 use dc_present
, only: present_and_not_empty, present_and_true
34 character(*),
intent(in):: name
49 logical,
intent(out),
optional:: err
70 character(TOKEN),
pointer:: varnames_array(:) =>null()
73 character(STRING):: cause_c
74 character(*),
parameter:: subname =
'HstNmlInfoDelete' 76 call beginsub( subname, &
86 if ( .not. gthstnml % initialized )
then 88 cause_c =
'GTHST_NMLINFO' 92 if ( .not. gthstnml % define_mode )
then 102 if ( present_and_not_empty(name) )
then 104 call dbgmessage(
'multiple entries (%c) will be deleted', c1 = trim(name) )
106 & carray = varnames_array )
107 vnmax =
size( varnames_array )
111 & gthstnml = gthstnml, &
112 & name = varnames_array(i), &
114 if ( present_and_true( err ) )
then 115 deallocate( varnames_array )
120 deallocate( varnames_array )
129 hptr => gthstnml % gthstnml_list
130 call listsearch( gthstnml_list = hptr, &
132 & previous = hptr_prev, &
135 if ( .not.
associated( hptr ) )
goto 999
136 if ( ( trim(hptr % name) /=
'' ) .and.
associated( hptr_prev ) )
then 137 call dbgmessage(
'entry (%c) is deleted', c1 = trim( adjustl( name ) ) )
138 hptr_prev % next => hptr_next
147 call storeerror( stat, subname, err, cause_c )
148 call endsub( subname )
integer, parameter, public dc_earglack
integer, parameter, public usr_errno
integer, parameter, public hst_enotindefine
integer, parameter, public dc_enotinit
integer, parameter, public token
Character length for word, token.
character(1), parameter, public name_delimiter
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
integer, parameter, public dp
Double Precision Real number.
integer, parameter, public stdout
Unit number for Standard OUTPUT.
Provides kind type parameter values.
integer, parameter, public string
Character length for string.