28 INTEGER(GRIDMAN_SP) :: nsurf,ip1,ip2,i
30 REAL(GRIDMAN_DP),
ALLOCATABLE :: x(:,:),y(:,:),s(:),vn(:,:)
31 INTEGER(GRIDMAN_SP),
ALLOCATABLE :: isrf(:)
33 REAL(GRIDMAN_DP) :: vol(1),xcn(2,1),x1,y1,x2,y2
38 CALL gridman_addsurf2d_read(grid,
'./input/iterm.carre.105',ierr)
40 WRITE(*,*)
"ERROR after GRIDMAN_ADDSURF2D_READ_ARRAY"
41 WRITE(*,*)
"Expected value IERR=100, IERR ",ierr
42 stop
"TEST_ADDSURF TERMINATED"
45 CALL gridman_addsurf2d_read(grid,
'./input/input.eir.corrupt',ierr)
47 WRITE(*,*)
"ERROR after GRIDMAN_ADDSURF2D_READ_ARRAY"
48 WRITE(*,*)
"Expected value IERR=300, IERR ",ierr
49 stop
"TEST_ADDSURF TERMINATED"
52 CALL gridman_addsurf2d_read(
'./input/input.eir',
53 c nsurf,x,y,isrf,ierr)
54 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
56 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
58 CALL gridman_addsurf2d_read(grid,
'./input/input.eir',ierr)
59 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
61 IF(grid%NEDGES.NE.180_gridman_sp)
THEN
62 WRITE(*,*)
"ERROR after GRIDMAN_ADDSURF2D_READ"
63 WRITE(*,*)
"Expected value NEDGES=180, NEDGES ",grid%NEDGES
64 stop
"TEST_ADDSURF TERMINATED"
67 ip1=grid%POINTS(1,180)
68 ip2=grid%POINTS(2,180)
73 IF(abs(x1-491.389000000000).GT.
gridman_tol*abs(x1).OR.
74 f abs(y1+394.193000000000).GT.
gridman_tol*abs(y1).OR.
75 f abs(x2-481.061000000000).GT.
gridman_tol*abs(x2).OR.
76 f abs(y2+390.124000000000).GT.
gridman_tol*abs(y2))
THEN
77 WRITE(*,*)
"ERROR after GRIDMAN_ADDSURF2D_READ: ",
79 WRITE(*,*)
" X1, Y1, X2, Y2 ",x1,y1,x2,y2
80 WRITE(*,*)
"Expected ", 491.389,-394.193,481.061,-390.124
81 stop
"TEST_ADDSURF TERMINATED"
84 IF(grid%EDGEINDEX(1)%NELEMENTS.NE.grid%NEDGES)
THEN
85 WRITE(*,*)
"ERROR after GRIDMAN_ADDSURF2D_READ: ",
87 WRITE(*,*)
" NELEMENETS, NEDGES ",
88 w grid%EDGEINDEX(1)%NELEMENTS,grid%NEDGES
89 stop
"TEST_ADDSURF TERMINATED"
91 DO i=1,grid%EDGEINDEX(1)%NELEMENTS
92 ip1=grid%EDGEINDEX(1)%INDEXES(0,i)
93 ip2=grid%EDGEINDEX(1)%INDEXES(1,i)
94 IF(ip1.NE.i.OR.ip2.NE.i)
THEN
95 WRITE(*,*)
"ERROR after GRIDMAN_ADDSURF2D_READ: ",
97 WRITE(*,*)
" IE, IEDGE, IADD ",i,ip1,ip2
98 stop
"TEST_ADDSURF TERMINATED"
110 ALLOCATE(s(grid%NEDGES))
112 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
115 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
118 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
120 ALLOCATE(vn(2,grid%NEDGES))
122 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
125 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
128 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
130 CALL gridman_grid_write(grid,
'addsrf.grd',ierr)
131 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
134 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
136 CALL gridman_grid_write(grid,
'addsrf.grd',ierr)
137 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
139 CALL gridman_grid_read(grid,
'addsrf.grd',ierr)
140 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
143 IF(ierr.NE.0) stop
"TEST_ADDSURF TERMINATED"
146 WRITE(*,*)
"ERROR after GRIDMAN_GRID_READ"
147 WRITE(*,*)
"Expected value RES=0, RES ",res
148 stop
"TEST_ADDSURF TERMINATED"
151 WRITE(*,*)
"TEST_ADDSURF COMPLETED"
153 END PROGRAM test_addsurf
logical, save, public gridman_check
Switch to enforce extra checks of input parameters.
real(gridman_dp), save, public gridman_tol
Tolerance parameter which is used to compare two real numbers.
subroutine gridman_grid2d_cylvolumes(GRID, VCELLS, IERR, ANGLE)
Calculate cylindrical cell volumes.
Explicit interfaces to GRIDMAN subroutines and functions.
subroutine gridman_addsurf2grid_2d(GRID, NSURF, X, Y, ISRF, IERR)
Convert planar EIRENE Additional Surfaces into grid object.
subroutine gridman_grid2d_cylareas(GRID, SEDGES, IERR, ANGLE)
Calculate cylindrical areas of the cell edges.
Data-type which describes a grid as a set of edges, methods in grid.f.
subroutine gridman_grid2d_center(GRID, XCN, IERR)
Calculate coordinates of the cell centers.
subroutine gridman_grid2d_isconvex(GRID, ISCONVEX, IERR)
Find if cells are convex polygons or not.
subroutine gridman_grid_copy(GRID2, GRID1, IERR)
Create a copy of the grid object.
subroutine gridman_grid2d_norm(GRID, VN, IERR)
Calculate unit normal vectors to grid edges.
Definition of data types, global constants and variables.
subroutine gridman_grid2d_crossect(GRID, SCELLS, IERR)
Calculate cross section area of the cells.
subroutine gridman_grid_compare(GRID1, GRID2, RES, IERR)
Compare two grid objects.