Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
For the latest information on Intel’s response to the Log4j/Log4Shell vulnerability, please see Intel-SA-00646

Syntax errors


I'm new in Fortran and Visual Studio. I need to compile and run one code from the reference manual of one commercial software.

When I directly open (from windows explorer) "bintst.F" then Visual Studio recognizes that "c" and "*deck" are comments automatically. But when I create new project and copy/paste the text from "bintst.F" - syntax errors are appeared and "c" and "*deck" are not recognized. Help me please to fix it.

IDE (This project was started with a template "Intel(R) Visual Fortran console application" I switched an extension from .f90 to .F manually, just for test):

Visual Studio 2015

I use:

Visual Studio 2015 Professional.

Intel Visual Fortran Compiler

Windows 7 x64

Compiler is launched with:

ifort /nologo /debug:full /Od /fpp /I"C:\ANSYS\v171\ansys\customize\include" /free /warn:all /module:"Debug" /object:"Debug" /Fd"Debug\vc140.pdb" /traceback /check:bounds /check:stack /libs:dll /threads /dbglibs /c /extfor:F /Qlocation,link,"C:\MV14\VC\\bin" /Qm32 "D:\tmp\fortran\vs1\Console1\Console1\bintst.F"


Source code:

*deck,bintst                 USERDISTRIB                              ansys
      program bintst
c *** primary function: dumps a binary file with the name, file.rst,
c     to the screen. it then takes that file and copies it to a new
c     file, file2.rst. lastly, it dumps the file, file2.rst, to the
c     screen for comparison purposes
c *** Notice - This file contains ANSYS Confidential information ***
c Copyright ANSYS.  All Rights Reserved.
c *** ansys, inc.
c  common variables:
c     iout      (int,sc,comm)     - output unit number
c     intpdp    (int,sc,comm)     - number of integers per double precision word
c     lenfnm    (int,sc,comm)     - number of characters in the filename
c     reclng    (int,sc,comm)     - system record length
c                           NOTE: bintst is not part of binlib.a.  it is 
c                                 included only as an aid to users.
#include ""
#include ""
      external binini,bintrd,bintwr,biniqr,bintfo,modinfo
      integer  biniqr
      integer        units, code
      character*80   title(2)
      character*260  pname,nname
      character*250  jobnam
      integer         iout,intpdp,lenfnm,reclng
      common /bintcm/ iout,intpdp,lenfnm,reclng
c          **********  define application exit mode   **********        system
      call modinfo(1,1)
c          **********  define the output unit number  **********        system
      iout   = 6
c          **********  define the number of integers per double precision
      intpdp = biniqr (0,2)
c          **********  define the number of characters in the file name
      lenfnm = biniqr (0,3)
c          **********  define the i/0 buffer page length (integer*4 words)
      reclng = biniqr (0,1)
c          **********  define the file names  **********                system
      pname = 'file.rst'
      nname = 'file2.rst'
c          **********  initialize the bin routines  **********
      call binini (iout)
c          **********  initialize the header common  **********
      title(1) = 'New title as given by BINTST'
      title(2) = 'New subtitle as given by BINTST'
      jobnam   = 'file    '
      units    = 0
c ---  the value for code below should be changed to appropriate 3rd party code
      code     = 200
      call bintfo (title,jobnam,units,code)
c          **********  read and list the file file.rst  **********
      call bintrd (pname)
c          **********  copy file file.rst to file file2.rst  **********
      call bintwr (pname,nname)
c          **********  read and list the file file2.rst  **********
      call bintrd (nname)




0 Kudos
2 Replies

I solved syntax error by switching fixed/free format to "use file extension" and adding special preprocessor directives (I found them in one .bat file that prepares for launching). 

But now I have another problem:


Deleting intermediate files and output files for project 'Console2', configuration 'Debug|Win32'.
Compiling with Intel(R) Visual Fortran Compiler [IA-32]...
ifort /debug:full /fpp /I"C:\ANSYS\v171\ansys\customize\include" /warn:all /module:"Debug\\" /object:"Debug\\" /Fd"Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /c /D__EFL /DNOSTDCALL /DARGTRAIL /DPCWINNT_SYS /DPCWIN64_SYS /DPCWINX64_SYS /DCADOE_ANSYS /fpp /4Yportlib /4Ya /c /Fo.\ /DFORTRAN /MD /W0 /extfor:F /Qlocation,link,"C:\MV14\VC\\bin" /Qm32 "D:\tmp\fortran\vs1\Console2\Console2\Console2.F"
Intel(R) Visual Fortran Intel(R) 64 Compiler for applications running on IA-32, Version 17.0 Build 20161005
Copyright (C) 1985-2016 Intel Corporation.  All rights reserved.

ifort: NOTE: The evaluation period for this product ends on 17-feb-2017 UTC.

Compiling manifest to resources...
rc.exe /fo "Debug\Console2.exe.embed.manifest.res" "Debug\Console2.exe.embed.manifest.rc"
Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.17336
Copyright (C) Microsoft Corporation.  All rights reserved.

Link /OUT:"Debug\Console2.exe" /VERBOSE /NOLOGO /MANIFEST /MANIFESTFILE:"Debug\Console2.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\tmp\fortran\vs1\Console2\Console2\Debug\Console2.pdb" /SUBSYSTEM:CONSOLE /IMPLIB:"D:\tmp\fortran\vs1\Console2\Console2\Debug\Console2.lib" C:\ANSYS\v171\ansys\custom\Misc\Winx64\binlib.lib -qm32 "Debug\Console2.obj" "Debug\Console2.exe.embed.manifest.res"
ipo: error #11018: Cannot open Debug\Console2.obj
LINK : fatal error LNK1181: cannot open input file 'Debug\Console2.obj'

Console2 - 2 error(s), 0 warning(s)




I am unable to reproduce the error but with your project the failure might relate to an earlier thread where it was noted that "x86" appears in the Solution Platforms pull-down (just under the Tools label on the tool bar). That should read "Win32" not "x86". That is happening as a by-project of starting a new project and a defect with our integrations defaulting to the "x86" platform configuration.

Within the Solution Platforms box, left-click on the x86 value and select Configuration Manager. When that appears, under Active solution platform,  left-click on x86 and select New. When the New Solution Platform dialog appears, verify that Win32 appears in the Type or select the new platform, that x86 appears in Copy settings from, the Create new project platforms checkbox is checked, and then click OK. That will create and change the Active solution platform to Win32. Click Close on the Configuration Manager dialog.

With that set, try rebuilding the project or solution.