57 TYPE(t_region
),
POINTER :: regions(:)
63 CHARACTER(CHRLEN) :: rcsidentstring
66 TYPE(t_patch),
POINTER :: patches(:)
70 rcsidentstring =
'$RCSfile: PERI_CheckParamInput.F90,v $'
72 global => regions(1)%global
74 'PERI_CheckParamInput.F90' )
78 IF (cpr_rho /= 1 .OR. &
85 CALL
errorstop( global,err_peri_fixparam,__line__,
'cprVar id inconsistent' )
88 IF (global%nProcAlloc /= global%nRegions)
THEN
89 CALL
errorstop( global,err_peri_mpi,__line__, &
90 'nProcAlloc should be = nRegions due to PERI_pgradUpdate procedure' )
96 DO ireg=1,global%nRegions
97 IF (regions(ireg)%procid==global%myProcid .AND. &
98 regions(ireg)%active==active)
THEN
100 patches => regions(ireg)%levels(1)%patches(:)
103 DO ireg = lbound(regions,1),ubound(regions,1)
105 patches => regions(ireg)%patches(:)
110 IF ((patches(1)%bcType >= bc_injection .AND. &
111 patches(1)%bcType <= bc_injection+bc_range) .OR. &
112 (patches(2)%bcType >= bc_injection .AND. &
113 patches(2)%bcType <= bc_injection+bc_range) .OR. &
114 (patches(5)%bcType >= bc_injection .AND. &
115 patches(5)%bcType <= bc_injection+bc_range) .OR. &
116 (patches(6)%bcType >= bc_injection .AND. &
117 patches(6)%bcType <= bc_injection+bc_range))
THEN
118 CALL
errorstop( regions(ireg)%global,err_peri_cprbc,__line__, &
119 'cpr injection bc should be on patch 3 and 4' )
122 IF ((patches(1)%bcType >= bc_noslipwall .AND. &
123 patches(1)%bcType <= bc_noslipwall+bc_range) .OR. &
124 (patches(2)%bcType >= bc_noslipwall .AND. &
125 patches(2)%bcType <= bc_noslipwall+bc_range) .OR. &
126 (patches(5)%bcType >= bc_noslipwall .AND. &
127 patches(5)%bcType <= bc_noslipwall+bc_range) .OR. &
128 (patches(6)%bcType >= bc_noslipwall .AND. &
129 patches(6)%bcType <= bc_noslipwall+bc_range))
THEN
130 CALL
errorstop( regions(ireg)%global,err_peri_input,__line__, &
131 'channel noslip wall bc should be on patch 3 and 4' )
136 input => regions(ireg)%periInput
138 IF ((
input%flowKind < peri_flow_none).AND. &
139 (
input%flowKind > peri_flow_channel))
THEN
140 CALL
errorstop( global,err_peri_input,__line__, &
141 'flowkind out of range' )
144 IF (
input%flowKind == peri_flow_bola)
THEN
145 CALL
errorstop( global,err_peri_input,__line__, &
146 'boundary layer flow is not ready yet' )
150 IF (
input%split(jcoord) /= off)
THEN
151 IF (
input%split(icoord)/=off .OR.
input%split(kcoord)/=off)
THEN
152 CALL
errorstop( global,err_peri_input,__line__, &
153 'cannot combine splitting domain in wall normal with other directions' )
158 IF (
input%flowKind == peri_flow_cpr)
THEN
159 IF (
input%nVar /= cpr_nvar)
THEN
160 CALL
errorstop( global,err_peri_input,__line__,
'cpr nVar /= 7' )
162 IF (
input%minjRate /= &
163 patches(3)%mixt%vals(bcdat_inject_mfrate,0))
THEN
164 CALL
errorstop( global,err_peri_cprbc,__line__, &
165 'mass injection rate in inj. patches different' )
167 IF (
input%bulkmFlux < 0._rfreal)
THEN
168 CALL
errorstop( global,err_peri_input,__line__,
'cpr bulk mflux < 0' )
170 IF (
input%cprEpsilon < 0._rfreal)
THEN
171 CALL
errorstop( global,err_peri_input,__line__,
'cpr epsilon < 0' )
173 IF (
input%headPres < 0._rfreal)
THEN
174 CALL
errorstop( global,err_peri_input,__line__,
'cpr head pres. < 0' )
176 IF (
input%headTemp < 0._rfreal)
THEN
177 CALL
errorstop( global,err_peri_input,__line__,
'cpr head temp. < 0' )
179 ELSEIF (
input%flowKind == peri_flow_channel)
THEN
180 IF ((
input%pgradType < 0) .OR. (
input%pgradType > 1))
THEN
181 CALL
errorstop( global,err_peri_input,__line__, &
182 'PGRADTYPE should be 0 or 1' )
subroutine registerfunction(global, funName, fileName)
subroutine input(X, NNODE, NDC, NCELL, NFCE, NBPTS, NBFACE, ITYP, NPROP, XBNDY, XFAR, YFAR, ZFAR)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)