@@ -324,11 +324,12 @@ subroutine add_new_rule(this,key,export_rule,multi_rule,rc)
324
324
logical , optional , intent (in ) :: multi_rule
325
325
integer , intent (out ), optional :: rc
326
326
327
- integer :: semi_pos,status
327
+ integer :: semi_pos,status,rule_n_pos
328
328
type (ExtDataRule) :: rule,ucomp,vcomp
329
329
type (ExtDataRule), pointer :: temp_rule
330
- character (len= :), allocatable :: uname,vname
330
+ character (len= :), allocatable :: uname,vname,original_key
331
331
logical :: usable_multi_rule
332
+ character (len= 1 ) :: rule_num
332
333
333
334
if (present (multi_rule)) then
334
335
usable_multi_rule = multi_rule
@@ -341,14 +342,24 @@ subroutine add_new_rule(this,key,export_rule,multi_rule,rc)
341
342
rule = ExtDataRule(export_rule,this% sample_map,key,multi_rule= usable_multi_rule,_RC)
342
343
semi_pos = index (key," ;" )
343
344
if (semi_pos > 0 ) then
344
- call rule% split_vector(key,ucomp,vcomp,rc= status)
345
+ rule_n_pos = index (key,rule_sep)
346
+ original_key = key
347
+ if (rule_n_pos > 0 ) original_key = key(1 :rule_n_pos-1 )
348
+
349
+ call rule% split_vector(original_key,ucomp,vcomp,rc= status)
345
350
uname = key(1 :semi_pos-1 )
346
351
vname = key(semi_pos+1 :len_trim (key))
352
+
353
+ if (rule_n_pos > 0 ) then
354
+ rule_num = key(rule_n_pos+1 :rule_n_pos+1 )
355
+ uname= uname// rule_sep// rule_num
356
+ end if
357
+
347
358
temp_rule = > this% rule_map% at(trim (uname))
348
- _ASSERT(.not. associated (temp_rule)," duplicated export entry key: " // trim (key ))
359
+ _ASSERT(.not. associated (temp_rule)," duplicated export entry key: " // trim (uname ))
349
360
call this% rule_map% insert(trim (uname),ucomp)
350
361
temp_rule = > this% rule_map% at(trim (vname))
351
- _ASSERT(.not. associated (temp_rule)," duplicated export entry key: " // trim (key ))
362
+ _ASSERT(.not. associated (temp_rule)," duplicated export entry key: " // trim (vname ))
352
363
call this% rule_map% insert(trim (vname),vcomp)
353
364
else
354
365
temp_rule = > this% rule_map% at(trim (key))
0 commit comments