diffrac.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\tomawac\diffrac.f
00002 !
00084                         SUBROUTINE DIFFRAC
00085 !                       ******************
00086 !
00087      &( CX    , CY    , CT    , XK    , CG    , DEPTH , DZX   , DZY   ,
00088      &  FREQ  , COSTET, SINTET, NPOIN2, NPLAN , IFF   , NF    , PROINF,
00089      &  SPHE  , A     , DFREQ , F     , CCG   , DIV   , DELTA , DDX   ,
00090      &  DDY   , EPS   , NBOR  , NPTFR , XKONPT, RK    , RX    , RY    ,
00091      &  RXX   , RYY   , NEIGB , NB_CLOSE, DIFFRA, MAXNSP, FLTDIF,OPTDER)
00092 !
00093 !***********************************************************************
00094 ! TOMAWAC   V7P0                                   25/06/2012
00095 !***********************************************************************
00096 !
00097 !
00098 !
00099 !
00100 !
00101 !
00102 !
00103 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00104 !| A              |<--| AMPLITUDE OF DIRECTIONAL SPECTRUM
00105 !| CCG            |<--| GROUP VELOCITY TIMES PHASE VELOCITY
00106 !| CG             |-->| DISCRETIZED GROUP VELOCITY
00107 !| COSTET         |-->| COSINE OF TETA ANGLE
00108 !| CX             |<->| ADVECTION FIELD ALONG X(OR PHI)
00109 !| CY             |<->| ADVECTION FIELD ALONG Y(OR LAMBDA)
00110 !| CT             |<->| ADVECTION FIELD ALONG TETA
00111 !| DDX            |<--| X-DERIVATIVE OF A VARIABLE
00112 !| DDY            |<--| Y-DERIVATIVE OF A VARIABLE
00113 !| DELTA          |<--| DIFFRACTION PARAMETER
00114 !| DEPTH          |-->| WATER DEPTH
00115 !| DFREQ          |-->| FREQUENCY STEPS BETWEEN DISCRETIZED FREQUENCIES
00116 !| DIFFRA         |-->| IF >0 DIFFRACTION IS CONSIDERED
00117 !|                      IF = 1 MSE FORMULATION
00118 !|                      IF = 2 RMSE FORMULATION
00119 !| DIV            |<--| DIVERGENCE OF FUNCTION USED FOR DELTA COMPUT.
00120 !| DZX            |-->| BOTTOM SLOPE ALONG X
00121 !| DZY            |-->| BOTTOM SLOPE ALONG Y
00122 !| EPS            |-->| VARIANCE THRESHOLD FOR DIFFRACTION
00123 !| F              |<->| VARIANCE DENSITY DIRECTIONAL SPECTRUM
00124 !| FLTDIF         |-->| IF TRUE, LOCAL AMPLITUDES ARE FILTERED
00125 !| FREQ           |-->| DISCRETIZED FREQUENCIES
00126 !| IFF            |-->| FREQUENCY INDEX
00127 !| MAXNSP         |-->| CONSTANT FOR MESHFREE TECHNIQUE
00128 !| NB_CLOSE       |-->| ARRAY USED IN THE MESHFREE TECHNIQUE
00129 !| NBOR           |-->| GLOBAL NUMBER OF BOUNDARY POINTS
00130 !| NEIGB          |-->| NEIGHBOUR POINTS FOR MESHFREE METHOD
00131 !| NF             |-->| NUMBER OF FREQUENCIES
00132 !| NPLAN          |-->| NUMBER OF DIRECTIONS
00133 !| NPOIN2         |-->| NUMBER OF POINTS IN 2D MESH
00134 !| NPTFR          |-->| NUMBER OF BOUNDARY POINTS
00135 !| PROINF         |-->| LOGICAL INDICATING INFINITE DEPTH ASSUMPTION
00136 !| RK             |-->| ARRAY USED IN THE MESHFREE TECHNIQUE
00137 !| RX             |-->| ARRAY USED IN THE MESHFREE TECHNIQUE
00138 !| RXX            |-->| ARRAY USED IN THE MESHFREE TECHNIQUE
00139 !| RY             |-->| ARRAY USED IN THE MESHFREE TECHNIQUE
00140 !| RYY            |-->| ARRAY USED IN THE MESHFREE TECHNIQUE
00141 !| SINTET         |-->| SINE OF TETA ANGLE
00142 !| SPHE           |-->| LOGICAL INDICATING SPHERICAL COORD ASSUMPTION
00143 !| XK             |-->| DISCRETIZED WAVE NUMBER
00144 !| XKONPT         |<--| ARRAY USED FOR COMPUTING DIFFRACTION PARAMETER
00145 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00146 !
00147       USE BIEF
00148       USE DECLARATIONS_TOMAWAC, ONLY : DEUPI,ST1,ST0,IELM2,SA,MESH,
00149      &                                 SCCG,SDELTA,SXKONPT,SDDX,SDDY
00150 !
00151       IMPLICIT NONE
00152 !
00153       INTEGER LNG,LU
00154       COMMON/INFO/ LNG,LU
00155 !
00156 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00157 !
00158       INTEGER, INTENT(IN) :: NF,NPLAN,NPOIN2,NPTFR,IFF,MAXNSP,OPTDER
00159       INTEGER, INTENT(IN) :: NB_CLOSE(NPOIN2),NEIGB(NPOIN2,MAXNSP)
00160       INTEGER, INTENT(IN)             :: DIFFRA,NBOR(NPTFR)
00161       DOUBLE PRECISION, INTENT(INOUT) :: CX(NPOIN2,NPLAN)
00162       DOUBLE PRECISION, INTENT(INOUT) :: CY(NPOIN2,NPLAN)
00163       DOUBLE PRECISION, INTENT(IN)    :: FREQ(NF)
00164       DOUBLE PRECISION, INTENT(INOUT) :: CT(NPOIN2,NPLAN)
00165       DOUBLE PRECISION, INTENT(IN)    :: CG(NPOIN2,NF),XK(NPOIN2,NF)
00166       DOUBLE PRECISION, INTENT(IN)    :: DEPTH(NPOIN2)
00167       DOUBLE PRECISION, INTENT(IN)    :: DZX(NPOIN2),DZY(NPOIN2)
00168       DOUBLE PRECISION, INTENT(IN)    :: COSTET(NPLAN),SINTET(NPLAN)
00169       DOUBLE PRECISION, INTENT(INOUT) :: A(NPOIN2)
00170       DOUBLE PRECISION, INTENT(IN)    :: DFREQ(NF)
00171       DOUBLE PRECISION, INTENT(IN)    :: F(NPOIN2,NPLAN,NF)
00172       DOUBLE PRECISION, INTENT(INOUT) :: CCG(NPOIN2), DIV(NPOIN2)
00173       DOUBLE PRECISION, INTENT(INOUT) :: DELTA(NPOIN2)
00174       DOUBLE PRECISION, INTENT(INOUT) :: DDX(NPOIN2), DDY(NPOIN2)
00175       DOUBLE PRECISION, INTENT(IN)    :: EPS
00176       DOUBLE PRECISION, INTENT(IN)    :: RK(MAXNSP,NPOIN2)
00177       DOUBLE PRECISION, INTENT(IN)    :: RX(MAXNSP,NPOIN2)
00178       DOUBLE PRECISION, INTENT(IN)    :: RY(MAXNSP,NPOIN2)
00179       DOUBLE PRECISION, INTENT(IN)    :: RXX(MAXNSP,NPOIN2)
00180       DOUBLE PRECISION, INTENT(IN)    :: RYY(MAXNSP,NPOIN2)
00181       DOUBLE PRECISION, INTENT(INOUT) :: XKONPT(NPOIN2)
00182       LOGICAL, INTENT(IN)             :: PROINF,SPHE,FLTDIF
00183 !
00184 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00185 !
00186       INTEGER I, IP, IPOIN
00187       DOUBLE PRECISION CDELTA,DELTAN
00188       DOUBLE PRECISION,ALLOCATABLE:: SQRDELTA(:)
00189       DOUBLE PRECISION,ALLOCATABLE:: SQRCCG(:)
00190       DOUBLE PRECISION,ALLOCATABLE:: FRDK(:,:),FRDA(:,:),SCDA(:,:)
00191       LOGICAL,ALLOCATABLE:: L_DELTA(:)
00192 !
00193       LOGICAL DEJA
00194       DATA DEJA/.FALSE./
00195 !
00196       INTRINSIC ABS,SQRT
00197 !
00198       SAVE
00199 !
00200 !***********************************************************************
00201 !
00202 !     NOTE JMH: THERE ARE ENOUGH ARRAYS ELSEWHERE, THIS IS USELESS...
00203 !
00204       IF(.NOT.DEJA)THEN
00205         ALLOCATE(SQRDELTA(NPOIN2))
00206         ALLOCATE(SQRCCG(NPOIN2))
00207         ALLOCATE(FRDK(NPOIN2,2))
00208         ALLOCATE(FRDA(NPOIN2,2))
00209         ALLOCATE(SCDA(NPOIN2,3))
00210         ALLOCATE(L_DELTA(NPOIN2))
00211         DEJA=.TRUE.
00212       ENDIF
00213 !
00214 !-----------------------------------------------------------------------
00215 !     INFINITE WATER DEPTH ...
00216 !-----------------------------------------------------------------------
00217 !
00218       IF(PROINF) THEN
00219 !
00220         IF(LNG.EQ.1) THEN
00221           WRITE(LU,*) ''
00222           WRITE(LU,*) '***************************************'
00223           WRITE(LU,*) ' ATTENTION : LA DIFFRACTION N''EST PAS '
00224           WRITE(LU,*) ' PRISE EN COMPTE DANS LE CAS D''UNE    '
00225           WRITE(LU,*) ' PROFONDEUR INFINIE                    '
00226           WRITE(LU,*) '***************************************'
00227         ELSE
00228           WRITE(LU,*) ''
00229           WRITE(LU,*) '***************************************'
00230           WRITE(LU,*) ' ATTENTION : DIFFRACTION IS NOT TAKEN  '
00231           WRITE(LU,*) ' INTO ACCOUNT IN THE CASE OF INFINITE  '
00232           WRITE(LU,*) ' WATER DEPTH                           '
00233           WRITE(LU,*) '***************************************'
00234         ENDIF
00235         CALL PLANTE(1)
00236         STOP
00237 !
00238 !-----------------------------------------------------------------------
00239 !     FINITE DEPTH
00240 !-----------------------------------------------------------------------
00241 !
00242       ELSE
00243 !
00244 !     ------------------------------------------------------------------
00245 !        ... CARTESIAN COORDINATES
00246 !     ------------------------------------------------------------------
00247 !
00248       IF(.NOT.SPHE) THEN
00249 !
00250 !     DIFFRACTION IS TAKEN INTO ACCOUNT
00251 !
00252 !     CCG VECTOR COMPUTATION
00253 !
00254       DO IPOIN=1,NPOIN2
00255         CCG(IPOIN) = CG(IPOIN,IFF)*DEUPI*FREQ(IFF)/XK(IPOIN,IFF)
00256         XKONPT(IPOIN)=1.D0/(XK(IPOIN,IFF)**2)
00257         SQRCCG(IPOIN)=SQRT(ABS(CCG(IPOIN)))
00258       ENDDO
00259 !
00260 !     INVERSE OF INTEGRALS OF TEST FUNCTIONS
00261 !
00262       CALL VECTOR(ST0,'=','MASBAS          ',IELM2,1.D0,
00263      &            ST0,ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00264      &            ASSPAR=.TRUE.)
00265       CALL OS('X=1/Y   ',X=ST0,Y=ST0)
00266 !
00267 !     LOOP OVER THE DIRECTIONS
00268 !
00269       DO IP = 1,NPLAN
00270 !
00271 !       COMPUTATION OF LOCAL AMPLITUDES OF DIRECTIONAL SPECTRA
00272 !
00273         DO IPOIN = 1,NPOIN2
00274           A(IPOIN) = SQRT(2.D0*F(IPOIN,IP,IFF)*DFREQ(IFF)*DEUPI/NPLAN)
00275           IF(DIFFRA.EQ.2)THEN
00276             A(IPOIN)=A(IPOIN)*XK(IPOIN,IFF)*SQRCCG(IPOIN)
00277           ENDIF
00278         ENDDO
00279 !
00280 !       Filtering the local amplitudes of directional spectra
00281 !
00282         IF(FLTDIF) CALL FILT_SA
00283 !
00284         CALL VECTOR(ST1,'=','GRADF          X',IELM2,1.D0,SA,
00285      &              ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00286      &              ASSPAR=.TRUE.)
00287         DO I=1,NPOIN2
00288           FRDA(I,1)=ST1%R(I)*ST0%R(I)
00289         ENDDO
00290         CALL VECTOR(ST1,'=','GRADF          Y',IELM2,1.D0,SA,
00291      &              ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00292      &              ASSPAR=.TRUE.)
00293         DO I=1,NPOIN2
00294           FRDA(I,2)=ST1%R(I)*ST0%R(I)
00295         ENDDO
00296 !
00297 !       DIFFRA=1 - Mean Slope Equation model
00298 !       DIFFRA=2 - Revised Mean Slope Equation model
00299 !
00300         IF(DIFFRA.EQ.1) THEN
00301 !
00302           CALL VECTOR(ST1,'=','GRADF          X',IELM2,1.D0,SCCG,
00303      &                ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00304      &                ASSPAR=.TRUE.)
00305           DO I=1,NPOIN2
00306             FRDK(I,1)=ST1%R(I)*ST0%R(I)
00307           ENDDO
00308           CALL VECTOR(ST1,'=','GRADF          Y',IELM2,1.D0,SCCG,
00309      &                ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00310      &                ASSPAR=.TRUE.)
00311           DO I=1,NPOIN2
00312             FRDK(I,2)=ST1%R(I)*ST0%R(I)
00313           ENDDO
00314 !
00315         ELSE
00316 !
00317           CALL VECTOR(ST1,'=','GRADF          X',IELM2,1.D0,SXKONPT,
00318      &                ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00319      &                ASSPAR=.TRUE.)
00320           DO I=1,NPOIN2
00321             FRDK(I,1)=ST1%R(I)*ST0%R(I)
00322           ENDDO
00323           CALL VECTOR(ST1,'=','GRADF          Y',IELM2,1.D0,SXKONPT,
00324      &                ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00325      &                ASSPAR=.TRUE.)
00326           DO I=1,NPOIN2
00327             FRDK(I,2)=ST1%R(I)*ST0%R(I)
00328           ENDDO
00329 !
00330         ENDIF
00331 !
00332 !
00333 !       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
00334 !       CALCUL DE D2A/DX2 + D2A/DY2 AVEC LA METHODE FREEMESH
00335 !       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
00336 !
00337         IF(OPTDER.EQ.1) THEN
00338 !
00339           DO IPOIN = 1,NPOIN2
00340 !           calculate first and second derivative of A ( FFD=A)
00341 !           note JMH: pour first il y a .FALSE.  !!!
00342 !                     et seul SCDA(IPOIN,3) est utilisť
00343             CALL RPI_INTR(NEIGB,NB_CLOSE,
00344      &                    RK(1,IPOIN),RX(1,IPOIN),RY(1,IPOIN),
00345      &                    RXX(1,IPOIN),RYY(1,IPOIN),
00346      &                    NPOIN2,IPOIN,MAXNSP,A,
00347      &                    FRDA(IPOIN,1),FRDA(IPOIN,2),
00348      &                    SCDA(IPOIN,1),SCDA(IPOIN,2),
00349      &                    SCDA(IPOIN,3),.FALSE.,.TRUE.)
00350         ENDDO
00351 !
00352         ELSEIF(OPTDER.EQ.2) THEN
00353 !
00354 !         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
00355 !         CALCUL DE D2A/DX2 + D2A/DY2 AVEC LA METHODE BETE
00356 !         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
00357 !
00358 !         FRDA not very convenient, copy required here...
00359 !
00360           DO I=1,NPOIN2
00361             SDDX%R(I)=FRDA(I,1)
00362             SDDY%R(I)=FRDA(I,2)
00363           ENDDO
00364           CALL VECTOR(ST1,'=','GRADF          X',IELM2,1.D0,SDDX,
00365      &                ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00366      &                ASSPAR=.TRUE.)
00367           DO I=1,NPOIN2
00368             SCDA(I,3)=ST1%R(I)*ST0%R(I)
00369           ENDDO
00370           CALL VECTOR(ST1,'=','GRADF          Y',IELM2,1.D0,SDDY,
00371      &                ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00372      &                ASSPAR=.TRUE.)
00373           DO I=1,NPOIN2
00374             SCDA(I,3)=SCDA(I,3)+ST1%R(I)*ST0%R(I)
00375           ENDDO
00376 !
00377         ELSE
00378           WRITE(LU,*) 'OPTDER=',OPTDER,' NOT TREATED'
00379           CALL PLANTE(1)
00380           STOP
00381         ENDIF
00382 !
00383 !       DIFFRA=1 - Mean Slope Equation model
00384 !       DIFFRA=2 - Revised Mean Slope Equation model
00385 !
00386         IF(DIFFRA.EQ.1)THEN
00387           DO IPOIN = 1,NPOIN2
00388             DIV(IPOIN)=CCG(IPOIN)*SCDA(IPOIN,3)
00389      &              + FRDK(IPOIN,1)*FRDA(IPOIN,1)
00390      &              + FRDK(IPOIN,2)*FRDA(IPOIN,2)
00391           ENDDO
00392         ELSE
00393           DO IPOIN = 1,NPOIN2
00394             DIV(IPOIN)=XKONPT(IPOIN)*SCDA(IPOIN,3)
00395      &               + FRDK(IPOIN,1)*FRDA(IPOIN,1)
00396      &               + FRDK(IPOIN,2)*FRDA(IPOIN,2)
00397           ENDDO
00398         ENDIF
00399 !
00400 !       Calculating Delta=div/A
00401 !
00402         DO IPOIN = 1,NPOIN2
00403             L_DELTA(IPOIN)=.TRUE.
00404             IF(F(IPOIN,IP,IFF).LE.EPS) THEN
00405               DELTA(IPOIN) = 0.D0
00406               L_DELTA(IPOIN)=.FALSE.
00407               SQRDELTA(IPOIN) =1.D0
00408             ELSE
00409 !             DIFFRA=1 - Mean Slope Equation model
00410 !             DIFFRA=2 - Revised Mean Slope Equation model
00411               IF(DIFFRA.EQ.1) THEN
00412                 DELTA(IPOIN)=DIV(IPOIN)*XKONPT(IPOIN)/
00413      &                       (CCG(IPOIN)*A(IPOIN))
00414               ELSE
00415                 DELTA(IPOIN)=(DIV(IPOIN)/A(IPOIN))
00416               ENDIF
00417 !
00418               IF(DELTA(IPOIN).LE.-1.D0) THEN
00419 !               JMH: discutable !!!!!!
00420                 SQRDELTA(IPOIN) =1.D0
00421                 L_DELTA(IPOIN)=.FALSE.
00422                 DELTA(IPOIN)= 0.D0
00423               ELSE
00424                 SQRDELTA(IPOIN) = SQRT(1.D0+DELTA(IPOIN))
00425                 L_DELTA(IPOIN)=.TRUE.
00426               ENDIF
00427 !             JMH: discutable !!!!!
00428               IF(SQRDELTA(IPOIN).LE.EPS) THEN
00429                 SQRDELTA(IPOIN) =1.D0
00430                 L_DELTA(IPOIN)=.FALSE.
00431                 DELTA(IPOIN)= 0.D0
00432               ENDIF
00433            ENDIF
00434         ENDDO
00435 !
00436         DO I = 1,NPTFR
00437           IPOIN = NBOR(I)
00438           L_DELTA(IPOIN)=.FALSE.
00439 !         JMH: discutable !!!
00440           DELTA(IPOIN)= 0.D0
00441         ENDDO
00442 !
00443 !       DELTA GRADIENT COMPUTATION
00444 !
00445         CALL VECTOR(ST1,'=','GRADF          X',IELM2,1.D0,SDELTA,
00446      &              ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00447      &              ASSPAR=.TRUE.)
00448         CALL OV('X=YZ    ',SDDX%R,ST1%R,ST0%R,0.D0,NPOIN2)
00449         CALL VECTOR(ST1,'=','GRADF          Y',IELM2,1.D0,SDELTA,
00450      &              ST0,ST0,ST0,ST0,ST0,MESH,.FALSE.,ST0,
00451      &              ASSPAR=.TRUE.)
00452         CALL OV('X=YZ    ',SDDY%R,ST1%R,ST0%R,0.D0,NPOIN2)
00453 !
00454 !       calculation of CG_n =CG(1+delta)^0.5
00455 !       and of modified transfer rates Cx,Cy,Ctheta
00456 !
00457         DO IPOIN=1,NPOIN2
00458           IF(L_DELTA(IPOIN)) THEN
00459             DELTAN = -SINTET(IP)*DDY(IPOIN)+COSTET(IP)*DDX(IPOIN)
00460             CDELTA = CG(IPOIN,IFF)/SQRDELTA(IPOIN)/2.D0
00461             CT(IPOIN,IP)=CT(IPOIN,IP)*SQRDELTA(IPOIN)-CDELTA*DELTAN
00462             CX(IPOIN,IP)=CX(IPOIN,IP)*SQRDELTA(IPOIN)
00463             CY(IPOIN,IP)=CY(IPOIN,IP)*SQRDELTA(IPOIN)
00464           ENDIF
00465         ENDDO
00466 !
00467       ENDDO !    IP
00468 !
00469 !     ----------------------------------------------------------------
00470 !       ... AND SPHERICAL COORDINATES
00471 !     ----------------------------------------------------------------
00472 !
00473       ELSE
00474 !
00475         IF(LNG.EQ.1) THEN
00476           WRITE(LU,*) ''
00477           WRITE(LU,*) '***************************************'
00478           WRITE(LU,*) ' ATTENTION : LA VERSION ACTUELLE DE    '
00479           WRITE(LU,*) ' TOMAWAC NE PEUT PAS SIMULER LA        '
00480           WRITE(LU,*) ' DIFFRACTION AVEC LES COORDONNES       '
00481           WRITE(LU,*) ' SPHERIQUES                            '
00482           WRITE(LU,*) '***************************************'
00483         ELSE
00484           WRITE(LU,*) ''
00485           WRITE(LU,*) '***************************************'
00486           WRITE(LU,*) ' ATTENTION : THE PRESENT VERSION OF    '
00487           WRITE(LU,*) ' TOMAWAC CANNOT SIMULATE DIFFRACTION   '
00488           WRITE(LU,*) ' WHEN SPHERICAL COORDINATES ARE SET    '
00489           WRITE(LU,*) '***************************************'
00490         ENDIF
00491         CALL PLANTE(1)
00492         STOP
00493 !
00494 ! ENDIF (Finite depth)
00495       ENDIF
00496 !ENDIF (Cartesian coordinates)
00497       ENDIF
00498 !
00499 !-----------------------------------------------------------------------
00500 !
00501       RETURN
00502       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0