00001 subroutine reset_fluid
00002 use def_matter, only : emd, rs
00003 use def_matter_parameter, only : emdc
00004 use grid_parameter, only : nrf, ntf, npf, &
00005 & ntfeq, ntfxy, npfyzp, npfxzp, npfxzm, &
00006 & ratio, NS_shape, EQ_point
00007 implicit none
00008 integer :: it, ip, iremax
00009
00010 rs(ntfeq,npfxzp) = 1.0d0; rs(ntfeq,npf) = 1.0d0
00011
00012 if (EQ_point.eq.'XZ') rs(0,0:npf) = ratio
00013
00014 if (EQ_point.eq.'XY') rs(ntfeq,npfyzp) = ratio
00015
00016 call search_emdmax_xaxis_grid(iremax)
00017 if (iremax.eq.0) then
00018 emd(iremax,0:ntf,0:npf) = emdc
00019 else
00020 emd(iremax,ntfeq,0:npf) = emdc
00021 end if
00022
00023
00024 emd(nrf,0:ntf,0:npf) = emdc*1.0d-14
00025
00026 emd(0:nrf,0:ntf,npf) = emd(0:nrf,0:ntf,0)
00027 rs(0:ntf,npf) = rs(0:ntf,0)
00028
00029
00030
00031
00032
00033 if (NS_shape.eq.'JB') then
00034
00035 do it = 0, ntfeq
00036 do ip = 0, npfyzp
00037 rs(it,npfxzm-ip) = rs(it,ip)
00038 rs(it,npfxzm+ip) = rs(it,ip)
00039 rs(it,npf -ip) = rs(it,ip)
00040 rs(ntf-it, ip) = rs(it,ip)
00041 rs(ntf-it,npfxzm-ip) = rs(it,ip)
00042 rs(ntf-it,npfxzm+ip) = rs(it,ip)
00043 rs(ntf-it,npf -ip) = rs(it,ip)
00044 emd(0:nrf,it,npfxzm-ip) = emd(0:nrf,it,ip)
00045 emd(0:nrf,it,npfxzm+ip) = emd(0:nrf,it,ip)
00046 emd(0:nrf,it,npf -ip) = emd(0:nrf,it,ip)
00047 emd(0:nrf,ntf-it, ip) = emd(0:nrf,it,ip)
00048 emd(0:nrf,ntf-it,npfxzm-ip) = emd(0:nrf,it,ip)
00049 emd(0:nrf,ntf-it,npfxzm+ip) = emd(0:nrf,it,ip)
00050 emd(0:nrf,ntf-it,npf -ip) = emd(0:nrf,it,ip)
00051 end do
00052 end do
00053 else if (NS_shape.eq.'ML') then
00054
00055
00056 do it = 0, ntfeq
00057 do ip = 1, npf
00058 rs(it,ip) = rs(it,0)
00059 rs(ntf-it,ip) = rs(it,0)
00060
00061 emd(0:nrf,it,ip) = emd(0:nrf,it,0)
00062 emd(0:nrf,ntf-it,ip) = emd(0:nrf,it,0)
00063
00064 end do
00065 end do
00066 end if
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 end subroutine reset_fluid