Skip to content

Commit 4c07622

Browse files
committed
fixes #3255
1 parent c3d2046 commit 4c07622

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
### Changed
1313

14+
- Removed restrction that vector regridding in ExtData2G must be bilinear
15+
1416
### Fixed
1517

18+
- Fixed by when using multiple rules for a vector item in ExtData2G
19+
1620
### Removed
1721

1822
### Deprecated

gridcomps/ExtData2G/ExtDataConfig.F90

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,12 @@ subroutine add_new_rule(this,key,export_rule,multi_rule,rc)
324324
logical, optional, intent(in) :: multi_rule
325325
integer, intent(out), optional :: rc
326326

327-
integer :: semi_pos,status
327+
integer :: semi_pos,status,rule_n_pos
328328
type(ExtDataRule) :: rule,ucomp,vcomp
329329
type(ExtDataRule), pointer :: temp_rule
330-
character(len=:), allocatable :: uname,vname
330+
character(len=:), allocatable :: uname,vname,original_key
331331
logical :: usable_multi_rule
332+
character(len=1) :: rule_num
332333

333334
if (present(multi_rule)) then
334335
usable_multi_rule = multi_rule
@@ -341,14 +342,24 @@ subroutine add_new_rule(this,key,export_rule,multi_rule,rc)
341342
rule = ExtDataRule(export_rule,this%sample_map,key,multi_rule=usable_multi_rule,_RC)
342343
semi_pos = index(key,";")
343344
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)
345350
uname = key(1:semi_pos-1)
346351
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+
347358
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))
349360
call this%rule_map%insert(trim(uname),ucomp)
350361
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))
352363
call this%rule_map%insert(trim(vname),vcomp)
353364
else
354365
temp_rule => this%rule_map%at(trim(key))

gridcomps/ExtData2G/ExtDataGridCompNG.F90

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1464,10 +1464,6 @@ subroutine create_bracketing_fields(item,ExtDataState,cf,rc)
14641464

14651465
else if (item%vartype == MAPL_VectorField) then
14661466

1467-
if (item%Trans /= REGRID_METHOD_BILINEAR) then
1468-
_FAIL('No conservative re-gridding with vectors')
1469-
end if
1470-
14711467
call ESMF_StateGet(ExtDataState, trim(item%vcomp1), field,_RC)
14721468
call ESMF_FieldGet(field,grid=grid,rank=fieldRank,_RC)
14731469

0 commit comments

Comments
 (0)