Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC: Imposing time series on boundary using Limwac

Imposing time series on boundary using Limwac 2 years 7 months ago #40172

  • NZrigat
  • NZrigat's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 65
  • Thank you received: 16
Hello community,

I am trying to impose spectral data (Wave significant height and direction) -variable in time & space- on the boundary, so I had a rough go at programming the subroutine Limwac to do so, providing the input file structure attached. However, simulation crashes when calling the subroutine with the following error:

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.



I would appreciate if someone can help me with this or suggest another approach.



Cheers,

NZ
Attachments:
The administrator has disabled public write access.

Imposing time series on boundary using Limwac 2 years 7 months ago #40177

  • c.coulet
  • c.coulet's Avatar
  • OFFLINE
  • Moderator
  • Posts: 3722
  • Thank you received: 1031
Hi
NPTFR is the number of boundary points and an already fixed number so I doubt you could change it and give the value 3 as programmed...
As the value is probably higher than 3 the read crash...

Regards
Christophe
The administrator has disabled public write access.

Imposing time series on boundary using Limwac 2 years 7 months ago #40192

  • NZrigat
  • NZrigat's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 65
  • Thank you received: 16
Hi c.coulet,

Yes, you were right about that and also I had to use the variable "BOUNDARY_COLOUR" to refer to boundary nodes since I'm on parallel computation, thank you so much.

Now, when running the simulation I get the error attached. I was wondering if this DO LOOP to feed spectral data to the boundary is correct?


IF(AT .EQ. AT_WAVE(K)) THEN !AT_WAVE = time

IF(NCSIZE.GT.0) THEN ! PARALLEL
DO K = 1, NUMPOINTS !number of time steps in data
DO KK=1,NUMSTA !number of boundary nodes
DO S=1,NPTFR

IF (BOUNDARY_COLOUR%I(S) .EQ. XX(KK)) THEN !XX:boundary numbering
HM0L = HM0L_TS(K,KK+1)
FPICL = FPICL_TS(K,KK+1) !to skip time step reading
TETA1L = TETA1L_TS(K,KK+1)

! WRITE(*,*) '###########', AT_PP(K), HM0L, FPICL,TETA1L

ENDIF

ENDDO
ENDDO

ENDDO
ENDIF


Cheers,
Nayef
Attachments:
The administrator has disabled public write access.

Imposing time series on boundary using Limwac 2 years 7 months ago #40193

  • c.coulet
  • c.coulet's Avatar
  • OFFLINE
  • Moderator
  • Posts: 3722
  • Thank you received: 1031
The compilation crash
there is a message about unexpected end of file so something is wrong in your limwacv5.f file

Regards
Christophe
The administrator has disabled public write access.

Imposing time series on boundary using Limwac 2 years 7 months ago #40194

  • tfouquet
  • tfouquet's Avatar
  • OFFLINE
  • Moderator
  • Posts: 294
  • Thank you received: 112
one endif is missing.
It reached the end of file while the "if loop" is opened
The administrator has disabled public write access.

Imposing time series on boundary using Limwac 2 years 7 months ago #40211

  • NZrigat
  • NZrigat's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 65
  • Thank you received: 16
Hi all,

Thanks for your responses,

Whenever I try to use the variable BOUNDARY_COLOUR since I'm considering parallelism I get the following error message:


Error: Unexpected '%' for nonderived-type variable 'boundary_colour' at (1)


I've used this variable within the BORD subroutine for prescribing HBOR,VBOR..etc in the past with no problems, but here in LIMWAC it wouldn't allow me to use it even in the simplest cases.


Cheers,
Nayef
The administrator has disabled public write access.

Imposing time series on boundary using Limwac 2 years 7 months ago #40214

  • tfouquet
  • tfouquet's Avatar
  • OFFLINE
  • Moderator
  • Posts: 294
  • Thank you received: 112
Hello
I guess the probleme comes from a confusion
BOUNDARY_COLOUR are not exactly the same in telemac2d and TOMAWAC

in telemac2d BOUNDARY_COLOUR is a bief_obj so to get/set the tabular you use
BOUNDARY_COLOUR%I(K)

When in tomawac BOUNDARY_COLOUR is the tabular of the bief_obj
(BOUNDARY_COLOUR => SBOUNDARY_COLOUR%I in point_tomawac.f )
So to get or set the tabular you use directly
BOUNDARY_COLOUR(K)

you can find an example of use of boundary_colour in fortran user of test case Manche

Hope it helps
The administrator has disabled public write access.
The following user(s) said Thank You: NZrigat

Imposing time series on boundary using Limwac 2 years 7 months ago #40218

  • NZrigat
  • NZrigat's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 65
  • Thank you received: 16
Hi Tfouquet,

Thank you for your response, that was very helpful as my program works fine now.

Cheers,


Nayef
The administrator has disabled public write access.

Imposing time series on boundary using Limwac 2 years 7 months ago #40228

  • NZrigat
  • NZrigat's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 65
  • Thank you received: 16
Hi again,

I was wondering if there is a variable for prescribed values of significant wave height in TOMAWAC, similar to HBOR for prescribed water level in TELEMAC?

As I am guessing, I cannot use HM0l for prescribing spacio-temporal varying wave heights, as I would be needing something like HM0L_BOR(NPTFR) (a variable to refer to wave height at boundary node)- see the loop in time and over boundary points.



IF(AT .EQ. AT_WAVE(K)) THEN

IF(NCSIZE.GT.0) THEN ! PARALLEL
DO K = 1, NUMPOINTS !number of time steps in NFO1
DO KK=1,NUMSTA !number of boundary nodes in NFO1
DO S=1,NPTFR

IF (XX(KK) .EQ. BOUNDARY_COLOUR(S)) THEN

!XX= boundary node number in NFO1


HM0L = HM0L_TS(K,KK+1) !the +1 to skip reading time step
TETA1L = TETA1L_TS(K,KK+1)

ENDIF

ENDDO
ENDDO
ENDDO

ENDIF

ENDIF


Cheers,
Nayef
The administrator has disabled public write access.

Imposing time series on boundary using Limwac 2 years 7 months ago #40229

  • NZrigat
  • NZrigat's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 65
  • Thank you received: 16
Hi again,

When trying to print test NBOR(NPTFR) in scalar or a loop over BOUNDARY_COLOUR(s) while s=1,NPTFR (parallel), the node numbering I get is completely different than what I have in my boundary conditions file!

As a result, the term "IF (XX(KK) .EQ. BOUNDARY_COLOUR(S)) THEN " in parallel is never achieved. I was wondering what is the reason that I can't obtain the right boundary nodes numbers? (XX is boundary nodes numbers read from NFO1)

Thank you,
Nayef
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Moderators: tfouquet

The open TELEMAC-MASCARET template for Joomla!2.5, the HTML 4 version.