silverfrost Site Admin
Joined: 29 Nov 2006 Posts: 191 Location: Manchester
|
Posted: Tue Jun 21, 2016 12:02 am Post subject: Silverfrost FTN95: Fortran for Windows version 8.05 |
|
|
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 INTEGER*8 position arguments. Note that other arguments
are still INTEGER*2.
- 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>
|
|