27 INTEGER,
INTENT (IN) :: WALL
29 INTEGER,
INTENT (IN) :: L
32 INTEGER,
INTENT (INOUT) :: WALLCONTACT
37 DOUBLE PRECISION :: XPOS, YPOS, ZPOS
39 DOUBLE PRECISION :: LXE, LXW, LYN, LYS, LZT, LZB
41 DOUBLE PRECISION :: DistApart
53 xpos = des_pos_new(l,1)
54 ypos = des_pos_new(l,2)
55 IF(
do_k) zpos = des_pos_new(l,3)
65 ELSEIF (des_periodic_walls)
THEN 67 IF( (des_periodic_walls_x .AND. (wall.EQ.1.OR.wall.EQ.2)).OR.&
68 (des_periodic_walls_y .AND. (wall.EQ.3.OR.wall.EQ.4)).OR.&
69 (
do_k.AND.des_periodic_walls_z .AND. &
70 (wall.EQ.5.OR.wall.EQ.6)) )
THEN 78 distapart = xpos-lxw-des_radius(l)
81 IF( distapart <= wall_vdw_outer_cutoff ) wallcontact = 1
84 ELSEIF(wall.EQ.2)
THEN 85 distapart = lxe-xpos-des_radius(l)
86 IF( distapart <= wall_vdw_outer_cutoff ) wallcontact = 1
89 ELSEIF(wall.EQ.3)
THEN 90 distapart = ypos-(lys)-des_radius(l)
91 IF( distapart <= wall_vdw_outer_cutoff ) wallcontact = 1
94 ELSEIF(wall.EQ.4)
THEN 95 distapart = lyn-ypos-des_radius(l)
96 IF( distapart <= wall_vdw_outer_cutoff ) wallcontact = 1
99 ELSEIF(wall.EQ.5)
THEN 100 distapart = zpos-lzb-des_radius(l)
101 IF( distapart <= wall_vdw_outer_cutoff ) wallcontact = 1
104 ELSEIF(wall.EQ.6)
THEN 105 distapart = lzt-zpos-des_radius(l)
106 IF( distapart <= wall_vdw_outer_cutoff ) wallcontact = 1