Welcome, Guest
Username: Password: Remember me

TOPIC: error with flot.f

error with flot.f 9 years 11 months ago #15041

  • julesleguern
  • julesleguern's Avatar
Hi,

when I run a simulation in parallel mode including the subroutine flot.f, I have the following error :

ITERATION 0 TEMPS : 0.0000 S
PRERES : NOMBRE DE COURANT MAXIMUM : 0.000000
LE FICHIER DES FRONTIERES LIQUIDES CONTIENT
3 LIGNES AVEC :
Q(2)
USING STREAMLINE VERSION 7.0 FOR CHARACTERISTICS
unable to read the cmd header on the pmi context, Error = -1
.
Error posting readv, Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant.(10054)
unable to read the cmd header on the pmi context, Error = -1
.
Error posting readv, Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant.(10054)
unable to read the cmd header on the pmi context, Error = -1
.
Error posting readv, Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant.(10054)
unable to read the cmd header on the pmi context, Error = -1
.
Error posting readv, Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant.(10054)
unable to read the cmd header on the pmi context, Error = -1
.
Error posting readv, Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant.(10054)
unable to read the cmd header on the pmi context, Error = -1
.
Error posting readv, Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant.(10054)
unable to read the cmd header on the pmi context, Error = -1
.
Error posting readv, Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant.(10054)
unable to read the cmd header on the pmi context, Error = -1
.
Error posting readv, Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant.(10054)

job aborted:
rank: node: exit code[: error message]
0: fixe-rhone: 123
1: fixe-rhone: 123
2: fixe-rhone: 123
3: fixe-rhone: 123
4: fixe-rhone: 123
5: fixe-rhone: 2: process 5 exited without calling finalize
6: fixe-rhone: 123
7: fixe-rhone: 123
_____________
runcode::main:
:
|runCode: Fail to run
|C:\opentelemac\mpi\bin\mpiexec.exe -localonly -wdir D:\04_MODELISATION\TELEMAC2D\casie
r8\cas.cas_2014-12-02-15h40min29s -n 8 D:\04_MODELISATION\TELEMAC2D\casier8\cas.cas_2014-1
2-02-15h40min29s\out_fortran.exe
|~~~~~~~~~~~~~~~~~~
|2
|~~~~~~~~~~~~~~~~~~


File Attachment:

File Name: fortran.f
File Size: 3 KB


Someone have an idea?

Regards.

Jules
The administrator has disabled public write access.

error with flot.f 9 years 11 months ago #15048

  • jmhervouet
  • jmhervouet's Avatar
Hello,

In your example you give twice XFLOT(2) and not XFLOT(1), but the real problem is a misunderstanding. It seems that obsolete explanations have been left in subroutine flot.f, but the commented examples are correct, and you can look also the test case "flotteurs". You have now to launch particles with a "CALL ADD_PARTICLE" and to remove them with a "CALL DELETE_PARTICLE". This is now necessary because it works in parallel, and every processor must check if a new particle is for "him" or not.

With best regards,

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

error with flot.f 9 years 11 months ago #15057

  • julesleguern
  • julesleguern's Avatar
Hi Jean-Michel,

Thanks for your reply. Sorry to ask this stupid question but I'm a beginner in FORTRAN programming.
Where I have to place these fonctions (CALL ADD_PARTICLE and CALL DELETE_PARTICLE) in my script?

I try this but without success :

CALL ADD_PARTICULE(DEBFLO,XFLOT,YFLOT)
DEBFLO(1)=1
DEBFLO(2)=30000
FINFLO(1)=NIT
FINFLO(2)=NIT
XFLOT(1)=830307.057
XFLOT(1)=832438.002
YFLOT(2)=6292622.707
YFLOT(2)=6299255.163
CALL DELETE_PARTICULE(FINFLO)

With best Regards.

Jules
The administrator has disabled public write access.

error with flot.f 9 years 11 months ago #15059

  • jmhervouet
  • jmhervouet's Avatar
Hello,

You can inspire from the test case "flotteurs".

Every time you want to launch a particle, you do :

CALL ADD_PARTICLE(X,Y,Z,TAG,.... and all arguments as in the example)

X and Y are the coordinates of the particle, Z is used only in 3D and TAG is an integer which will be a tag for the particle.

CALL DELETE_PARTICLE(TAG,..... will delete the particle TAG

In the "flotteurs" example, I add a particle at every time-step LT, with a tag LT, the same X, and a Y varying with time.

The commented lines are the removal of particle 20.

Your flot.f will be something like :

IF(LT.EQ.1) CALL ADD_PARTICLE(XFLOT(1),YFLOT(1),0.D0,1,...
IF(LT.EQ.30000) CALL ADD_PARTICLE(XFLOT(2),YFLOT(2),0.D0,1,...

and probably, as you want the computation till iteration NIT, nothing else to do.

Please note that you have a mistake pointed out by Christophe Coulet in the lines:

XFLOT(1)=830307.057
XFLOT(1)=832438.002
YFLOT(2)=6292622.707
YFLOT(2)=6299255.163

You do not give XFLOT(2) nor YFLOT(1)...

Regards,

JMH
The administrator has disabled public write access.

error with flot.f 9 years 11 months ago #15061

  • julesleguern
  • julesleguern's Avatar
Hi Jean-Michel,

Thanks a lot for your explanation.

Does a dictionary of fonctions used in all subroutines exist?

Best regards.

Jules
The administrator has disabled public write access.

error with flot.f 9 years 11 months ago #15062

  • jmhervouet
  • jmhervouet's Avatar
Hello,

Yes, there is the "guide for programming in the Telemac system", available on this website, but there is nothing on particles in the current version.

REgards,

JMH
The administrator has disabled public write access.

error with flot.f 9 years 11 months ago #15063

  • julesleguern
  • julesleguern's Avatar
Thanks Jean-Michel,

Last question. When I do that in my fortran file :

IF(LT.EQ.1)CALL ADD_PARTICLE(830307.D0,6292622.D0,0.D0,LT,NFLOT,
& NFLOT_MAX,XFLOT,YFLOT,YFLOT,TAGFLO,
& SHPFLO,SHPFLO,ELTFLO,ELTFLO,MESH,1,
& 0.D0,0.D0,0.D0,0.D0,0,0)
IF(LT.EQ.30000)CALL ADD_PARTICLE(832438.D0,6299255.D0,0.D0,LT,
& NFLOT,NFLOT_MAX,XFLOT,YFLOT,YFLOT,TAGFLO,
& SHPFLO,SHPFLO,ELTFLO,ELTFLO,MESH,1,
& 0.D0,0.D0,0.D0,0.D0,0,0)


It's OK. The simulation works. But I have 3 digits after the decimal point of my coordinates and when I do that :


IF(LT.EQ.1)CALL ADD_PARTICLE(830307.707,6292622.057,0.D0,LT,NFLOT,
& NFLOT_MAX,XFLOT,YFLOT,YFLOT,TAGFLO,
& SHPFLO,SHPFLO,ELTFLO,ELTFLO,MESH,1,
& 0.D0,0.D0,0.D0,0.D0,0,0)

I have the following error :

... checking the executable
t2dfort.f(64): error #6633: The type of the actual argument differs from the type of the d
ummy argument. [830307.707]
IF(LT.EQ.1)CALL ADD_PARTICLE(830307.707,6292622.057,0.D0,LT,NFLOT,

^
t2dfort.f(64): error #6633: The type of the actual argument differs from the type of the d
ummy argument. [6292622.057]
IF(LT.EQ.1)CALL ADD_PARTICLE(830307.707,6292622.057,0.D0,LT,NFLOT,



Is this error come from the double precision mode of the variables XFLOT and YFLOT, and the size of my coordinates (9 to 10 significant digits)?


Best regards.

Jules
The administrator has disabled public write access.

error with flot.f 9 years 11 months ago #15065

  • jmhervouet
  • jmhervouet's Avatar
Hello,

This is normal, the subroutine expects a double precision number and you send a single precision, just write numbers in the form 830307.707D0 instead of 830307.707 and it should be OK.

Regards,

JMH
The administrator has disabled public write access.
Moderators: pham

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