Welcome, Guest
Username: Password: Remember me

TOPIC: Modified prabolic bowl test case -- Runcode: Fail to run

Modified prabolic bowl test case -- Runcode: Fail to run 10 years 3 months ago #13835

  • alexhewitt13
  • alexhewitt13's Avatar
Hi,

I am trying to run a modified version of the prabolic bowl test case. I have rewritten the initial water level conditions in the subroutine condin.

However when I run the code now it begins to run but fails at the Kinetic scheme section with the message "PLANTE: Program stopped after and error" and "runcode: Fail to run". I have attached a screenshot as i may not have described that very clearly. If anyone has any advice on where i may find the cause of this error?

If anyone needs to see any of my code just say.

Thanks
Attachments:
The administrator has disabled public write access.

Modified prabolic bowl test case -- Runcode: Fail to run 10 years 3 months ago #13836

  • jmhervouet
  • jmhervouet's Avatar
Hello,

It is difficult to say anything without seeing what are the new initial conditions. It is curious however that it stops with subroutine PLANTE without a message, because it is the normal way to stop the program when there is an identified problem, and in this case we write an explanation, unless you are in parallel and the message is in another log file (if it is your case, try first in scalar mode).

Regards,

JMH
The administrator has disabled public write access.

Modified prabolic bowl test case -- Runcode: Fail to run 10 years 3 months ago #13837

  • alexhewitt13
  • alexhewitt13's Avatar
I am not in parallel i will post the section of initial conditions i changed.
The administrator has disabled public write access.

Modified prabolic bowl test case -- Runcode: Fail to run 10 years 3 months ago #13838

  • alexhewitt13
  • alexhewitt13's Avatar
C                       *****************
                        SUBROUTINE CONDIN
C                       *****************
C
C***********************************************************************
C TELEMAC 2D VERSION 5.2         19/08/98  J-M HERVOUET TEL: 30 87 80 18
C
C***********************************************************************
C
C     FONCTION  : INITIALISATION DES GRANDEURS PHYSIQUES H, U, V ETC
C
C-----------------------------------------------------------------------
C                             ARGUMENTS
C .________________.____.______________________________________________
C |      NOM       |MODE|                   ROLE
C |________________|____|______________________________________________
C |                | -- |  
C |________________|____|______________________________________________
C MODE : -->(DONNEE NON MODIFIEE), <--(RESULTAT), <-->(DONNEE MODIFIEE)
C***********************************************************************
C
      USE BIEF
      USE DECLARATIONS_TELEMAC2D
C
      IMPLICIT NONE
      INTEGER LNG,LU 
      COMMON/INFO/LNG,LU
C
C+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C
      DOUBLE PRECISION N,L,D,G
      DOUBLE PRECISION L2,CORI,FREQ,A,EQ1,EQ2
      INTEGER I,ITRAC
C
C+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C  
C
C-----------------------------------------------------------------------
C
C   INITIALISATION DU TEMPS
C
      AT = 0.D0
C
C-----------------------------------------------------------------------
C
C   INITIALISATION DES VITESSES : VITESSES NULLES
C
C     CALL OS( 'X=C     ' , U , U , U , 0.D0 )
      CALL OS( 'X=C     ' , V , V , V , 0.D0 )
C
C-----------------------------------------------------------------------
C
C   INITIALISATION DE H , LA HAUTEUR D'EAU
C
      IF(CDTINI(1:10).EQ.'COTE NULLE'.OR.
     *   CDTINI(1:14).EQ.'ZERO ELEVATION') THEN
        CALL OS( 'X=C     ' , H , H  , H , 0.D0 )
        CALL OS( 'X=X-Y   ' , H , ZF , H , 0.D0 )
      ELSEIF(CDTINI(1:14).EQ.'COTE CONSTANTE'.OR.
     *       CDTINI(1:18).EQ.'CONSTANT ELEVATION') THEN
        CALL OS( 'X=C     ' , H , H  , H , COTINI )
        CALL OS( 'X=X-Y   ' , H , ZF , H , 0.D0   )
      ELSEIF(CDTINI(1:13).EQ.'HAUTEUR NULLE'.OR.
     *       CDTINI(1:10).EQ.'ZERO DEPTH') THEN
        CALL OS( 'X=C     ' , H , H  , H , 0.D0  )
      ELSEIF(CDTINI(1:17).EQ.'HAUTEUR CONSTANTE'.OR.
     *       CDTINI(1:14).EQ.'CONSTANT DEPTH') THEN
        CALL OS( 'X=C     ' , H , H  , H , HAUTIN )
      ELSEIF(CDTINI(1:13).EQ.'PARTICULIERES'.OR.
     *       CDTINI(1:10).EQ.'PARTICULAR'.OR.
     *       CDTINI(1:07).EQ.'SPECIAL') THEN
C  ZONE A MODIFIER                                                      
C
C=====================================     
C DEFINITION DES PARAMETRES A UTILISER                        
       N=1.0D0   
       L=2141.D0
       D=1.1D0
       G=9.81D0
       L2=L**2.D0
      
       CORI=(1.457D0*(10.D0**4.D0))*SIN(0.901)
       FREQ=(((8.D0*G*D)/L2)+(CORI**2.D0))**0.5D0
       A=(((D+N)**2.0)-(D**2.0))/(((D+N)**2.0)+(D**2.0))
      
       EQ1=(((1-(A**2.D0))**0.5D0)/(1-A*COS(FREQ*0.0)))-1
       EQ2=(1-(A**2.0))/(1-A*COS(FREQ*0.0)**2.0)-1
      
       DO I = 1, NPOIN
         H%R(I) = 1.D0
       IF ((D*(EQ1-((X(I)**2.D0+Y(I)**2.D0)/L2)*EQ2)).gt.ZF%R(I)) THEN 
         H%R(I) = ((D*(EQ1-(((X(I)**2.D0+Y(I)**2.D0)/L2)*EQ2)))-ZF%R(I))
       END IF 
       END DO 
 
C  FIN DE LA ZONE A MODIFIER      
      ELSE
        IF(LNG.EQ.1) THEN
        WRITE(LU,*) 'CONDIN : CONDITION INITIALE NON PREVUE : ',CDTINI
        ENDIF
        IF(LNG.EQ.2) THEN
        WRITE(LU,*) 'CONDIN: INITIAL CONDITION UNKNOWN: ',CDTINI
        ENDIF
        CALL PLANTE(1)
        STOP
      ENDIF
C
C-----------------------------------------------------------------------
C
C   INITIALISATION DU TRACEUR
C
      IF(NTRAC.GT.0) THEN
        DO ITRAC=1,NTRAC
          CALL OS( 'X=C     ' , X=T%ADR(ITRAC)%P , C=TRAC0(ITRAC) )
        ENDDO
      ENDIF
C
C-----------------------------------------------------------------------
C
C INITIALISATION DE LA VISCOSITE
C
      CALL OS( 'X=C     ' , VISC , VISC , VISC , PROPNU )
C
C-----------------------------------------------------------------------
C
      RETURN
      END
The administrator has disabled public write access.

Modified prabolic bowl test case -- Runcode: Fail to run 10 years 3 months ago #13839

  • jmhervouet
  • jmhervouet's Avatar
Hello,

OK, I see some problems in your implementation. You can refer to the programming rules at the end of the guide to programming in the Telemac system which is available in this website, and it says that you should never do:

X**2.D0

because it is not defined if X<0, moreover it costs a lot because it calls an exponential function, while X**2 is just a multiplication and works if X<0. In your case you do Y(I)**2.D0 and it should crash immediately if Y(I)<0, but maybe the compiler puts a NaN and goes on.

You can also change all X**0.5D0 into SQRT(X) which is much faster.

Regards,

JMH
The administrator has disabled public write access.

Modified prabolic bowl test case -- Runcode: Fail to run 10 years 3 months ago #13840

  • alexhewitt13
  • alexhewitt13's Avatar
Ok i have made the relevant corrections but i am still getting the same error. Any further advice?
The administrator has disabled public write access.

Modified prabolic bowl test case -- Runcode: Fail to run 10 years 3 months ago #13841

  • jmhervouet
  • jmhervouet's Avatar
Hello,

Other suggestions :

* try another scheme to see if it is only this one
* If you have dry zones, check that you duly declared TIDAL FLATS = YES.
* check that you have no discontinuity of depth in your initial conditions (but well why not, it should work)
* add PRINT*,'CHECK=',P_DOTS(H,H,MESH) after you have built the depth to check that there is no NaN left (it prints the dot product of the vector of all depths).
* work with compiler directives that say in which subroutine and at what line it crashes.
* sending your case to our Finite Volume specialist (but he is away for 3 weeks...). It may be that there is somewhere a CALL PLANTE without message before.

Regards,

JMH
The administrator has disabled public write access.

Modified prabolic bowl test case -- Runcode: Fail to run 10 years 3 months ago #13842

  • alexhewitt13
  • alexhewitt13's Avatar
Thank you i will try each of these in turn. In terms of the PRINT *, CHECK, if there are NaN's remaining will it come up with NaN or Infinity?
The administrator has disabled public write access.
Moderators: pham

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