00001 subroutine calc_circ_surf_peos
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : ntfeq, npfxzp, npfyzp, nrf, ntf, npf
00004 use coordinate_grav_r, only : hrg, rg
00005 use def_matter_parameter, only : radi
00006 use make_array_1d
00007 use make_array_2d
00008 use def_quantities, only : circ_surf_xy, circ_surf_yz, circ_surf_zx
00009 use interface_source_circ_surf_peos
00010 use interface_plane_surf_int_fluid
00011 implicit none
00012 real(long) :: surf_int
00013 real(long),pointer :: souf_circ_surf_ph_peos(:,:), souf_circ_surf_th_peos(:,:)
00014 integer :: irg, irs, ii, ia, ib
00015
00016 write(6,'(a90)') "---------------------------------------------------------------------------------------------"
00017 do ia = nrf,nrf
00018 ib = ntfeq
00019 call alloc_array2d(souf_circ_surf_ph_peos, 1, ia, 1, npf)
00020 call source_circ_surf_peos("ph", ia, ib, souf_circ_surf_ph_peos)
00021 call plane_surf_int_fluid("ph", ia, ib, souf_circ_surf_ph_peos, surf_int)
00022 circ_surf_xy = surf_int*radi
00023 deallocate(souf_circ_surf_ph_peos)
00024 write(6,'(a8,i3,a42,1p,e23.15)') 'For irf=', ia, ' Circulation (surf integral) on xy plane=',circ_surf_xy
00025 end do
00026
00027
00028 do ia = nrf,nrf
00029 ib = npfxzp
00030 call alloc_array2d(souf_circ_surf_th_peos, 1, ia, 1, 2*ntf)
00031 call source_circ_surf_peos("th", ia, ib, souf_circ_surf_th_peos)
00032 call plane_surf_int_fluid("th", ia, ib, souf_circ_surf_th_peos, surf_int)
00033 circ_surf_zx = surf_int*radi
00034 deallocate(souf_circ_surf_th_peos)
00035 write(6,'(a8,i3,a42,1p,e23.15)') 'For irf=', ia, ' Circulation (surf integral) on zx plane=',circ_surf_zx
00036 end do
00037
00038
00039 do ia = nrf,nrf
00040 ib = npfyzp
00041 call alloc_array2d(souf_circ_surf_th_peos, 1, ia, 1, 2*ntf)
00042 call source_circ_surf_peos("th", ia, ib, souf_circ_surf_th_peos)
00043 call plane_surf_int_fluid("th", ia, ib, souf_circ_surf_th_peos, surf_int)
00044 circ_surf_yz = -surf_int*radi
00045 deallocate(souf_circ_surf_th_peos)
00046 write(6,'(a8,i3,a42,1p,e23.15)') 'For irf=', ia, ' Circulation (surf integral) on yz plane=',circ_surf_yz
00047 end do
00048
00049 end subroutine calc_circ_surf_peos