Skip to content

Commit 8eebb8e

Browse files
committed
fix: use DBADDIAOPT for array SILO options (lo_offset, hi_offset)
DBADDIOPT expects a scalar integer, but lo_offset and hi_offset are arrays (size 1-3 depending on dimensionality). This passes an array where SILO expects a scalar pointer, so only the first element is read. Use DBADDIAOPT (integer array option) instead, which takes the array length and pointer. This fixes gfortran rank mismatch warnings and ensures all dimension offsets are correctly written to SILO files.
1 parent 336487c commit 8eebb8e

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

src/post_process/m_data_output.fpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -489,8 +489,8 @@ contains
489489
490490
if (p > 0) then
491491
err = DBMKOPTLIST(2, optlist)
492-
err = DBADDIOPT(optlist, DBOPT_LO_OFFSET, lo_offset)
493-
err = DBADDIOPT(optlist, DBOPT_HI_OFFSET, hi_offset)
492+
err = DBADDIAOPT(optlist, DBOPT_LO_OFFSET, size(lo_offset), lo_offset)
493+
err = DBADDIAOPT(optlist, DBOPT_HI_OFFSET, size(hi_offset), hi_offset)
494494
if (grid_geometry == 3) then
495495
err = DBPUTQM(dbfile, 'rectilinear_grid', 16, 'x', 1, 'y', 1, 'z', 1, y_cb, z_cb, x_cb, dims, 3, DB_DOUBLE, &
496496
& DB_COLLINEAR, optlist, ierr)
@@ -501,15 +501,15 @@ contains
501501
err = DBFREEOPTLIST(optlist)
502502
else if (n > 0) then
503503
err = DBMKOPTLIST(2, optlist)
504-
err = DBADDIOPT(optlist, DBOPT_LO_OFFSET, lo_offset)
505-
err = DBADDIOPT(optlist, DBOPT_HI_OFFSET, hi_offset)
504+
err = DBADDIAOPT(optlist, DBOPT_LO_OFFSET, size(lo_offset), lo_offset)
505+
err = DBADDIAOPT(optlist, DBOPT_HI_OFFSET, size(hi_offset), hi_offset)
506506
err = DBPUTQM(dbfile, 'rectilinear_grid', 16, 'x', 1, 'y', 1, 'z', 1, x_cb, y_cb, DB_F77NULL, dims, 2, DB_DOUBLE, &
507507
& DB_COLLINEAR, optlist, ierr)
508508
err = DBFREEOPTLIST(optlist)
509509
else
510510
err = DBMKOPTLIST(2, optlist)
511-
err = DBADDIOPT(optlist, DBOPT_LO_OFFSET, lo_offset)
512-
err = DBADDIOPT(optlist, DBOPT_HI_OFFSET, hi_offset)
511+
err = DBADDIAOPT(optlist, DBOPT_LO_OFFSET, size(lo_offset), lo_offset)
512+
err = DBADDIAOPT(optlist, DBOPT_HI_OFFSET, size(hi_offset), hi_offset)
513513
err = DBPUTQM(dbfile, 'rectilinear_grid', 16, 'x', 1, 'y', 1, 'z', 1, x_cb, DB_F77NULL, DB_F77NULL, dims, 1, &
514514
& DB_DOUBLE, DB_COLLINEAR, optlist, ierr)
515515
err = DBFREEOPTLIST(optlist)

0 commit comments

Comments
 (0)