Skip to content

Commit 0b48bbb

Browse files
F2C(EXINQ) initialize float return to avoid IEEE_DENORMAL in mapvar (#687)
* F2C(EXINQ) initialize float return to avoid IEEE_DENORMAL in mapvar * Committing clang-format changes * initialize ret_int in F2C(EXINQ) * Committing clang-format changes * remove cstdint header * remove extra semicolons --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
1 parent da8b508 commit 0b48bbb

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

packages/seacas/libraries/exodus_for/src/exo_jack-windows.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "exodusII_int.h"
2525
#include "netcdf.h"
2626
#include <ctype.h>
27+
#include <stdint.h>
2728
#include <stdio.h>
2829
#include <stdlib.h>
2930
#include <string.h>
@@ -1918,7 +1919,14 @@ void F2C(EXGATM)(int *idexo, real *time_values, int *ierr)
19181919
void F2C(EXINQ)(int *idexo, int *req_info, void_int *ret_int, float *ret_float, char *ret_char,
19191920
int *ierr, int ret_charlen)
19201921
{
1921-
*ierr = ex_inquire(*idexo, (ex_inquiry)*req_info, ret_int, ret_float, ret_char);
1922+
if (ex_int64_status(*idexo) & EX_INQ_INT64_API) {
1923+
*((int64_t *)ret_int) = 0;
1924+
}
1925+
else {
1926+
*((int *)ret_int) = 0;
1927+
}
1928+
*ret_float = 0.0f;
1929+
*ierr = ex_inquire(*idexo, (ex_inquiry)*req_info, ret_int, ret_float, ret_char);
19221930
}
19231931

19241932
/*

packages/seacas/libraries/exodus_for/src/exo_jack.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2440,7 +2440,14 @@ void F2C(exgatm, EXGATM)(int *idexo, real *time_values, int *ierr)
24402440
void F2C(exinq, EXINQ)(int *idexo, int *req_info, void_int *ret_int, float *ret_float,
24412441
char *ret_char, int *ierr, int ret_charlen)
24422442
{
2443-
*ierr = ex_inquire(*idexo, (ex_inquiry)*req_info, ret_int, ret_float, ret_char);
2443+
if (ex_int64_status(*idexo) & EX_INQ_INT64_API) {
2444+
*((int64_t *)ret_int) = 0;
2445+
}
2446+
else {
2447+
*((int *)ret_int) = 0;
2448+
}
2449+
*ret_float = 0.0f;
2450+
*ierr = ex_inquire(*idexo, (ex_inquiry)*req_info, ret_int, ret_float, ret_char);
24442451
EX_UNUSED(ret_charlen);
24452452
}
24462453

0 commit comments

Comments
 (0)