Hello,
I've been trying to understand where my mistake is in the above code and I think it has something to do with the fact that the IKLE table is declared as:
TYPE(BIEF_OBJ), POINTER :: IKLE
in declarations_telemac2d.f
The other variables that I am successful in referencing are declared as:
TYPE(BIEF_OBJ), TARGET :: LIUBOR,LIVBOR,LIHBOR,LITBOR
etc. It seems the issue is that I am trying to reference a 'pointer' and not a 'target', and this is somehow not allowed, I guess. I am still trying to understand why this would be the case.
I found a file that uses the IKLE table, "flux_imp3d.f", and in this file they are able to assign the value "IKLE(IELEM,1)" to an integer variable I1 as:
DO IELEM = 1,NELEM3
!
I1 = IKLE(IELEM,1)
which is exactly what I am trying to do but somehow I cannot use IKLE(IELEM,1) to set the value of a declared integer in my routine.
I am using 'USE DECLARATIONS_TELEMAC2D' for my variable declarations. Am I doing something wrong? Should I be declaring IKLE(IELEM,1) as an integer like how they do in "flux_imp3d.f"? Is the issue that IKLE is declared as a pointer?
I've been trying to figure this out by using print statements but I can't get anything to print from IKLE. for example, the statement "print *, IKLE(IELEM,3)" gives the error:
141 | print *, IKLE(IELEM,3)
| 1
Error: Syntax error in PRINT statement at (1)
But I do not understand why this is the case because IKLE(IELEM,3) should just be an integer as I understand it. It should be the integer value for the global node number of the third node in the element IELEM.
Thanks in advance,
-Martin