Welcome, Guest
Username: Password: Remember me

TOPIC: Coordinates of point on border in parallel mode

Coordinates of point on border in parallel mode 10 years 4 months ago #13593

  • nguyenthong_BK
  • nguyenthong_BK's Avatar
Dear all,
I'm using Telemac 2d, version v6p2 with parallel mode. I use my fortran (Sub. BORD) in program. I would like to calculate the coordinate of the point in the the border (in the loop DO K=1,NPTFR...... ). In scalar mode, I used N=NBOR(K), then xm= MESH%X%R(N), ...to find the coordinate. The program works seem good in scalar mode. Unfortunately, the program failed in parallel mode (some abnormal speed at border). Would you like to help me to know why? Thank you very much for any your advice.
Best regards
Thong NGUYEN
HCMUT, VN
The administrator has disabled public write access.

Coordinates of point on border in parallel mode 10 years 4 months ago #13595

  • jmhervouet
  • jmhervouet's Avatar
Dear Thong,

What you show us is correct, so the error must be elsewhere, maybe attaching your version of bord.f would help.

REgards,

Jean-Michel Hervouet
The administrator has disabled public write access.

Coordinates of point on border in parallel mode 10 years 4 months ago #13605

  • nguyenthong_BK
  • nguyenthong_BK's Avatar
Dear Mr. J.M. Hervouet,
Thank you very much for your prompt response. In my fortran file, I would like to interpolate the water surface elevation at border from two nearest station. So I need the coordinate of point in border in modified bord.f file.
Best regards
Thong NGUYEN
HCMUT, VN

File Attachment:

File Name: t2d_Fortran_Bord.f
File Size: 17 KB
The administrator has disabled public write access.

Coordinates of point on border in parallel mode 10 years 4 months ago #13611

  • jmhervouet
  • jmhervouet's Avatar
Hello Thong,

Hum, I see no obvious error and in principle it should work, since you work on coordinates which do not change in parallel. I just find strange your use of IF THEN ELSE ENDIF but this is not a mistake. For example:

if(dx.LT.dx2) THEN
else
...
...
endif

could be replaced by

if(dx.GE.dx2) then
...
...
endif

and in all sequences:

else
endif

you can remove the "else".

Anyway this is probably not the problem and I see no other possibility than printing the values of N and the corresponding Z and comparing in scalar and parallel. If you use PRINT* you hopefully will get everything on the listing, if you use WRITE(LU,*) it will be printed on the log files that may be destroyed at the end of the run.

With best regards,

Jean-Michel
The administrator has disabled public write access.
Moderators: pham

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