hdiff output

r29328/Gthomson.f90 2015-11-17 23:32:26.668057718 +0000 r29327/Gthomson.f90 2015-11-17 23:32:26.856060239 +0000
174: 174: 
175:       SUBROUTINE GTHOMSONCTOANG(COORDS, P, NATOMS, MYUNIT)175:       SUBROUTINE GTHOMSONCTOANG(COORDS, P, NATOMS, MYUNIT)
176:       USE COMMONS, ONLY: DEBUG176:       USE COMMONS, ONLY: DEBUG
177:       USE KEY, ONLY : GTHOMSONC, GTHOMSONC2, GTHOMSONZ, GTHOMMET, GTREFU, GTREFZ, GTMU, GTK, GTM, GTN, GTA, GTC177:       USE KEY, ONLY : GTHOMSONC, GTHOMSONC2, GTHOMSONZ, GTHOMMET, GTREFU, GTREFZ, GTMU, GTK, GTM, GTN, GTA, GTC
178:       IMPLICIT NONE178:       IMPLICIT NONE
179:       INTEGER, INTENT(IN) :: NATOMS, MYUNIT179:       INTEGER, INTENT(IN) :: NATOMS, MYUNIT
180:       INTEGER J1180:       INTEGER J1
181:       DOUBLE PRECISION, INTENT(INOUT)  :: COORDS(*)181:       DOUBLE PRECISION, INTENT(INOUT)  :: COORDS(*)
182:       DOUBLE PRECISION, INTENT(OUT) :: P(*)182:       DOUBLE PRECISION, INTENT(OUT) :: P(*)
183:       DOUBLE PRECISION :: PI, HALFPI, phi, u, DIST183:       DOUBLE PRECISION :: PI, HALFPI, phi, u, DIST
184:       DOUBLE PRECISION RADIUS, DUMMY184:       DOUBLE PRECISION RADIUS
185:       DOUBLE PRECISION, PARAMETER :: TOLERANCE = 1.D-8185:       DOUBLE PRECISION, PARAMETER :: TOLERANCE = 1.D-8
186:       LOGICAL POLAR186:       LOGICAL POLAR
187: 187: 
188:       PI = 4.0D0*ATAN(1.0D0)188:       PI = 4.0D0*ATAN(1.0D0)
189:       HALFPI = 2.0D0*ATAN(1.0D0)189:       HALFPI = 2.0D0*ATAN(1.0D0)
190: 190: 
191: ! jwrm2> Attempt to detect if the coordintes are already polar. We'll assume they are if all the x coordinates191: ! jwrm2> Attempt to detect if the coordintes are already polar. We'll assume they are if all the x coordinates
192: !        are between 0 and 2pi, all the y coordinates are between 0 and pi and all the z coordinates are zero, 192: !        are between 0 and 2pi, all the y coordinates are between 0 and pi and all the z coordinates are zero, 
193: !        This is not guaranteed to mean they're polar, but should be ok since it shouldn't be a 2D system.193: !        This is not guaranteed to mean they're polar, but should be ok since it shouldn't be a 2D system.
194:       POLAR = .TRUE.194:       POLAR = .TRUE.
255:             ENDIF255:             ENDIF
256: 256: 
257:             phi = (u - GTrefU/GTmu)*GTmu/pi/GThomsonZ257:             phi = (u - GTrefU/GTmu)*GTmu/pi/GThomsonZ
258:             if (phi > 1.0D0) phi = 1.0D0258:             if (phi > 1.0D0) phi = 1.0D0
259:             if (phi <-1.0D0) phi =-1.0D0259:             if (phi <-1.0D0) phi =-1.0D0
260:             P(3*J1-1) = ACOS(phi)260:             P(3*J1-1) = ACOS(phi)
261: 261: 
262:          ELSE IF ( GTHOMMET .EQ. 5 )  THEN262:          ELSE IF ( GTHOMMET .EQ. 5 )  THEN
263:             263:             
264:             IF ( COORDS(3*J1) < 0.0D0 ) THEN               264:             IF ( COORDS(3*J1) < 0.0D0 ) THEN               
265:                DUMMY=-COORDS(3*J1)/RADIUS265:                P(3*J1-1) = 2*HALFPI - ACOS(-COORDS(3*J1)/RADIUS)
266:                IF (DUMMY.GT.1.0D0) DUMMY=1.0D0 
267:                IF (DUMMY.LT.-1.0D0) DUMMY=-1.0D0 
268:                P(3*J1-1) = 2*HALFPI - ACOS(DUMMY) 
269:             ELSE266:             ELSE
270:                IF ( COORDS(3*J1)/RADIUS .GE. 1.0D0 ) THEN267:                IF ( COORDS(3*J1)/RADIUS .GE. 1.0D0 ) THEN
271:                   P(3*J1-1) = 0.0D0268:                   P(3*J1-1) = 0.0D0
272:                ELSE IF ( COORDS(3*J1)/RADIUS .LE. -1.0D0 ) THEN269:                ELSE IF ( COORDS(3*J1)/RADIUS .LE. -1.0D0 ) THEN
273:                   P(3*J1-1) = 2*HALFPI270:                   P(3*J1-1) = 2*HALFPI
274:                ELSE271:                ELSE
275:                   DUMMY=COORDS(3*J1)/RADIUS 
276:                   IF (DUMMY.GT.1.0D0) DUMMY=1.0D0 
277:                   IF (DUMMY.LT.-1.0D0) DUMMY=-1.0D0 
278:                   P(3*J1-1) = ACOS(COORDS(3*J1)/RADIUS)272:                   P(3*J1-1) = ACOS(COORDS(3*J1)/RADIUS)
279:                ENDIF273:                ENDIF
280:             ENDIF274:             ENDIF
281: 275: 
282:          ENDIF276:          ENDIF
283:          277:          
284:          IF ( P(3*J1-2) > 4*HALFPI ) P(3*J1-2) = P(3*J1-2) - 4*HALFPI 278:          IF ( P(3*J1-2) > 4*HALFPI ) P(3*J1-2) = P(3*J1-2) - 4*HALFPI 
285:          IF ( P(3*J1-2) < 0.0D0    ) P(3*J1-2) = P(3*J1-2) + 4*HALFPI 279:          IF ( P(3*J1-2) < 0.0D0    ) P(3*J1-2) = P(3*J1-2) + 4*HALFPI 
286:          IF ( P(3*J1-1) > 4*HALFPI ) P(3*J1-1) = P(3*J1-1) - 4*HALFPI 280:          IF ( P(3*J1-1) > 4*HALFPI ) P(3*J1-1) = P(3*J1-1) - 4*HALFPI 
287:          IF ( P(3*J1-1) < 0.0D0    ) P(3*J1-1) = P(3*J1-1) + 4*HALFPI 281:          IF ( P(3*J1-1) < 0.0D0    ) P(3*J1-1) = P(3*J1-1) + 4*HALFPI 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0