Silverfrost Forums

Welcome to our forums

Silverfrost FTN95: Fortran for Windows version 8.05

20 Jun 2016 11:02 #17689

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

New Features:

  • FTN95 provides some Fortran 2003/2008 features that required the command line option /F2K. These features are now provided by default. In order to restrict the code to Fortran 95 use /-F2K.
  • CODE/EDOC is now available in 64-bit mode
  • The following Fortran 2008 standard intrinsics are now available: ERF,ERFC,ERFC_SCALED,GAMMA,LOG_GAMMA,BESSEL_J0,BESSEL_J1,BESSEL_Y0,BESSEL_Y1,BESSEL_JN,BESSEL_YN. See for example http://fortranwiki.org/fortran/show/bessel_j0.- _WIN32 and _WIN64 are prefined for use in conditional compilation CIF. For example, the CIF(_WIN64) block of code will be compiled when the options /64 /fpp are applied on the FTN95 command line. This is particularly useful for CODE/EDOC blocks that require conditional compilation when implemented for both 32 and 64 bit code. In other contexts, an equivalent run-time condition is 'IF(KIND(1_7) == 4)THEN'.
  • The following undocumented Win32 routines have now been ported to 64 bits: FPOSLONG@, RFPOSLONG@ and FPOS_EOFLONG@. These are similar to FPOS@, RFPOS@ and FPOS_EOF@ but take INTEGER8 position arguments. Note that other arguments are still INTEGER2.
  • ClearWin+ can now be used to generate SVG files by calling OPEN_SVG@ before drawing the graphics (this is analogous to generating printer output). SVG is a vector graphics format.

Outline summary of bugs that have been fixed:

  • Compile time array bounds check failure has been elevated from WARNING to ERROR when using /CHECK or /BOUNDS_CHECK
  • The SUM intrinsic with a scalar MASK was giving incorrect results
  • The UBOUND intrinsic, when used as an array index was being treated as a vector subscript
  • A substring of an element of a character array was causing a backend failure. (64-bit only)
  • A regression caused the compiler to crash when raising a complex value to the power 0.5. This has been fixed
  • GET_DIB_SIZE@ when used with USE_GDIPLUS_IMAGE_FILES@ was giving a SUCCESS report when attempting to access a non-existent file.
  • Error number 612 was being appied out of context
  • INTENT(OUT) arguments with TYPE initialisation were causing runtime failures when OPTIONAL and not present
  • The WHERE construct was sometimes failing when the body contained an assignment to a temporary array
  • A GO TO statement within an IF construct was giving incorrect results with /OPT
  • A local COMMON block that duplicates a USEd MODULE COMMON block now produces a compile time error report
  • NAMELIST was failing when used in an internal (CONTAINS) subprogram
  • In a certain context a USEd MODULE user TYPE was falsely reported as not being defined
  • A stack leak was causing WRITE statements involving multiple calls to TRIM to fail with /FULL_UNDEF
  • Personal Edition did not allow /64 compile time switch
  • ClearWin+: %ac[Shift+Tab] was not responding as expected.
  • ClearWin+: A standard callback SETF has been added. This is equivalent to the standard callback SET but takes double precision values
  • ClearWin+: The property sheet control %ps was not working correctly when [hot_track] or [ms_style] was used together with a callback function
  • ClearWin+: %ss and browse_for_folder@ were not working for 64-bit applications. </list>

-- Admin Silverfrost Limited
This forum is locked.