[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[McIDAS #AHC-658709]: McIDAS 2015 build issue on Solaris 11.3/Studio 12.3

Hi Robert,

> I am having an issue building McIDAS 2015 on Solaris 11.3/Studio 12.3. I 
> realize you
> guys are back on Solaris 10/Studio 11. It fails at m0pirdec.for and seems to 
> have an
> issue with the syntax. I could go back and recompile with gcc/g77 but would 
> prefer to
> stick with the Studio compilers if possible.
> NOTICE: Invoking 
> /home/setup/SolarisStudio12.3-solaris-x86-bin/solarisstudio12.3/bin/f90 -f77 
> -ftrap=%none -c -g -O0 m0pirdec.f
> m0pirdec.f:
> m0pirdec:
> makpir:
> dcdair:
> cvttur:
> dcdpir:
> decice:
> dectur:
> deccld:
> fltlvl:
> dcdaca:
> ratoll:
> &                 type(sptr+1) .eq. ACHAR .and.
> ^
> "m0pirdec.f", Line = 1512, Column = 28: ERROR: Unexpected syntax: ")" was 
> expected but found "(".
> ^
> "m0pirdec.f", Line = 1512, Column = 28: ERROR: A defined operator is missing 
> the "." delimiter.
> f90comp: 10687 SOURCE LINES
> compile m0pirdec.for:           FAILED

Interesting.  Apparently, the Fortran compiler you are using is interpreting 
'type' as
a known operator, and not as an array.  Why the error is not showing up before 
1512 is pretty mysterious as 'type' is used as an array a number of times 
before this
in the subroutine in which this line is found.

A quick check shows that the line before the one causing the error is
greater than 72 characters in length:

               elseif (type(sptr) .eq. ADIGIT .and.
     &                (numch(sptr) .ge. 2 .and. numch(sptr) .le. 5) .and.
     &                 type(sptr+1) .eq. ACHAR .and.
     &                 numch(sptr+1) .eq. 1)then
column 73

In order to test whether or not the problem is actually that the Fortran
compiler is obeying the 72 column limit (recall that columns > 72 are
historically treated as comments), please try the following:

- edit m0pirdec.for and remove some white space between the '&' and 

<as 'mcidas'>
cd ~/mcidas2015/src
cp -p m0pirdec.for m0pirdec.for.orig
vi m0pirdec.for


               elseif (type(sptr) .eq. ADIGIT .and.
     &                (numch(sptr) .ge. 2 .and. numch(sptr) .le. 5) .and.
     &                 type(sptr+1) .eq. ACHAR .and.
     &                 numch(sptr+1) .eq. 1)then


               elseif (type(sptr) .eq. ADIGIT .and.
     &           (numch(sptr) .ge. 2 .and. numch(sptr) .le. 5) .and.
     &                 type(sptr+1) .eq. ACHAR .and.
     &                 numch(sptr+1) .eq. 1)then

After making the change, you should be able to continue with your build,
or you could rebuild from scratch.


- if the '.and.' clause extending into columns > 72 really is the problem,
  there are likely to be many, many more problems in the build

  Problems that may not show up as errors/warnings in the build 'makelog',
  but would show up at runtime.  If this is the case, then investigation
  needs to be made of the flags supported by the Fortran compiler that
  tell it to accept long line lengths.


- is there any chance I could login to your machine to take a look?


Unidata User Support                                    UCAR Unidata Program
(303) 497-8642                                                 P.O. Box 3000
address@hidden                                   Boulder, CO 80307
Unidata HomePage                       http://www.unidata.ucar.edu

Ticket Details
Ticket ID: AHC-658709
Department: Support McIDAS
Priority: Normal
Status: Closed

NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.