46 WRITE(*,*)
"TEST_GRID1 COMPLETED"
48 END PROGRAM test_grid1
59 INTEGER(GRIDMAN_SP) :: ncount
61 CALL grid_example1(grid,ierr)
62 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
65 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
67 WRITE(*,*)
"ERORR in GRIDMAN_GRID_NCOUNT"
68 WRITE(*,*)
"Expected value NCOUNT=10, NCOUNT ",ncount
69 stop
"TEST_GRID1 TERMINATED"
73 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
75 END SUBROUTINE test_count
86 INTEGER(GRIDMAN_SP) :: ncells,nedges,npoints
87 INTEGER ::
TYPE,res,ierr
89 CALL grid_example1(grid,ierr)
90 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
100 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
103 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
106 IF(res.NE.8.OR.ierr.NE.0)
THEN
107 WRITE(*,*)
"ERROR in GRIDMAN_GRID_TAKE"
108 stop
"TEST_GRID1 TERMINATED"
112 c npoints,ncells,ierr)
113 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
115 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
118 c npoints,ncells,ierr)
119 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
121 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
122 grid1%NEDGES=grid1%NEDGES-1
124 IF(res.NE.8.OR.ierr.NE.0)
THEN
125 WRITE(*,*)
"ERROR in GRIDMAN_GRID_TAKE"
126 stop
"TEST_GRID1 TERMINATED"
131 c npoints,ncells,ierr)
132 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
134 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
138 c npoints,ncells,ierr)
139 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
141 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
142 grid1%NPOINTS=npoints-1
144 IF(res.NE.8.OR.ierr.NE.0)
THEN
145 WRITE(*,*)
"ERROR in GRIDMAN_GRID_TAKE"
146 stop
"TEST_GRID1 TERMINATED"
150 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
152 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
156 END SUBROUTINE test_take
161 SUBROUTINE test_readwrite
166 INTEGER(GRIDMAN_SP) :: itmp
167 INTEGER :: res,ierr,is
169 CALL grid_example1(grid,ierr)
170 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
175 CALL gridman_grid_write(grid,
'test.grd',ierr)
177 WRITE(*,*)
"ERORR in GRIDMAN_GRID_WRITE"
178 WRITE(*,*)
" expected value 100, IERR ",ierr
179 stop
"TEST_GRID1 TERMINATED"
181 CALL gridman_grid_read(grid1,
'testXX.grd',ierr)
183 WRITE(*,*)
"ERORR in GRIDMAN_GRID_READ"
184 WRITE(*,*)
" expected value 300, IERR ",ierr
185 stop
"TEST_GRID1 TERMINATED"
189 OPEN(3,file=
'test.grd',status=
'REPLACE',iostat=is)
190 IF(is.NE.0) stop
"ERROR: CAN'T CREATE test.grd"
191 CALL gridman_grid_write(grid,3,ierr)
193 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
194 OPEN(3,file=
'test.grd',status=
'OLD',iostat=is)
195 IF(is.NE.0) stop
"ERROR: CAN'T OPEN test.grd"
196 CALL gridman_grid_read(grid1,3,ierr)
198 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
200 IF(res.NE.0) stop
"TEST_GRID1 TERMINATED"
205 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
208 OPEN(3,file=
'test.grd',status=
'REPLACE',iostat=is)
209 IF(is.NE.0) stop
"ERROR: CAN'T CREATE test.grd"
210 CALL gridman_grid_write(grid,3,ierr)
212 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
213 OPEN(3,file=
'test.grd',status=
'OLD',iostat=is)
214 IF(is.NE.0) stop
"ERROR: CAN'T OPEN test.grd"
215 CALL gridman_grid_read(grid1,3,ierr)
217 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
219 IF(res.NE.0) stop
"TEST_GRID1 TERMINATED"
224 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
225 DEALLOCATE(grid%EDGEINDEX)
228 OPEN(3,file=
'test.grd',status=
'REPLACE',iostat=is)
229 IF(is.NE.0) stop
"ERROR: CAN'T CREATE test.grd"
230 CALL gridman_grid_write(grid,3,ierr)
232 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
233 OPEN(3,file=
'test.grd',status=
'OLD',iostat=is)
234 IF(is.NE.0) stop
"ERROR: CAN'T OPEN test.grd"
235 CALL gridman_grid_read(grid1,3,ierr)
237 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
239 IF(res.NE.0) stop
"TEST_GRID1 TERMINATED"
244 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
247 OPEN(3,file=
'test.grd',status=
'REPLACE',iostat=is)
248 IF(is.NE.0) stop
"ERROR: CAN'T CREATE test.grd"
249 CALL gridman_grid_write(grid,3,ierr)
251 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
252 OPEN(3,file=
'test.grd',status=
'OLD',iostat=is)
253 IF(is.NE.0) stop
"ERROR: CAN'T OPEN test.grd"
254 CALL gridman_grid_read(grid1,3,ierr)
256 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
258 IF(res.NE.0) stop
"TEST_GRID1 TERMINATED"
264 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
265 DEALLOCATE(grid%CELLINDEX)
268 OPEN(3,file=
'test.grd',status=
'REPLACE',iostat=is)
269 IF(is.NE.0) stop
"ERROR: CAN'T CREATE test.grd"
270 CALL gridman_grid_write(grid,3,ierr)
272 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
273 OPEN(3,file=
'test.grd',status=
'OLD',iostat=is)
274 IF(is.NE.0) stop
"ERROR: CAN'T OPEN test.grd"
275 CALL gridman_grid_read(grid1,3,ierr)
277 IF(ierr.GT.0) stop
"TEST_GRID1 TERMINATED"
279 IF(res.NE.0) stop
"TEST_GRID1 TERMINATED"
283 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
285 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
287 END SUBROUTINE test_readwrite
292 SUBROUTINE test_compare
297 t grid1_save,grid2_save
298 INTEGER :: ierr,res,itmp
300 CALL grid_example1(grid1,ierr)
301 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
302 CALL grid_example1(grid2,ierr)
303 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
308 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
310 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
315 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
317 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
318 WRITE(*,*)
" expected value 1, RES ",res
319 stop
"TEST_GRID1 TERMINATED"
322 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
327 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
329 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
330 WRITE(*,*)
" expected value 2, RES ",res
331 stop
"TEST_GRID1 TERMINATED"
334 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
336 grid1%NPOINTS=grid1%NPOINTS+1
338 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
340 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
341 WRITE(*,*)
" expected value 2, RES ",res
342 stop
"TEST_GRID1 TERMINATED"
345 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
348 grid2%CELLS(1,23)=grid2%CELLS(1,23)+1
350 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
352 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
353 WRITE(*,*)
" expected value 3, RES ",res
354 stop
"TEST_GRID1 TERMINATED"
357 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
359 grid1%POINTS(1,11)=grid1%POINTS(1,11)+1
361 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
363 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
364 WRITE(*,*)
" expected value 4, RES ",res
365 stop
"TEST_GRID1 TERMINATED"
368 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
371 grid1%UNIT2SI=grid1%UNIT2SI*10.
373 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
375 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
376 WRITE(*,*)
" expected value 5, RES ",res
377 stop
"TEST_GRID1 TERMINATED"
382 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
384 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
385 WRITE(*,*)
" expected value 5, RES ",res
386 stop
"TEST_GRID1 TERMINATED"
389 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
392 grid1%X(1,1)=grid1%X(1,1)+1.
394 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
396 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
397 WRITE(*,*)
" expected value 6, RES ",res
398 stop
"TEST_GRID1 TERMINATED"
401 grid2%X(2,10)=grid2%X(2,10)-1.
403 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
405 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
406 WRITE(*,*)
" expected value 6, RES ",res
407 stop
"TEST_GRID1 TERMINATED"
410 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
413 grid2%DESCRIPTION=
"EXAMPLE 2"
415 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
417 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
418 WRITE(*,*)
" expected value 7, RES ",res
419 stop
"TEST_GRID1 TERMINATED"
422 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
425 grid1%EDGEINDEX(2)%INDEXES(1,1)=100
427 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
429 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
430 WRITE(*,*)
" expected value 8, RES ",res
431 stop
"TEST_GRID1 TERMINATED"
434 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
437 itmp=grid1%NEDGEINDEX
440 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
442 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
443 WRITE(*,*)
" expected value 8, RES ",res
444 stop
"TEST_GRID1 TERMINATED"
446 grid1%NEDGEINDEX=itmp
449 grid2%CELLINDEX(2)%INDEXES(1,1)=100
451 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
453 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
454 WRITE(*,*)
" expected value 9, RES ",res
455 stop
"TEST_GRID1 TERMINATED"
458 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
461 itmp=grid1%NCELLINDEX
464 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
466 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
467 WRITE(*,*)
" expected value 9, RES ",res
468 stop
"TEST_GRID1 TERMINATED"
470 grid1%NCELLINDEX=itmp
474 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
476 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
478 WRITE(*,*)
"ERROR in GRIDMAN_GRID_COMP"
479 WRITE(*,*)
" expected value 0, RES ",res
480 stop
"TEST_GRID1 TERMINATED"
484 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
486 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
490 END SUBROUTINE test_compare
495 SUBROUTINE test_check
501 INTEGER :: ierr,res,itmp
504 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
506 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
507 WRITE(*,*)
" expected value 1, RES ",res
508 stop
"TEST_GRID1 TERMINATED"
511 CALL grid_example1(grid,ierr)
512 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
516 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
517 IF(res.NE.0) stop
"TEST_GRID1 TERMINATED"
522 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
524 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
525 WRITE(*,*)
" expected value 2, RES ",res
526 stop
"TEST_GRID1 TERMINATED"
528 CALL grid_example1(grid,ierr)
529 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
533 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
535 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
536 WRITE(*,*)
" expected value 2, RES ",res
537 stop
"TEST_GRID1 TERMINATED"
539 CALL grid_example1(grid,ierr)
540 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
544 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
546 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
547 WRITE(*,*)
" expected value 2, RES ",res
548 stop
"TEST_GRID1 TERMINATED"
550 CALL grid_example1(grid,ierr)
551 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
555 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
557 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
558 WRITE(*,*)
" expected value 2, RES ",res
559 stop
"TEST_GRID1 TERMINATED"
561 CALL grid_example1(grid,ierr)
562 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
564 grid%NEDGES=grid%NEDGES+1
566 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
568 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
569 WRITE(*,*)
" expected value 3, RES ",res
570 stop
"TEST_GRID1 TERMINATED"
572 CALL grid_example1(grid,ierr)
573 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
574 grid%EDIM=grid%EDIM+1
576 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
578 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
579 WRITE(*,*)
" expected value 3, RES ",res
580 stop
"TEST_GRID1 TERMINATED"
582 CALL grid_example1(grid,ierr)
583 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
584 grid%NPOINTS=grid%NPOINTS+1
586 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
588 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
589 WRITE(*,*)
" expected value 3, RES ",res
590 stop
"TEST_GRID1 TERMINATED"
592 CALL grid_example1(grid,ierr)
593 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
594 grid%PDIM=grid%PDIM+1
596 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
598 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
599 WRITE(*,*)
" expected value 3, RES ",res
600 stop
"TEST_GRID1 TERMINATED"
602 CALL grid_example1(grid,ierr)
603 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
608 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
610 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
611 WRITE(*,*)
" expected value 4, RES ",res
612 stop
"TEST_GRID1 TERMINATED"
614 CALL grid_example1(grid,ierr)
615 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
620 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
622 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
623 WRITE(*,*)
" expected value 5, RES ",res
624 stop
"TEST_GRID1 TERMINATED"
626 CALL grid_example1(grid,ierr)
627 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
631 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
633 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
634 WRITE(*,*)
" expected value 6, RES ",res
635 stop
"TEST_GRID1 TERMINATED"
637 CALL grid_example1(grid,ierr)
638 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
642 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
644 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
645 WRITE(*,*)
" expected value 7, RES ",res
646 stop
"TEST_GRID1 TERMINATED"
648 CALL grid_example1(grid,ierr)
649 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
653 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
655 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
656 WRITE(*,*)
" expected value 8, RES ",res
657 stop
"TEST_GRID1 TERMINATED"
659 CALL grid_example1(grid,ierr)
660 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
665 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
667 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
668 WRITE(*,*)
" expected value 9, RES ",res
669 stop
"TEST_GRID1 TERMINATED"
672 grid%EDGEINDEX%NINDEX=-1
674 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
676 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
677 WRITE(*,*)
" expected value 9, RES ",res
678 stop
"TEST_GRID1 TERMINATED"
680 CALL grid_example1(grid,ierr)
681 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
686 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
688 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
689 WRITE(*,*)
" expected value 10, RES ",res
690 stop
"TEST_GRID1 TERMINATED"
693 grid%CELLINDEX%NINDEX=-1
695 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
697 WRITE(*,*)
"ERORR in GRIDMAN_GRID_CHECK"
698 WRITE(*,*)
" expected value 10, RES ",res
699 stop
"TEST_GRID1 TERMINATED"
701 CALL grid_example1(grid,ierr)
702 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
704 CALL gridman_grid_metadata(grid,6,ierr)
705 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
708 IF(ierr.NE.0) stop
"TEST_GRID1 TERMINATED"
710 END SUBROUTINE test_check
logical, save, public gridman_check
Switch to enforce extra checks of input parameters.
subroutine gridman_grid_check(GRID, RES, IERR)
Check consistency of the grid data.
integer, save, public gridman_unit
Index of the standard output unit.
real(gridman_dp), save, public gridman_tol
Tolerance parameter which is used to compare two real numbers.
Explicit interfaces to GRIDMAN subroutines and functions.
subroutine gridman_grid_allocate(GRID, TYPE, NEDGES, NPOINTS, NCELLS, IERR, NEDGEINDEX, NCELLINDEX)
Allocate GRIDMAN_GRID object.
subroutine gridman_grid_take(GRID2, GRID1, IERR)
Take data from one grid object to another.
subroutine gridman_grid_count(GRID, NCOUNT, IERR)
Return the number of cells plus the number of edges not belonging to any cell.
Data-type which describes a grid as a set of edges, methods in grid.f.
subroutine gridman_grid_deallocate(GRID, IERR)
Deallocate grid object.
subroutine gridman_grid_copy(GRID2, GRID1, IERR)
Create a copy of the grid object.
logical, save, public gridman_dbg
Switch for debugging mode.
Definition of data types, global constants and variables.
subroutine gridman_index_deallocate(INDEX, IERR)
Allocate index object.
subroutine gridman_grid_compare(GRID1, GRID2, RES, IERR)
Compare two grid objects.