3 subroutine util_test_sub
4 use module_fr_sfire_util
6 call test(sum_2d_cells,'sum_2d_cells',0,0, &
9 call testn2n(2,2,1,1,1,1, &
12 call testn2n(2,2,1,1,1,1, &
15 call testn2n(2,3,1,1,2,2, &
18 call testn2n(2,3,1,1,2,2, &
21 !call test(interpolate_2d_cells2cells,'interpolate_2d_cells2cells',0,0, &
24 !call test(interpolate_2d_cells2cells,'interpolate_2d_cells2cells',0,0, &
27 !call test(interpolate_2d_cells2nodes,'interpolate_2d_cells2nodes',0,1, &
30 !call test(interpolate_2d_cells2nodes,'interpolate_2d_cells2nodes',0,1, &
33 end subroutine util_test_sub
36 subroutine test(sub,s,n1,n2, &
37 ids1,ide1,jds1,jde1,ims1,ime1,jms1,jme1, &
38 ids2,ide2,jds2,jde2,ims2,ime2,jms2,jme2)
39 use module_fr_sfire_util
44 integer:: n1,n2 ! 0 if cell based, 1 if node based
45 integer, intent(in)::ids1,ide1,jds1,jde1,ims1,ime1,jms1,jme1
46 real::v1(ims1:ime1,jms1:jme1)
47 integer, intent(in)::ids2,ide2,jds2,jde2,ims2,ime2,jms2,jme2
48 real::v2(ims2:ime2,jms2:jme2)
51 write(*,'(a,a)')'test ',s
52 write(*,2)'mesh 1 size',ids1,ide1,jds1,jde1
59 write(*,1)(v1(i,j),j=jds1,jde1+n1)
62 2 format(a,i4,':',i4,' by ',i4,':',i4)
64 ims1,ime1,jms1,jme1,ids1,ide1,jds1,jde1,v1, &
65 ims2,ime2,jms2,jme2,ids2,ide2,jds2,jde2,v2)
66 write(*,2)'mesh 2, interpolated, size',ids2,ide2,jds2,jde2
68 write(*,1)(v2(i,j),j=jds2,jde2+n2)
72 subroutine testn2n(ir,jr,ip1,jp1,ip2,jp2, &
73 ids1,ide1,jds1,jde1,ims1,ime1,jms1,jme1, &
74 ids2,ide2,jds2,jde2,ims2,ime2,jms2,jme2)
75 use module_fr_sfire_util
78 integer, intent(in):: ir,jr ! refinement ratios
79 integer, intent(in):: ip1,jp1,ip2,jp2 ! offset of start of 2 in 1
80 integer, intent(in)::ids1,ide1,jds1,jde1,ims1,ime1,jms1,jme1
81 real::v1(ims1:ime1,jms1:jme1)
82 integer, intent(in)::ids2,ide2,jds2,jde2,ims2,ime2,jms2,jme2
83 real::v2(ims2:ime2,jms2:jme2)
86 write(*,'(a)')'test interpolate_2d_nodes2nodes'
87 write(*,2)'mesh 1 size',ids1,ide1,jds1,jde1
94 write(*,1)(v1(i,j),j=jds1,jde1)
98 2 format(a,i4,':',i4,' by ',i4,':',i4)
100 call interpolate_2d_nodes2nodes( &
101 ims1,ime1,jms1,jme1, & ! array coarse grid
102 ids1,ide1,jds1,jde1, & ! dimensions fine grid
103 ims2,ime2,jms2,jme2, & ! array coarse grid
104 ids2,ide2,jds2,jde2, & ! dimensions coarse grid
105 ir,jr, & ! refinement ration
107 v1, & ! in coarse grid
110 write(*,2)'mesh 2, interpolated, size',ids2,ide2,jds2,jde2
112 write(*,1)(v2(i,j),j=jds2,jde2)
114 end subroutine testn2n