Problem with calling DiffuseConvectiveBoundary subroutine

Extension of Elmer in computational glaciology
Post Reply
ygong
Posts: 15
Joined: 08 May 2013, 16:51
Antispam: Yes

Problem with calling DiffuseConvectiveBoundary subroutine

Post by ygong »

Hi there,

The DiffuseConvectiveBoundary subroutine has been used in one of my fortron code for a solver. Last time I compiled it everything was fine. Now I had errors like this

error #6633: The type of the actual argument differs from the type of the dummy argument. [ELEMENT]
LOAD,TransferCoeff,Element,n,ElementNodes )
error #6633: The type of the actual argument differs from the type of the dummy argument. [N]
LOAD,TransferCoeff,Element,n,ElementNodes )
-------------------------------------------------^
error #6633: The type of the actual argument differs from the type of the dummy argument. [ELEMENTNODES]
LOAD,TransferCoeff,Element,n,ElementNodes )
---------------------------------------------------^
error #6631: A non-optional actual argument must be present when invoking a procedure with an explicit interface. [ELEMENT]
CALL DiffuseConvectiveBoundary( STIFF,FORCE, &
----------------------^
error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic. [NODALE
XT]
CALL DiffuseConvectiveBoundary( STIFF,FORCE, &
----------------------^


The type in the code are:

TYPE(Element_t), POINTER :: Element
TYPE(Nodes_t) :: ElementNodes
INTEGER :: N


And the subroutine has been called like this:

CALL DiffuseConvectiveBoundary( STIFF,FORCE, LOAD,TransferCoeff,Element,n,ElementNodes )

I am not very familiar with fortron and not sure if this is really relevant to the type. I have checked the description for the subroutine and I think I call it right (?). And I also wonder if it has something to do with the updating of elmer/ice last month.

It is really appreciative if someone could kindly point out my problem.

Cheers,
Yongmei
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Problem with calling DiffuseConvectiveBoundary subroutine

Post by raback »

Hi Yougmei

Unfortunately I changed the interface in order to implement far field boundary conditions for the heat equation. I didn't realize that there are many solvers out there using the module. I considered reverting back but then people had already updated their solvers (e.g. the tailored heat solver for computational glaciology). Perhaps the new parameters should be made optional.

Unfortunately I'm currently on holiday and not too keen to code. I'll try to have a look at it in August. In the mean You could revert to an older version, or copy the DiffuseConvertiveBoundary from the old library to a different name and place it within the same module as your solver (and also remember to also call it with the name name differently).

-Peter
ygong
Posts: 15
Joined: 08 May 2013, 16:51
Antispam: Yes

Re: Problem with calling DiffuseConvectiveBoundary subroutine

Post by ygong »

Thank you, Peter!
tzwinger
Site Admin
Posts: 99
Joined: 24 Aug 2009, 12:20
Antispam: Yes

Re: Problem with calling DiffuseConvectiveBoundary subroutine

Post by tzwinger »

Hi Yongmei,
what particular routine is it that crashes? If it is one self-made by you, can you can send me the code and I try to fix it. Or you can look up the correction in the TemperateIceSolver.f90.

Thomas
ygong
Posts: 15
Joined: 08 May 2013, 16:51
Antispam: Yes

Re: Problem with calling DiffuseConvectiveBoundary subroutine

Post by ygong »

Thanks for Thomas' help. Problem solved. I guess we do not need to anything to the subroutine now.

Cheers.
Post Reply