Silverfrost Forums

Welcome to our forums

Silverfrost FTN95: Fortran for Windows version 8.50

2 May 2019 8:33 (Edited: 3 May 2019 7:56) #23570

We are pleased to announce the release of FTN95 version 8.50. This is available for download now to supported users.

New Features:

  • A new Silverfrost utility called EditSVG is provided. This can be used to form images from a number of SVG sources into one composite image.
  • The size of the FTN95 stack is effectively no longer limited. The default size is 32MB and this can be extended via the SLINK64 'stack_size <hex-value>' command or the new SLINK64 'stack <hex-value>' command where <hex-value> is the decimal number of decimal megabytes required.
  • Fortran 2003 standard I/O FLUSH statement added. (Win32/x64 only)
  • Fortran 2003 standard I/O routines, keyword argument IOMSG added. (Win32/x64 only)
  • Fortran 2003 standard intrinsic GET_ENVIRONMENT_VARIABLE added.
  • Fortran 2008 standard intrinsic EXECUTE_COMMAND_LINE added.
  • Routines READFLONG@ and WRITEFLONG@ have been added (x64 only). These are the same as READF@ and WRITEF@ respectively except that they take INTEGER*8 values for NBYTES and NBYTES_READ.
  • The intrinsic functions LEN and LEN_TRIM can now take a second argument for the KIND value of the result.
  • Array arguments for routines can now be ALLOCATABLE according to the Fortran 2003 standard.
  • An FTN95 ALLOCATE statement can take the keyword argument ABSOLUTE_ADDRESS=addr where addr is the INTEGER KIND(7) address obtained from the LOC of some object. (Win32/x64 only)
  • A new FTN95 'CORE' intrinsic PCORE7 has been added for use in pointer assignments of the form p=>PCORE7(addr) where p is a pointer to some object and addr is the LOC of another object of the same type.
  • Microsoft Visual Studio 2017 plugin
  • ClearWin+: The buffer size for %RE was previously limited to 32K characters. This limit has now been removed but in such cases the buffer will not be automatically updated and an explicit call to GetEditText@ will be required in order to copy the text to the buffer. If this copying takes place within an associated callback function then clearwin_info@('CURRENT_CONTROL') returns the required HWND.
  • ClearWin+: ALLOCATE(data1,ABSOLUTE_ADDRESS=addr) can be used in a callback relating to %ud. addr will be obtained via CLEARWIN_INFO@('USER_DATA') and data1 will be an object of the same kind as that used in the call to LOC.

-- Admin Silverfrost Limited
2 May 2019 8:36 #23571

Outline summary of bugs that have been fixed:

  • A PRIVATE TYPE in a MODULE was not private.
  • A USE ONLY attribute for a MODULE TYPE was not working correctly.
  • There was an internal compiler error with /64 and PRINT a(i,1:n).
  • /UNDEF was failing for an ALLOCATEd vector and vector subscript.
  • Various /64 /OPT bugs have been fixed.
  • An implicitly typed implied DO loop variable was being exported from a MODULE.
  • GET_COMMAND_ARGUMENT was failing when the path is set in double quotes.
  • RANDOM@ gave incorrect results when used in a small loop.
  • There was an access violation with /64 and an internal READ of a logical list.
  • COMPLEX(RESHAPE(...)) was not working correctly for REAL data.
  • An error report for a certain ALLOCATE rank failure was giving an access violation.
  • Assigning a scalar return from SUM to an array was not working correctly.
  • An array used in a WHERE mask was being interpreted as a vector subscript in the body of the construct.
  • /UNDEF was failing with the SUM intrinsic when used with ALLOCATABLE arrays.
  • There was a regression for Win32 when using SPREAD within a certain call to SUM.
  • The 64 bit version of RENAME@ was incorrectly giving an error number of zero when the file to rename did not exist.

-- Admin Silverfrost Limited
This forum is locked.