# Ifx v2025.3.0 compilers -O2 optimisation breaks fldread for unstructured boundaries

**URL:** <https://nemo-ocean.discourse.group/t/ifx-v2025-3-0-compilers-o2-optimisation-breaks-fldread-for-unstructured-boundaries/967>\
**Category:** v4.0.x\
**Created:** [2 December 2025 17:15 UTC](https://nemo-ocean.discourse.group/t/ifx-v2025-3-0-compilers-o2-optimisation-breaks-fldread-for-unstructured-boundaries/967 "2025-12-02T17:15:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![RobMc](https://avatars.discourse-cdn.com/v4/letter/r/ec9cab/32.png) [@RobMc](https://nemo-ocean.discourse.group/u/RobMc)\
**Post date:** [2 December 2025 17:15 UTC](https://nemo-ocean.discourse.group/t/ifx-v2025-3-0-compilers-o2-optimisation-breaks-fldread-for-unstructured-boundaries/967/1 "2025-12-02T17:15:14Z")

</div>

I’m using NEMO v4.0 but I don’t think fldread has changed since then. The issue occurs when using the intel ifx v2025.3.0 compiler with -O2 optimisation and unstructured boundaries and 256 cpus. In subroutine fld\_map\_core the optimisation breaks at line;

pdta\_bdy(jb,1,jk) = pdta\_read(kmap(jb),1,jk)

I replaced this with,  
tmp = kmap(jb)  
pdta\_bdy(jb,1,jk) = pdta\_read(tmp,1,jk)

and it works as expected. I think this is forcing a reduction in the optimization here.
