Declare an array in Fortran with the name of a parameter in another module -


i'm pretty new in fortran world. piece of code, find difficulty in understanding it.

let's in module a, var declared parameter of integer type:

integer, parameter :: var = 81 

then in module b, array name var declared:

integer :: var(2) 

when these modules used in third module c:

use use b 

won't there conflict in names? or 2 members of array var take value 81?

there compile time error when attempt access variable var in described case. specific error like:

error: name 'var' @ (1) ambiguous reference 'var' module 'a' 

are variables meant globally scoped? can declare 1 (or both) of them private scoped module , not pollute global scope. in case though, module c not able use private variable. option limit imported in use statement with:

use a, only: some_variable1, some_other_variable use b, only: var 

this let var b scope of c, , hide var a.

if have have both variables in module c, can rename 1 when use module. e.g.:

use a, vara => var use b, varb => var 

which lets access variables var in each module names vara , varb.

see example:

module   integer, parameter :: var = 81  contains end module  module b   integer :: var(2)  contains end module  module c   use a, vara => var   use b, varb => var  contains end module  program test   use c       print *, vara end program 

which print 81.


Comments

Popular posts from this blog

commonjs - How to write a typescript definition file for a node module that exports a function? -

openid - Okta: Failed to get authorization code through API call -

thorough guide for profiling racket code -