Line data Source code
1 : !-------------------------------------------------------------------------------- 2 : ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany 3 : ! This file is part of FLEUR and available as free software under the conditions 4 : ! of the MIT license as expressed in the LICENSE file in more detail. 5 : !-------------------------------------------------------------------------------- 6 : 7 : MODULE m_cylpts 8 : CONTAINS 9 0 : SUBROUTINE cylpts(x,n,rad) 10 : c ********************************************************* 11 : c YM: generate random points on the cylindrical vacuum boundary 12 : c ********************************************************* 13 : USE m_constants, ONLY : tpi_const 14 : USE m_qranf 15 : IMPLICIT NONE 16 : 17 : INTEGER n 18 : REAL rad 19 : REAL x(3,n) 20 : REAL phi,t,tc,y1,x1,xr,yr 21 : INTEGER r,j,i 22 : 23 : INTRINSIC sqrt 24 : 25 : 26 0 : yr = sqrt(7.) 27 : 28 0 : j = 0 29 : 30 0 : DO 10 i = 1,n 31 0 : x(3,i) = qranf(yr,j) - 0.5 32 0 : 10 CONTINUE 33 : 34 0 : j = 0 35 0 : xr = sqrt(13.e0) 36 0 : yr = sqrt(7.e0) 37 0 : DO 20 i = 1,n 38 0 : tc = 2.e0*qranf(xr,j) - 1.e0 39 0 : phi = tpi_const*qranf(yr,j) 40 : t = sqrt(1.e0-tc*tc) 41 0 : x1 = cos(phi) 42 0 : y1 = sin(phi) 43 0 : x(1,i) = rad*x1 44 0 : x(2,i) = rad*y1 45 0 : 20 CONTINUE 46 : 47 0 : END SUBROUTINE cylpts 48 : END MODULE m_cylpts