Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8923181
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T07:03:05+00:00 2026-06-15T07:03:05+00:00

Working with someone else’s code here. It compiles just fine with gfortran. Under Portland

  • 0

Working with someone else’s code here. It compiles just fine with gfortran. Under Portland Group, though, I get an error:

pgf90 -DsysLinux -DcompPGF90 -I/home/cables/GITM/share/Library/src  -c  -r8 -fast        ModUtilities.F90
PGF90-S-0084-Illegal use of symbol mpi_wtime - not public entity of module (ModUtilities.F90: 419)
0 inform,   0 warnings,   1 severes, 0 fatal for sleep

The offending line looks like:

use ModMpi, ONLY : MPI_wtime

(There’s obviously a lot of MPI stuff going on here, but I don’t think that’s the point.) So I go to the source code for ModMpi, which is ModMpi.f90, where I see no reference to MPI_WTIME, but I see:

use ModMpiInterfaces

So finally, I go to the source for ModMpiInterface and I find the line:

public:: mpi_wtime

OK, I was able to get a compile from PGI by editing ModMpi.f90 and declaring mpi_wtime to be public. But still, I wonder: Why did gfortran assume (apparently) that mpi_wtime was public, but PGI had to be told this explicitly? Why does PGI not assume that the original public declaration holds throughout the “use chain”?

I presume that one behavior or the other is closer to the Fortran standard. Which would that be?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T07:03:06+00:00Added an answer on June 15, 2026 at 7:03 am

    For exactly the same Fortran source code (as opposed to some sort of MPI library) compiler behaviour should be the same here.

    Whether or not an entity is a public entity of a module is specific to each module that defines or accesses (via USE) that entity. Module A might declare “something” and specify that it is public, module B might USE module A and then specify that same “something” is then private. Any code using module A will be able to access “something”, any code only using module B will not.

    The default accessibility of things declared in a module is PUBLIC, but that default can be changed by a PRIVATE statement (one without any following identifiers). If such a private statement appeared, you would see the behaviour you describe with the PGI compiler.

    Implicit typing (i.e. from source code without IMPLICIT NONE) can also confuse things here.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am working with someone else's code that works. I just need it to
I am working on someone else's code, and see things like: if ((somevariable) >
I'm working on a site someone else developed. They used the following jQuery code
I'm working with someone else's code on a device which can put an image
I am working with someone else's code. The code was originally designed so that
I am working on maintaining someone else's code that is using multithreading, via two
I am working with someone's else's code and am trying to make a simple
I'm working with an existing system set up by someone else (no longer here).
I'm working someone else's code. I've never encountered something like this before: return [[[NSObject
Working on someone else's code. Came across a piece of code while analyzing the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.