Silverfrost Forums

Welcome to our forums

Problem with ftn95 v 9.05

20 Nov 2024 5:56 #31720

Thank you for the information.

We are continuing to work on this issue.

The 24 H2 upgrade for Windows 11 is not yet in general release (at least not in the UK where you have to download a preview version).

Users who require Win32 options should avoid the 24 H2 download for now. Otherwise the only known work-around at the moment is to switch to x64.

21 Nov 2024 11:25 #31721

I think this means that under 'Windows Update', the 'Get the latest updates as soon as they're available', toggle should be set to 'Off' in the mean time.

I have just changed this on my machine.

21 Nov 2024 12:35 #31722

Ken

I am not sure about that. If you want the 24 H2 upgrade then (in the UK at least) you have to do a manual download from a Microsoft website. The automatic updates are still based on 23 H2.

21 Nov 2024 1:30 #31723

Paul,

My fear is that the 24 H2 upgrade could be rolled out to the UK at any time at Microsoft's discretion. We don't have any control over that, so we may want to do something to prevent it being applied to our computers.

22 Nov 2024 8:13 #31724

Thanks Ken. That is a good point.

Whilst we continue to work on a fix, a temporary work-around is to mask all underflows for Win32.

When underflows are masked, an exception is not raised when an underflow occurs. The current issue arises when the system does not recover after an underflow exception is triggered. Hence the work-around.

There are two ways to mask underflows:

  1. CALL MASK_UNDERFLOWS@() before doing any fp arithmetic.
  2. Set the environment variable: SET SALFENVAR=mask_underflow

The round-off error for an underflow will change. For example, the following code gives 1.741119E-39 rather than zero. This value is below the threshold for 32 bit real numbers.

program test
real*4 a, b, d
real*8 c
call MASK_UNDERFLOWS@()
a = 2.89e-3
b = 8.30544
c = 95.0428
d = a * b**5.5 * exp(-c)
write(*,*) d
end program test
21 Jan 2025 11:51 #31832

We are still working on this issue which concerns a change in the WOW Windows 11 operating system at version 24H2. (For me in the UK, automatic Windows updates for 23H2 do not currently use 24H2.)

The failure occurs for the Win32 platform when an underflow occurs. Today's interim release avoids the failure by a change in salflibc.dll that causes 24H2 WOW underflows to be masked by default. This means that (for this release of salflibc.dll) Win32 24H2 underflows are gradual rather than abrupt.

Win32 users with Windows 11 24H2 can use existing versions of salflibc.dll (versions before today's release) by either a) calling mask_underflows@ at the start of the program or b) setting the environment variable SALFENVAR=mask_underflows. Method (b) avoids the need to recompile the code.

Please login to reply.