45 procedure, non_overridable::
set
46 procedure, non_overridable::
pprint
61 real(R8P),
intent(IN):: beta
62 real(R8P),
intent(IN):: dh
71 do j=1_i4p,ubound(cons,dim=2)-1_i4p
72 do i=1_i4p,ubound(cons,dim=1)-1_i4p
73 cons(i,j)%s=beta*((cons(i-1,j)%s+cons(i+1,j)%s+cons(i,j-1)%s+cons(i,j+1)%s + dh*dh*cons(i,j)%v)*0.25_r8p) +&
74 (1._r8p-beta)*cons(i,j)%s
95 real(R8P),
intent(IN):: Re
96 real(R8P),
intent(IN):: beta
97 real(R8P),
intent(IN):: dh
110 -(cons(ij-1,1)%s + cons(ij,1)%s + cons(ij+1,1)%s) /(3._r8p*dh*dh) &
111 -( 0.5_r8p*cons(ij-1,0)%v + 0.5_r8p*cons(ij+1,0)%v &
112 +0.25_r8p*cons(ij-1,1)%v + cons(ij,1)%v + 0.25_r8p*cons(ij+1,1)%v)/(9._r8p) &
114 cons(ij,n)%v=(-1._r8p/dh &
115 -(cons(ij-1,n-1)%s+cons(ij,n-1)%s + cons(ij+1,n-1)%s) /(3._r8p*dh*dh) &
116 -( 0.5_r8p*cons(ij-1,n )%v + 0.5_r8p*cons(ij+1,n )%v &
117 +0.25_r8p*cons(ij-1,n-1)%v + cons(ij,n-1)%v + 0.25_r8p*cons(ij+1,n-1)%v)/(9._r8p) &
120 -(cons(1,ij-1)%s + cons(1,ij)%s + cons(1,ij+1)%s) /(3._r8p*dh*dh) &
121 -( 0.5_r8p*cons(0,ij-1)%v + 0.5_r8p*cons(0,ij+1)%v &
122 +0.25_r8p*cons(1,ij-1)%v + cons(1,ij)%v + 0.25_r8p*cons(1,ij+1)%v)/(9._r8p) &
125 -(cons(n-1,ij-1)%s+cons(n-1,ij)%s+cons(n-1,ij+1)%s) /(3._r8p*dh*dh) &
126 -( 0.5_r8p*cons(n,ij-1 )%v + 0.5_r8p*cons(n,ij+1 )%v &
127 +0.25_r8p*cons(n-1,ij-1)%v + cons(n-1,ij)%v + 0.25_r8p*cons(n-1,ij+1)%v)/(9._r8p) &
132 -(cons(1,1)%s)/(3._r8p*dh*dh) &
133 -(0.5_r8p*cons(1,0)%v+0.5_r8p*cons(0,1)%v+0.25_r8p*cons(1,1)%v)/(9._r8p) &
136 -(cons(n-1,1)%s)/(3._r8p*dh*dh) &
137 -(0.5_r8p*cons(n-1,0)%v+0.5_r8p*cons(n,1)%v+0.25_r8p*cons(n-1,1)%v)/(9._r8p) &
139 cons(n,n)%v=(-0.5_r8p/dh &
140 -(cons(n-1,n-1)%s)/(3._r8p*dh*dh) &
141 -(0.5_r8p*cons(n-1,n)%v+0.5_r8p*cons(n,n-1)%v+0.25_r8p*cons(n-1,n-1)%v)/(9._r8p) &
143 cons(0,n)%v=(-0.5_r8p/dh &
144 -(cons(1,n-1)%s)/(3._r8p*dh*dh) &
145 -(0.5_r8p*cons(1,n)%v+0.5_r8p*cons(0,n-1)%v+0.25_r8p*cons(1,n-1)%v)/(9._r8p) &
151 cons(i,j)%v=beta*(( &
152 cons(i-1,j)%v+cons(i+1,j)%v+cons(i,j-1)%v+cons(i,j+1)%v &
153 -0.25_r8p*re*(cons(i,j+1)%s-cons(i,j-1)%s)*(cons(i+1,j)%v-cons(i-1,j)%v) &
154 +0.25_r8p*re*(cons(i+1,j)%s-cons(i-1,j)%s)*(cons(i,j+1)%v-cons(i,j-1)%v) &
155 )*0.25_r8p) + (1._r8p-beta)*cons(i,j)%v
168 real(R8P),
intent(IN):: re
169 real(R8P),
intent(IN):: dh
177 do j=1_i4p,ubound(cons,dim=2)-1_i4p
178 do i=1_i4p,ubound(cons,dim=1)-1_i4p
179 residual%s =max(residual%s, &
180 abs((cons(i-1,j)%s-2._r8p*cons(i,j)%s+cons(i+1,j)%s)/(dh*dh) + &
181 (cons(i,j-1)%s-2._r8p*cons(i,j)%s+cons(i,j+1)%s)/(dh*dh) + cons(i,j)%v))
182 residual%v =max(residual%v, &
183 abs((1._r8p/re)*(cons(i-1,j)%v-2._r8p*cons(i,j)%v+cons(i+1,j)%v)/(dh*dh) + &
184 (1._r8p/re)*(cons(i,j-1)%v-2._r8p*cons(i,j)%v+cons(i,j+1)%v)/(dh*dh) - &
185 (cons(i,j+1)%s-cons(i,j-1)%s)/(2._r8p*dh)*(cons(i+1,j)%v-cons(i-1,j)%v)/(2._r8p*dh) + &
186 (cons(i+1,j)%s-cons(i-1,j)%s)/(2._r8p*dh)*(cons(i,j+1)%v-cons(i,j-1)%v)/(2._r8p*dh)))
197 elemental subroutine set(self,s,v)
201 real(R8P),
intent(IN):: s
202 real(R8P),
intent(IN):: v
214 function pprint(self,unit) result(err)
218 integer(I4P),
intent(IN):: unit
223 write(unit,
'(A)',iostat=err)
' s(n)='//
str(n=self%s)
224 write(unit,
'(A)',iostat=err)
' v(n)='//
str(n=self%v)
pure type(type_conservative) function, public computeresidual(cons, Re, dh)
Function for computing residuals.
pure subroutine, public computevorticity(cons, Re, beta, dh)
Subroutine for computing new (n+1) vorticity.
pure subroutine, public computestream(cons, beta, dh)
Subroutine for computing new (n+1) stream function.
Procedure for converting number, real and integer, to string (number to string type casting); logical...
procedure, non_overridable set
This module contains the definition of Type_Conservative and its procedures.
Derived type containing conservative variables.
procedure, non_overridable pprint
Module IR_Precision makes available some portable kind-parameters and some useful procedures to deal ...