72 CHARACTER(CHRLEN),
PARAMETER,
PRIVATE :: &
73 RCSIdentString =
'$RCSfile: RFLU_ModExtractFlowData.F90,v $ $Revision: 1.24 $'
134 TYPE(t_region
),
POINTER :: pregion
140 CHARACTER(CHRLEN) :: rcsidentstring
142 TYPE(t_grid),
POINTER :: pgrid
148 global => pregion%global
151 'RFLU_ModExtractFlowData.F90')
153 IF ( global%verbLevel > verbose_none )
THEN
154 WRITE(stdout,
'(A,1X,A)') solver_name,
'Extracting data from flow solution...'
156 IF ( global%verbLevel > verbose_low )
THEN
157 WRITE(stdout,
'(A,3X,A,A)') solver_name,
'Case: ',trim(global%casename)
165 SELECT CASE ( global%casename )
171 CASE (
"lfpbli-16.48x8.8x3" ,
"lfpbli-32.96x16.16x3", &
172 "lfpbli-64.192x32.32x3",
"lfpbli-128.384x32.32x3" )
174 CASE(
"lfpblim-64x16x1" ,
"lfpblim-128x32x1", &
175 "lfpblim-256x64x1",
"lfpblim-512x128x1" )
182 CASE (
"onera_c0_2d_100x50" )
189 CASE (
"skews_ms2p0",
"skews_ms3p0",
"skews_ms4p0" )
196 CASE (
"st_sod1",
"st_sod1_mp2",
"st_sod2",
"st_sod2_mp2" )
214 CASE (
"nscbc1",
"nscbc2",
"nscbc3",
"nscbc4",
"nscbc5",
"nscbc6",
"nscbc7", &
237 global%warnCounter = global%warnCounter + 1
239 IF ( global%verbLevel > verbose_none )
THEN
240 WRITE(stdout,
'(A,3X,A,2(1X,A))') solver_name,
'*** WARNING ***', &
241 'Extraction of data not available.', &
242 'Returning to calling procedure.'
250 IF ( global%verbLevel > verbose_none )
THEN
251 WRITE(stdout,
'(A,1X,A)') solver_name, &
252 'Extracting data from flow solution done.'
300 TYPE(t_region
),
POINTER :: pregion
306 CHARACTER(CHRLEN) :: ifilename1,ifilename2
307 INTEGER,
PARAMETER :: npoints = 18
308 INTEGER :: errorflag,
i,icg,ifl,ile,ite,ivp,
j,jbl,jfs,
k,nvp
309 INTEGER,
DIMENSION(:),
ALLOCATABLE :: iloc
310 REAL(RFREAL) :: cf,cftheory,delta0,delta0theory,delta1,delta1theory,delta2, &
311 delta2theory,delta3,delta3theory,dist1,dist2,
dy,eta,inter, &
312 ir,lref,
r,reref,rex,ru,rv,
slope,term1,term2,u,unorm,uref, &
314 REAL(RFREAL),
DIMENSION(NPOINTS),
PARAMETER :: etablas = &
315 (/0.0000_rfreal,0.1000_rfreal,0.2000_rfreal,0.3000_rfreal,0.4000_rfreal, &
316 0.5000_rfreal,0.6000_rfreal,0.8000_rfreal,1.0000_rfreal,1.2000_rfreal, &
317 1.4000_rfreal,1.6000_rfreal,1.8000_rfreal,2.0000_rfreal,2.5000_rfreal, &
318 3.0000_rfreal,3.5000_rfreal,4.0000_rfreal/)
319 REAL(RFREAL),
DIMENSION(NPOINTS),
PARAMETER :: unormblas = &
320 (/0.0000_rfreal,0.0664_rfreal,0.1328_rfreal,0.1989_rfreal,0.2647_rfreal, &
321 0.3298_rfreal,0.3938_rfreal,0.5168_rfreal,0.6298_rfreal,0.7290_rfreal, &
322 0.8115_rfreal,0.8761_rfreal,0.9233_rfreal,0.9555_rfreal,0.9916_rfreal, &
323 0.9990_rfreal,0.9999_rfreal,1.0000_rfreal/)
324 REAL(RFREAL),
DIMENSION(NPOINTS),
PARAMETER :: vnormblas = &
325 (/0.0000_rfreal,0.0033_rfreal,0.0133_rfreal,0.0298_rfreal,0.0528_rfreal, &
326 0.0821_rfreal,0.1173_rfreal,0.2033_rfreal,0.3048_rfreal,0.4136_rfreal, &
327 0.5206_rfreal,0.6172_rfreal,0.6972_rfreal,0.7581_rfreal,0.8373_rfreal, &
328 0.8482_rfreal,0.8600_rfreal,0.8604_rfreal/)
329 REAL(RFREAL),
DIMENSION(:,:),
ALLOCATABLE :: yu
331 TYPE(t_grid),
POINTER :: pgrid
332 TYPE(t_patch),
POINTER :: ppatch
338 global => pregion%global
341 'RFLU_ModExtractFlowData.F90')
343 IF ( global%verbLevel > verbose_none )
THEN
344 WRITE(stdout,
'(A,1X,A)') solver_name, &
345 'Extract data for Blasius flow...'
352 pgrid => pregion%grid
360 uref = global%refVelocity
361 reref = global%refREnum
362 lref = global%refLength
373 SELECT CASE ( global%casename )
374 CASE (
"lfpbli-16.48x8.8x3" )
380 CASE (
"lfpbli-32.96x16.16x3" )
386 CASE (
"lfpbli-64.192x32.32x3" )
392 CASE (
"lfpbli-128.384x64.64x3" )
398 CASE (
"lfpblim-64x16x1" )
404 CASE (
"lfpblim-128x32x1" )
410 CASE (
"lfpblim-256x64x1" )
416 CASE (
"lfpblim-512x128x1" )
423 CALL
errorstop(global,err_reached_default,__line__)
430 ALLOCATE(yu(2,0:jfs),stat=errorflag)
431 global%error = errorflag
432 IF ( global%error /= err_none )
THEN
433 CALL
errorstop(global,err_allocate,__line__,
'yu')
436 ALLOCATE(iloc(nvp),stat=errorflag)
437 global%error = errorflag
438 IF ( global%error /= err_none )
THEN
439 CALL
errorstop(global,err_allocate,__line__,
'iloc')
448 IF ( global%verbLevel > verbose_none )
THEN
449 WRITE(stdout,
'(A,3X,A)') solver_name, &
450 'Determining stations at which velocity data is extracted...'
459 icg =
i + (
k-1)*ite*jfs
461 dist1 = pgrid%cofg(xcoord,icg ) -
x
462 dist2 = pgrid%cofg(xcoord,icg-1) -
x
464 IF ( (dist1 > 0.0_rfreal) .AND. (dist2 < 0.0_rfreal) )
THEN
465 IF ( abs(dist1) < abs(dist2) )
THEN
467 icg =
i + (
k-1)*ite*jfs
470 icg =
i - 1 + (
k-1)*ite*jfs
473 IF ( global%verbLevel > verbose_none )
THEN
474 WRITE(stdout,
'(A,5X,A,1X,I2,1X,A,1X,I3,A,1X,E13.6)') solver_name, &
475 'Station',ivp,
'located at i=',iloc(ivp),
', x=',pgrid%cofg(xcoord,icg)
485 IF ( global%verbLevel > verbose_none )
THEN
486 WRITE(stdout,
'(A,3X,A)') solver_name, &
487 'Determining stations at which velocity data is extracted done.'
504 WRITE(ifilename2,
'(A,I2.2,A)')
'blasius-vel',ivp,
'.dat'
506 OPEN(if_extr_data2,file=ifilename2,
form=
'FORMATTED',
status=
'UNKNOWN', &
508 global%error = errorflag
509 IF ( global%error /= err_none )
THEN
510 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename2))
513 IF ( global%verbLevel > verbose_none )
THEN
514 WRITE(stdout,
'(A,3X,A)') solver_name, &
515 'Writing velocity-profile data to file: '// &
524 icg =
i + (
j-1)*ite + (
k-1)*ite*jfs
526 x = pgrid%cofg(xcoord,icg)
527 y = pgrid%cofg(ycoord,icg)
530 eta =
y/(2.0_rfreal*
x)*
sqrt(rex)
532 r = pregion%mixt%cv(cv_mixt_dens,icg)
533 ru = pregion%mixt%cv(cv_mixt_xmom,icg)
534 rv = pregion%mixt%cv(cv_mixt_ymom,icg)
546 WRITE(if_extr_data2,
'(3(1X,E13.6))') eta,unorm,vnorm*
sqrt(rex)
553 CLOSE(if_extr_data2,iostat=errorflag)
554 global%error = errorflag
555 IF ( global%error /= err_none )
THEN
556 CALL
errorstop(global,err_file_close,__line__,
'File: '// &
569 ifilename1 =
'blasius-thick.dat'
571 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
573 global%error = errorflag
574 IF ( global%error /= err_none )
THEN
575 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
578 IF ( global%verbLevel > verbose_none )
THEN
579 WRITE(stdout,
'(A,3X,A)') solver_name, &
580 'Writing thickness data to file: '// &
589 icg =
i + (
k-1)*ite*jfs
591 x = pgrid%cofg(xcoord,icg)
603 icg =
i + (
j-1)*ite + (
k-1)*ite*jfs
605 y = pgrid%cofg(ycoord,icg)
607 r = pregion%mixt%cv(cv_mixt_dens,icg)
608 ru = pregion%mixt%cv(cv_mixt_xmom,icg)
624 delta0 = crazy_value_int
625 delta0theory = 5.0_rfreal*
x/
sqrt(rex)
628 IF ( yu(2,
j-1) < 0.99_rfreal .AND. yu(2,
j) >= 0.99_rfreal )
THEN
629 slope = (yu(2,
j ) - yu(2,
j-1) )/(yu(1,
j) - yu(1,
j-1))
630 inter = (yu(2,
j-1)*yu(1,
j) - yu(2,
j )*yu(1,
j-1))/(yu(1,
j) - yu(1,
j-1))
631 delta0 = (0.99_rfreal - inter)/
slope
645 delta1theory = 1.720_rfreal*
x/
sqrt(rex)
646 delta2theory = 0.664_rfreal*
x/
sqrt(rex)
647 delta3theory = 1.044_rfreal*
x/
sqrt(rex)
650 dy = yu(1,
j) - yu(1,
j-1)
656 + 0.5_rfreal*
dy*( (1.0_rfreal- term1) &
657 + (1.0_rfreal- term2))
659 + 0.5_rfreal*
dy*( term1*(1.0_rfreal- term1) &
660 + term2*(1.0_rfreal- term2))
662 + 0.5_rfreal*
dy*( term1*(1.0_rfreal-term1*term1) &
663 + term2*(1.0_rfreal-term2*term2))
666 WRITE(if_extr_data1,
'(9(1X,E13.6))') rex,delta0/
x, &
671 delta1theory/delta0theory, &
672 delta2theory/delta0theory, &
673 delta3theory/delta0theory
680 CLOSE(if_extr_data1,iostat=errorflag)
681 global%error = errorflag
682 IF ( global%error /= err_none )
THEN
683 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
690 DEALLOCATE(yu,stat=errorflag)
691 global%error = errorflag
692 IF ( global%error /= err_none )
THEN
693 CALL
errorstop(global,err_deallocate,__line__,
'yu')
696 DEALLOCATE(iloc,stat=errorflag)
697 global%error = errorflag
698 IF ( global%error /= err_none )
THEN
699 CALL
errorstop(global,err_deallocate,__line__,
'iloc')
711 ifilename1 =
'blasius-cf.dat'
713 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
715 global%error = errorflag
716 IF ( global%error /= err_none )
THEN
717 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
720 IF ( global%verbLevel > verbose_none )
THEN
721 WRITE(stdout,
'(A,3X,A)') solver_name, &
722 'Writing skin-friction data to file: '// &
730 ppatch => pregion%patches(2)
732 DO ifl = 1+(
k-1)*(ite-ile+1),
k*(ite-ile+1)
733 x = ppatch%fc(xcoord,ifl)
737 cftheory = 0.664_rfreal/
sqrt(rex)
738 cf = ppatch%cf(xcoord,ifl)
740 WRITE(if_extr_data1,
'(3(1X,E13.6))') rex,cftheory,cf
747 CLOSE(if_extr_data1,iostat=errorflag)
748 global%error = errorflag
749 IF ( global%error /= err_none )
THEN
750 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
761 ifilename1 =
'blasius-vel-exact.dat'
763 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
765 global%error = errorflag
766 IF ( global%error /= err_none )
THEN
767 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
774 IF ( global%verbLevel > verbose_none )
THEN
775 WRITE(stdout,
'(A,3X,A)') solver_name, &
776 'Writing exact velocity-profile data to file: '// &
781 WRITE(if_extr_data1,
'(3(1X,E11.4))') etablas(
j),unormblas(
j),vnormblas(
j)
788 CLOSE(if_extr_data1,iostat=errorflag)
789 global%error = errorflag
790 IF ( global%error /= err_none )
THEN
791 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
798 IF ( global%verbLevel > verbose_none )
THEN
799 WRITE(stdout,
'(A,1X,A)') solver_name,
'Extract data for Blasius flow done.'
841 TYPE(t_region
),
POINTER :: pregion
847 CHARACTER(CHRLEN) :: ifilename1
849 INTEGER :: errorflag,icg,ix
850 REAL(RFREAL) ::
a,p,
r,u,
v,w,
m,xx,yy,
angle
851 TYPE(t_grid),
POINTER :: pgrid
852 TYPE(t_patch),
POINTER :: ppatch
859 global => pregion%global
862 'RFLU_ModExtractFlowData.F90')
864 IF ( global%verbLevel > verbose_none )
THEN
865 WRITE(stdout,
'(A,1X,A)') solver_name, &
873 pgrid => pregion%grid
874 ppatch => pregion%patches(1)
880 WRITE(ifilename1,
'(A,1PE11.5,A)') trim(global%outDir)// &
881 trim(global%casename)// &
882 '.line_',global%currentTime,
'.plt'
884 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
886 global%error = errorflag
887 IF ( global%error /= 0 )
THEN
888 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
891 IF ( global%verbLevel > verbose_none )
THEN
892 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing data to '// &
900 nextract = ppatch%nBFaces
906 icg = ppatch%bf2c(ix)
908 xx = pgrid%cofg(xcoord,icg)
909 yy = pgrid%cofg(ycoord,icg)
911 r = pregion%mixt%cv(cv_mixt_dens,icg)
912 u = pregion%mixt%cv(cv_mixt_xmom,icg)/
r
913 v = pregion%mixt%cv(cv_mixt_ymom,icg)/
r
914 p = pregion%mixt%dv(dv_mixt_pres,icg)
916 WRITE(if_extr_data1,
'(6(1X,E23.16))') xx,yy,
r,u,
v,p
923 CLOSE(if_extr_data1,iostat=errorflag)
924 global%error = errorflag
925 IF ( global%error /= 0 )
THEN
926 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
933 IF ( global%verbLevel > verbose_none )
THEN
934 WRITE(stdout,
'(A,1X,A)') solver_name,
'Extract Line data for NSCBC case done.'
975 TYPE(t_region
),
POINTER :: pregion
981 CHARACTER(CHRLEN) :: ifilename1,ifilename2,ifilename3,ifilename4
983 INTEGER :: errorflag,icg,ix,icg1,icg2,icg3,icg4
984 REAL(RFREAL) ::
a,p,
r,u,
v,w,
m,xx,yy,
angle,radius,
distance
985 TYPE(t_grid),
POINTER :: pgrid
986 TYPE(t_patch),
POINTER :: ppatch
993 global => pregion%global
996 'RFLU_ModExtractFlowData.F90')
998 IF ( global%verbLevel > verbose_none )
THEN
999 WRITE(stdout,
'(A,1X,A)') solver_name, &
1000 'Extract Surf data:'
1007 pgrid => pregion%grid
1008 ppatch => pregion%patches(1)
1014 WRITE(ifilename1,
'(A,1PE11.5,A)') trim(global%outDir)// &
1015 trim(global%casename)// &
1016 '.line1_',global%currentTime,
'.plt'
1018 WRITE(ifilename2,
'(A,1PE11.5,A)') trim(global%outDir)// &
1019 trim(global%casename)// &
1020 '.line2_',global%currentTime,
'.plt'
1022 WRITE(ifilename3,
'(A,1PE11.5,A)') trim(global%outDir)// &
1023 trim(global%casename)// &
1024 '.line3_',global%currentTime,
'.plt'
1026 WRITE(ifilename4,
'(A,1PE11.5,A)') trim(global%outDir)// &
1027 trim(global%casename)// &
1028 '.line4_',global%currentTime,
'.plt'
1030 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
1032 global%error = errorflag
1033 IF ( global%error /= 0 )
THEN
1034 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
1037 OPEN(if_extr_data2,file=ifilename2,
form=
'FORMATTED',
status=
'UNKNOWN', &
1039 global%error = errorflag
1040 IF ( global%error /= 0 )
THEN
1041 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename2))
1044 OPEN(50,file=ifilename3,
form=
'FORMATTED',
status=
'UNKNOWN', &
1046 global%error = errorflag
1047 IF ( global%error /= 0 )
THEN
1048 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename3))
1051 OPEN(51,file=ifilename4,
form=
'FORMATTED',
status=
'UNKNOWN', &
1053 global%error = errorflag
1054 IF ( global%error /= 0 )
THEN
1055 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename4))
1058 IF ( global%verbLevel > verbose_none )
THEN
1059 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing data to file: '// &
1068 radius = 0.006125_rfreal
1075 icg = ppatch%bf2c(ix)
1076 icg1 = 1 + (ix-1)*258
1077 icg2 = 65 + (ix-1)*258
1078 icg3 = 130 + (ix-1)*258
1079 icg4 = 195 + (ix-1)*258
1081 xx = pgrid%cofg(xcoord,icg1)
1082 yy = pgrid%cofg(ycoord,icg1)
1085 r = pregion%mixt%cv(cv_mixt_dens,icg1)
1086 u = pregion%mixt%cv(cv_mixt_xmom,icg1)/
r
1087 v = pregion%mixt%cv(cv_mixt_ymom,icg1)/
r
1088 p = pregion%mixt%dv(dv_mixt_pres,icg1)
1089 WRITE(if_extr_data1,
'(6(1X,E23.16))')
distance-radius,
r,u,
v,p
1091 xx = pgrid%cofg(xcoord,icg2)
1092 yy = pgrid%cofg(ycoord,icg2)
1095 r = pregion%mixt%cv(cv_mixt_dens,icg2)
1096 u = pregion%mixt%cv(cv_mixt_xmom,icg2)/
r
1097 v = pregion%mixt%cv(cv_mixt_ymom,icg2)/
r
1098 p = pregion%mixt%dv(dv_mixt_pres,icg2)
1099 WRITE(if_extr_data2,
'(6(1X,E23.16))')
distance-radius,
r,u,
v,p
1101 xx = pgrid%cofg(xcoord,icg3)
1102 yy = pgrid%cofg(ycoord,icg3)
1105 r = pregion%mixt%cv(cv_mixt_dens,icg3)
1106 u = pregion%mixt%cv(cv_mixt_xmom,icg3)/
r
1107 v = pregion%mixt%cv(cv_mixt_ymom,icg3)/
r
1108 p = pregion%mixt%dv(dv_mixt_pres,icg3)
1109 WRITE(50,
'(6(1X,E23.16))')
distance-radius,
r,u,
v,p
1111 xx = pgrid%cofg(xcoord,icg4)
1112 yy = pgrid%cofg(ycoord,icg4)
1115 r = pregion%mixt%cv(cv_mixt_dens,icg4)
1116 u = pregion%mixt%cv(cv_mixt_xmom,icg4)/
r
1117 v = pregion%mixt%cv(cv_mixt_ymom,icg4)/
r
1118 p = pregion%mixt%dv(dv_mixt_pres,icg4)
1119 WRITE(51,
'(6(1X,E23.16))')
distance-radius,
r,u,
v,p
1126 CLOSE(if_extr_data1,iostat=errorflag)
1127 global%error = errorflag
1128 IF ( global%error /= 0 )
THEN
1129 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
1132 CLOSE(if_extr_data2,iostat=errorflag)
1133 global%error = errorflag
1134 IF ( global%error /= 0 )
THEN
1135 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename2))
1138 CLOSE(50,iostat=errorflag)
1139 global%error = errorflag
1140 IF ( global%error /= 0 )
THEN
1141 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename3))
1144 CLOSE(51,iostat=errorflag)
1145 global%error = errorflag
1146 IF ( global%error /= 0 )
THEN
1147 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename4))
1154 IF ( global%verbLevel > verbose_none )
THEN
1155 WRITE(stdout,
'(A,1X,A)') solver_name,
'Extract Surface data for Farf case done.'
1204 TYPE(t_region
),
POINTER :: pregion
1210 CHARACTER(CHRLEN) :: ifilename1
1211 INTEGER :: errorflag,
i,icg,ivp,
j,nvp,nx,ny
1212 INTEGER,
DIMENSION(:),
ALLOCATABLE :: iloc
1213 REAL(RFREAL) :: dinc,height,ir,minj,vinj,p,ptot,
r,ru,rv,u,unorm,
v,vnorm,w,
x,
y
1215 TYPE(t_grid),
POINTER :: pgrid
1216 TYPE(t_patch),
POINTER :: ppatch
1222 global => pregion%global
1225 'RFLU_ModExtractFlowData.F90')
1227 IF ( global%verbLevel > verbose_none )
THEN
1228 WRITE(stdout,
'(A,1X,A)') solver_name, &
1229 'Extract data for Blasius flow...'
1236 pgrid => pregion%grid
1246 height = minval(pgrid%xyz(ycoord,1:pgrid%nVertTot))
1252 SELECT CASE ( global%casename )
1253 CASE (
"onera_c0_2d_100x50" )
1257 CALL
errorstop(global,err_reached_default,__line__)
1271 WRITE(ifilename1,
'(A,I2.2,A)')
'onera_c0-vel',ivp,
'.dat'
1273 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
1275 global%error = errorflag
1276 IF ( global%error /= err_none )
THEN
1277 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
1280 IF ( global%verbLevel > verbose_none )
THEN
1281 WRITE(stdout,
'(A,3X,A)') solver_name, &
1282 'Writing velocity-profile data to file: '// &
1294 x = pgrid%cofg(xcoord,icg)
1295 y = pgrid%cofg(ycoord,icg)
1297 IF ( global%verbLevel > verbose_none .AND.
j == 1 )
THEN
1298 WRITE(stdout,
'(A,5X,A,1X,I2,1X,A,1X,E13.6)') solver_name,
'Station', &
1299 ivp,
'located at x=',
x
1302 r = pregion%mixt%cv(cv_mixt_dens,icg)
1303 ru = pregion%mixt%cv(cv_mixt_xmom,icg)
1304 rv = pregion%mixt%cv(cv_mixt_ymom,icg)
1310 unorm = -u/(0.5_rfreal*global%pi*
x/height*vinj)
1313 WRITE(if_extr_data1,
'(3(1X,E13.6))') (height-
y)/height,unorm,vnorm
1320 CLOSE(if_extr_data1,iostat=errorflag)
1321 global%error = errorflag
1322 IF ( global%error /= err_none )
THEN
1323 CALL
errorstop(global,err_file_close,__line__,
'File: '// &
1336 ifilename1 =
'onera_c0-vel-exact.dat'
1338 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
1340 global%error = errorflag
1341 IF ( global%error /= err_none )
THEN
1342 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
1349 IF ( global%verbLevel > verbose_none )
THEN
1350 WRITE(stdout,
'(A,3X,A)') solver_name, &
1351 'Writing exact velocity-profile data to file: '// &
1358 x = pgrid%cofg(xcoord,icg)
1359 y = pgrid%cofg(ycoord,icg)
1364 unorm = -u/(0.5_rfreal*global%pi*
x/height*vinj)
1367 WRITE(if_extr_data1,
'(3(1X,E13.6))') (height-
y)/height,unorm,vnorm
1374 CLOSE(if_extr_data1,iostat=errorflag)
1375 global%error = errorflag
1376 IF ( global%error /= err_none )
THEN
1377 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
1384 IF ( global%verbLevel > verbose_none )
THEN
1385 WRITE(stdout,
'(A,1X,A)') solver_name,
'Extract data for Proudman flow done.'
1428 TYPE(t_region
),
POINTER :: pregion
1434 CHARACTER(CHRLEN) :: ifilename1
1435 INTEGER :: errorflag,icg,icgbeg,icgend,ncellsx
1436 REAL(RFREAL) ::
a,cp,mw,p,
r,t,u,
v
1437 TYPE(t_grid),
POINTER :: pgrid
1443 global => pregion%global
1446 'RFLU_ModExtractFlowData.F90')
1448 IF ( global%verbLevel > verbose_none )
THEN
1449 WRITE(stdout,
'(A,1X,A)') solver_name, &
1450 'Extract data for Sod shocktube case...'
1457 pgrid => pregion%grid
1463 ifilename1 =
'sodst.dat'
1465 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
1467 global%error = errorflag
1468 IF ( global%error /= err_none )
THEN
1469 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
1472 IF ( global%verbLevel > verbose_none )
THEN
1473 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing data to file: '// &
1481 ncellsx = pgrid%nCellsTot/9
1483 icgbeg = 4*ncellsx + 1
1490 SELECT CASE ( pregion%mixtInput%gasModel )
1491 CASE ( gas_model_tcperf )
1492 DO icg = icgbeg,icgend
1493 r = pregion%mixt%cv(cv_mixt_dens,icg)
1494 u = pregion%mixt%cv(cv_mixt_xmom,icg)/
r
1495 p = pregion%mixt%dv(dv_mixt_pres,icg)
1496 t = pregion%mixt%dv(dv_mixt_temp,icg)
1497 a = pregion%mixt%dv(dv_mixt_soun,icg)
1499 WRITE(if_extr_data1,
'(6(1X,E23.16))') pgrid%cofg(xcoord,icg), &
1502 CASE ( gas_model_mixt_tcperf,gas_model_mixt_pseudo )
1503 DO icg = icgbeg,icgend
1504 r = pregion%mixt%cv(cv_mixt_dens,icg)
1505 u = pregion%mixt%cv(cv_mixt_xmom,icg)/
r
1506 p = pregion%mixt%dv(dv_mixt_pres,icg)
1507 t = pregion%mixt%dv(dv_mixt_temp,icg)
1508 a = pregion%mixt%dv(dv_mixt_soun,icg)
1509 mw = pregion%mixt%gv(gv_mixt_mol ,icg)
1510 cp = pregion%mixt%gv(gv_mixt_cp ,icg)
1512 WRITE(if_extr_data1,
'(8(1X,E23.16))') pgrid%cofg(xcoord,icg), &
1516 CALL
errorstop(global,err_reached_default,__line__)
1523 CLOSE(if_extr_data1,iostat=errorflag)
1524 global%error = errorflag
1525 IF ( global%error /= err_none )
THEN
1526 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
1533 IF ( global%verbLevel > verbose_none )
THEN
1534 WRITE(stdout,
'(A,1X,A)') solver_name,
'Extracting data for shocktube done.'
1578 TYPE(t_region
),
POINTER :: pregion
1584 CHARACTER(CHRLEN) :: ifilename1
1585 INTEGER :: errorflag,icg,icgbeg,icgend,ncelllayersy,ncellsx
1586 REAL(RFREAL) ::
a,cp,idx,ir,lx,mw,p,
r,t,u,
v,xs
1587 TYPE(t_grid),
POINTER :: pgrid
1590 INTEGER :: iloctp,ilocup
1591 REAL(RFREAL) :: tp,up
1598 global => pregion%global
1601 'RFLU_ModExtractFlowData.F90')
1603 IF ( global%verbLevel > verbose_none )
THEN
1604 WRITE(stdout,
'(A,1X,A)') solver_name, &
1605 'Extracting data for Sommerfeld SPI case...'
1612 pgrid => pregion%grid
1618 ncelllayersy = pregion%patches(1)%nBFaces
1619 ncellsx = pgrid%nCellsTot/ncelllayersy
1621 IF ( global%verbLevel > verbose_none )
THEN
1622 WRITE(stdout,
'(A,3X,A,1X,I5)') solver_name,
'Number of cell layers in y:', &
1624 WRITE(stdout,
'(A,3X,A,1X,I5)') solver_name,
'Number of cells in x: ', &
1628 icgbeg = (ncelllayersy-1)*ncellsx + 1
1629 icgend = ncelllayersy*ncellsx
1631 lx = maxval(pgrid%xyz(xcoord,1:pgrid%nCellsTot)) &
1632 - minval(pgrid%xyz(xcoord,1:pgrid%nCellsTot))
1633 idx =
REAL(ncellsx,kind=rfreal)/lx
1638 IF ( (global%plagUsed .EQV. .true.) .AND. &
1639 (global%postLag2EulFlag .EQV. .true.) )
THEN
1640 ilocup = pregion%plot%pv2pvi(pv_plag_xvel)
1641 iloctp = pregion%plot%pv2pvi(pv_plag_temp)
1643 IF ( (ilocup /= crazy_value_int) .AND. &
1644 (iloctp /= crazy_value_int) )
THEN
1658 WRITE(ifilename1,
'(A,1PE11.5)')
'somm_spi.dat_',global%currentTime
1660 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
1662 global%error = errorflag
1663 IF ( global%error /= err_none )
THEN
1664 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
1671 IF ( global%verbLevel > verbose_none )
THEN
1672 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing solution data to file: '// &
1676 SELECT CASE ( pregion%mixtInput%gasModel )
1677 CASE ( gas_model_tcperf )
1678 DO icg = icgbeg,icgend
1679 r = pregion%mixt%cv(cv_mixt_dens,icg)
1682 u = ir*pregion%mixt%cv(cv_mixt_xmom,icg)
1683 p = pregion%mixt%dv(dv_mixt_pres,icg)
1684 t = pregion%mixt%dv(dv_mixt_temp,icg)
1685 a = pregion%mixt%dv(dv_mixt_soun,icg)
1687 WRITE(if_extr_data1,
'(6(1X,E23.16))') pgrid%cofg(xcoord,icg), &
1690 IF ( plagflag .EQV. .true. )
THEN
1691 up = pregion%plot%pv(ilocup,icg)
1692 tp = pregion%plot%pv(iloctp,icg)
1694 WRITE(if_extr_data1,
'(8(1X,E23.16))') pgrid%cofg(xcoord,icg), &
1697 WRITE(if_extr_data1,
'(6(1X,E23.16))') pgrid%cofg(xcoord,icg), &
1703 CALL
errorstop(global,err_reached_default,__line__)
1710 CLOSE(if_extr_data1,iostat=errorflag)
1711 global%error = errorflag
1712 IF ( global%error /= err_none )
THEN
1713 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
1724 WRITE(ifilename1,
'(A,1PE11.5)')
'somm_spi_xs.dat_',global%currentTime
1726 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
1728 global%error = errorflag
1729 IF ( global%error /= err_none )
THEN
1730 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
1737 IF ( global%verbLevel > verbose_none )
THEN
1738 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing shock position to file: '// &
1744 WRITE(if_extr_data1,
'(2(1X,E23.16))') global%currentTime,xs
1750 CLOSE(if_extr_data1,iostat=errorflag)
1751 global%error = errorflag
1752 IF ( global%error /= err_none )
THEN
1753 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
1760 IF ( global%verbLevel > verbose_none )
THEN
1761 WRITE(stdout,
'(A,1X,A)') solver_name, &
1762 'Extracting data for Sommerfeld SPI case done.'
1808 TYPE(t_region
),
POINTER :: pregion
1814 CHARACTER(CHRLEN) :: ifilename1
1815 INTEGER :: errorflag,icg,icgshock
1816 REAL(RFREAL) ::
a,cp,ir,mw,p,
r,t,u,
v,xs
1817 TYPE(t_grid),
POINTER :: pgrid
1819 INTEGER :: ispec,ispeceev
1820 REAL(RFREAL) :: y1,y2
1821 REAL(RFREAL),
DIMENSION(:,:,:),
POINTER :: peev
1829 global => pregion%global
1832 'RFLU_ModExtractFlowData.F90')
1834 IF ( global%verbLevel > verbose_none )
THEN
1835 WRITE(stdout,
'(A,1X,A)') solver_name, &
1836 'Extract data for generic 1d shocktube case...'
1843 pgrid => pregion%grid
1853 WRITE(ifilename1,
'(A,1PE11.5)')
'stg1d.dat_',global%currentTime
1855 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
1857 global%error = errorflag
1858 IF ( global%error /= err_none )
THEN
1859 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
1862 IF ( global%verbLevel > verbose_none )
THEN
1863 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing data to file: '// &
1871 SELECT CASE ( pregion%mixtInput%gasModel )
1872 CASE ( gas_model_tcperf )
1873 DO icg = 1,pgrid%nCellsTot
1874 r = pregion%mixt%cv(cv_mixt_dens,icg)
1877 u = ir*pregion%mixt%cv(cv_mixt_xmom,icg)
1878 p = pregion%mixt%dv(dv_mixt_pres,icg)
1879 t = pregion%mixt%dv(dv_mixt_temp,icg)
1880 a = pregion%mixt%dv(dv_mixt_soun,icg)
1882 WRITE(if_extr_data1,
'(6(1X,E23.16))') pgrid%cofg(xcoord,icg), &
1885 CASE ( gas_model_mixt_tcperf,gas_model_mixt_pseudo )
1886 DO icg = 1,pgrid%nCellsTot
1887 r = pregion%mixt%cv(cv_mixt_dens,icg)
1890 u = ir*pregion%mixt%cv(cv_mixt_xmom,icg)
1891 p = pregion%mixt%dv(dv_mixt_pres,icg)
1892 t = pregion%mixt%dv(dv_mixt_temp,icg)
1893 a = pregion%mixt%dv(dv_mixt_soun,icg)
1894 mw = pregion%mixt%gv(gv_mixt_mol ,icg)
1895 cp = pregion%mixt%gv(gv_mixt_cp ,icg)
1897 y1 = ir*pregion%spec%cv(1,icg)
1898 y2 = ir*pregion%spec%cv(2,icg)
1900 WRITE(if_extr_data1,
'(10(1X,E23.16))') pgrid%cofg(xcoord,icg), &
1901 r,u,p,t,
a,y1,y2,mw,cp
1905 CALL
errorstop(global,err_reached_default,__line__)
1912 CLOSE(if_extr_data1,iostat=errorflag)
1913 global%error = errorflag
1914 IF ( global%error /= err_none )
THEN
1915 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
1926 WRITE(ifilename1,
'(A,1PE11.5)')
'stg1d_xs.dat_',global%currentTime
1928 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
1930 global%error = errorflag
1931 IF ( global%error /= err_none )
THEN
1932 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
1939 IF ( global%verbLevel > verbose_none )
THEN
1940 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing shock position to file: '// &
1946 WRITE(if_extr_data1,
'(2(1X,E23.16))') global%currentTime,xs
1952 CLOSE(if_extr_data1,iostat=errorflag)
1953 global%error = errorflag
1954 IF ( global%error /= err_none )
THEN
1955 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
1963 IF ( pregion%specInput%nSpeciesEE > 0 )
THEN
1969 DO ispec = 1,pregion%specInput%nSpecies
1970 pspectype => pregion%specInput%specType(ispec)
1976 IF ( pspectype%velocityMethod == spec_methv_eqeul )
THEN
1977 ispeceev = pspectype%iSpec2iSpecEEv
1979 peev => pregion%spec%eev
1983 WRITE(ifilename1,
'(A,I2.2,A)')
'stg1d',ispeceev,
'.dat'
1985 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
1987 global%error = errorflag
1988 IF ( global%error /= err_none )
THEN
1989 CALL
errorstop(global,err_file_open,__line__,
'File: '// &
1993 IF ( global%verbLevel > verbose_none )
THEN
1994 WRITE(stdout,
'(A,3X,A,1X,I2,1X,A)') solver_name, &
1995 'Writing eev data for species',ispec,
'to file: '// &
2001 DO icg = 1,pgrid%nCellsTot
2002 WRITE(if_extr_data1,
'(5(1X,E23.16))') &
2003 pgrid%cofg(xcoord,icg), &
2008 peev(1,ispeceev,icg), &
2009 peev(2,ispeceev,icg), &
2010 peev(3,ispeceev,icg), &
2011 peev(4,ispeceev,icg)
2016 CLOSE(if_extr_data1,iostat=errorflag)
2017 global%error = errorflag
2018 IF ( global%error /= err_none )
THEN
2019 CALL
errorstop(global,err_file_close,__line__,
'File: '// &
2031 IF ( global%verbLevel > verbose_none )
THEN
2032 WRITE(stdout,
'(A,1X,A)') solver_name, &
2033 'Extracting data for generic 1d shocktube case done.'
2079 TYPE(t_region
),
POINTER :: pregion
2085 CHARACTER(CHRLEN) :: ifilename1
2086 INTEGER :: errorflag,icg,icgbeg,icgend,ncellsx
2087 REAL(RFREAL) ::
a,cp,ir,mw,p,
r,t,u,
v
2088 TYPE(t_grid),
POINTER :: pgrid
2090 INTEGER :: ispec,ispeceev
2091 REAL(RFREAL) :: y1,y2
2092 REAL(RFREAL),
DIMENSION(:,:,:),
POINTER :: peev
2100 global => pregion%global
2103 'RFLU_ModExtractFlowData.F90')
2105 IF ( global%verbLevel > verbose_none )
THEN
2106 WRITE(stdout,
'(A,1X,A)') solver_name, &
2107 'Extract data for generic 2d shocktube case...'
2114 pgrid => pregion%grid
2120 ncellsx = pgrid%nCellsTot/3
2122 icgbeg = ncellsx + 1
2133 ifilename1 =
'stg2d.dat'
2135 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
2137 global%error = errorflag
2138 IF ( global%error /= err_none )
THEN
2139 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
2142 IF ( global%verbLevel > verbose_none )
THEN
2143 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing data to file: '// &
2151 SELECT CASE ( pregion%mixtInput%gasModel )
2152 CASE ( gas_model_tcperf )
2153 DO icg = icgbeg,icgend
2154 r = pregion%mixt%cv(cv_mixt_dens,icg)
2157 u = ir*pregion%mixt%cv(cv_mixt_xmom,icg)
2158 p = pregion%mixt%dv(dv_mixt_pres,icg)
2159 t = pregion%mixt%dv(dv_mixt_temp,icg)
2160 a = pregion%mixt%dv(dv_mixt_soun,icg)
2162 WRITE(if_extr_data1,
'(6(1X,E23.16))') pgrid%cofg(xcoord,icg), &
2165 CASE ( gas_model_mixt_tcperf,gas_model_mixt_pseudo )
2166 DO icg = icgbeg,icgend
2167 r = pregion%mixt%cv(cv_mixt_dens,icg)
2170 u = ir*pregion%mixt%cv(cv_mixt_xmom,icg)
2171 p = pregion%mixt%dv(dv_mixt_pres,icg)
2172 t = pregion%mixt%dv(dv_mixt_temp,icg)
2173 a = pregion%mixt%dv(dv_mixt_soun,icg)
2174 mw = pregion%mixt%gv(gv_mixt_mol ,icg)
2175 cp = pregion%mixt%gv(gv_mixt_cp ,icg)
2177 y1 = ir*pregion%spec%cv(1,icg)
2178 y2 = ir*pregion%spec%cv(2,icg)
2180 WRITE(if_extr_data1,
'(10(1X,E23.16))') pgrid%cofg(xcoord,icg), &
2181 r,u,p,t,
a,y1,y2,mw,cp
2185 CALL
errorstop(global,err_reached_default,__line__)
2192 CLOSE(if_extr_data1,iostat=errorflag)
2193 global%error = errorflag
2194 IF ( global%error /= err_none )
THEN
2195 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
2203 IF ( pregion%specInput%nSpeciesEE > 0 )
THEN
2209 DO ispec = 1,pregion%specInput%nSpecies
2210 pspectype => pregion%specInput%specType(ispec)
2216 IF ( pspectype%velocityMethod == spec_methv_eqeul )
THEN
2217 ispeceev = pspectype%iSpec2iSpecEEv
2219 peev => pregion%spec%eev
2223 WRITE(ifilename1,
'(A,I2.2,A)')
'stg2d',ispeceev,
'.dat'
2225 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
2227 global%error = errorflag
2228 IF ( global%error /= err_none )
THEN
2229 CALL
errorstop(global,err_file_open,__line__,
'File: '// &
2233 IF ( global%verbLevel > verbose_none )
THEN
2234 WRITE(stdout,
'(A,3X,A,1X,I2,1X,A)') solver_name, &
2235 'Writing eev data for species',ispec,
'to file: '// &
2241 DO icg = icgbeg,icgend
2242 WRITE(if_extr_data1,
'(5(1X,E23.16))') &
2243 pgrid%cofg(xcoord,icg), &
2248 peev(1,ispeceev,icg), &
2249 peev(2,ispeceev,icg), &
2250 peev(3,ispeceev,icg), &
2251 peev(4,ispeceev,icg)
2256 CLOSE(if_extr_data1,iostat=errorflag)
2257 global%error = errorflag
2258 IF ( global%error /= err_none )
THEN
2259 CALL
errorstop(global,err_file_close,__line__,
'File: '// &
2271 IF ( global%verbLevel > verbose_none )
THEN
2272 WRITE(stdout,
'(A,1X,A)') solver_name, &
2273 'Extracting data for generic 2d shocktube case done.'
2323 TYPE(t_region
),
POINTER :: pregion
2329 CHARACTER(CHRLEN) :: ifilename1
2330 INTEGER :: errorflag,icg,icgoffs,ix,iy,nx,ny
2331 REAL(RFREAL) ::
a,h,p,
r,t,u,
v,
xmax,
xmin,
ymax,
ymin
2332 TYPE(t_grid),
POINTER :: pgrid
2338 global => pregion%global
2341 'RFLU_ModExtractFlowData.F90')
2343 IF ( global%verbLevel > verbose_none )
THEN
2344 WRITE(stdout,
'(A,1X,A)') solver_name, &
2345 'Extracting data for Skews case...'
2352 pgrid => pregion%grid
2358 ifilename1 =
'skews.dat'
2360 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
2362 global%error = errorflag
2363 IF ( global%error /= err_none )
THEN
2364 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
2367 IF ( global%verbLevel > verbose_none )
THEN
2368 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing data to file: '// &
2380 xmax = maxval(pgrid%xyz(xcoord,1:pgrid%nVert))
2381 xmin = minval(pgrid%xyz(xcoord,1:pgrid%nVert))
2382 ymax = maxval(pgrid%xyz(ycoord,1:pgrid%nVert))
2383 ymin = minval(pgrid%xyz(ycoord,1:pgrid%nVert))
2391 nx = int(-
xmin/h+0.5_rfreal)
2392 ny = int(
ymax/h+0.5_rfreal)
2398 icgoffs = int(
xmax/h+0.5_rfreal)*int((
ymax-
ymin)/h+0.5_rfreal)
2407 icg = icgoffs + iy + (ix - 1)*ny
2409 r = pregion%mixt%cv(cv_mixt_dens,icg)
2410 u = pregion%mixt%cv(cv_mixt_xmom,icg)/
r
2411 p = pregion%mixt%dv(dv_mixt_pres,icg)
2412 t = pregion%mixt%dv(dv_mixt_temp,icg)
2413 a = pregion%mixt%dv(dv_mixt_soun,icg)
2415 WRITE(if_extr_data1,
'(7(1X,E23.16))') pgrid%cofg(xcoord,icg), &
2416 pgrid%cofg(ycoord,icg), &
2424 CLOSE(if_extr_data1,iostat=errorflag)
2425 global%error = errorflag
2426 IF ( global%error /= err_none )
THEN
2427 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
2434 IF ( global%verbLevel > verbose_none )
THEN
2435 WRITE(stdout,
'(A,1X,A)') solver_name,
'Extracting data for Skews case done.'
2476 TYPE(t_region
),
POINTER :: pregion
2482 CHARACTER(CHRLEN) :: ifilename1
2483 INTEGER :: ipatch,iv1,iv2
2484 INTEGER :: errorflag,icg,ix
2485 REAL(RFREAL) ::
a,p,
r,u,
v,w,
m,xx,yy,
angle
2486 TYPE(t_grid),
POINTER :: pgrid
2487 TYPE(t_patch),
POINTER :: ppatch
2494 global => pregion%global
2497 'RFLU_ModExtractFlowData.F90')
2499 IF ( global%verbLevel > verbose_none )
THEN
2500 WRITE(stdout,
'(A,1X,A)') solver_name, &
2501 'Extract boundary grid points data:'
2508 WRITE(ifilename1,
'(A,A)') trim(global%outDir)// &
2509 trim(global%casename)// &
2512 OPEN(if_extr_data1,file=ifilename1,
form=
'FORMATTED',
status=
'UNKNOWN', &
2514 global%error = errorflag
2515 IF ( global%error /= 0 )
THEN
2516 CALL
errorstop(global,err_file_open,__line__,
'File: '//trim(ifilename1))
2519 IF ( global%verbLevel > verbose_none )
THEN
2520 WRITE(stdout,
'(A,3X,A)') solver_name,
'Writing data to '// &
2528 pgrid => pregion%grid
2536 ppatch => pregion%patches(ipatch)
2538 WRITE(if_extr_data1,*) ppatch%nBFaces+1
2540 IF ( ipatch < 3 )
THEN
2542 iv1 = ppatch%bv(ppatch%bf2v(1,ix))
2543 xx = pgrid%xyz(xcoord,iv1)
2544 yy = pgrid%xyz(ycoord,iv1)
2545 WRITE(if_extr_data1,
'(2(1X,E23.16))') xx,yy
2547 DO ix = 1,ppatch%nBFaces
2548 iv2 = ppatch%bv(ppatch%bf2v(2,ix))
2549 xx = pgrid%xyz(xcoord,iv2)
2550 yy = pgrid%xyz(ycoord,iv2)
2551 WRITE(if_extr_data1,
'(2(1X,E23.16))') xx,yy
2555 iv1 = ppatch%bv(ppatch%bf2v(1,ix))
2556 xx = pgrid%xyz(xcoord,iv1)
2557 yy = pgrid%xyz(ycoord,iv1)
2558 WRITE(if_extr_data1,
'(2(1X,E23.16))') xx,yy
2560 DO ix = ppatch%nBFaces,1,-1
2561 iv2 = ppatch%bv(ppatch%bf2v(2,ix))
2562 xx = pgrid%xyz(xcoord,iv2)
2563 yy = pgrid%xyz(ycoord,iv2)
2564 WRITE(if_extr_data1,
'(2(1X,E23.16))') xx,yy
2573 CLOSE(if_extr_data1,iostat=errorflag)
2574 global%error = errorflag
2575 IF ( global%error /= 0 )
THEN
2576 CALL
errorstop(global,err_file_close,__line__,
'File: '//trim(ifilename1))
2583 IF ( global%verbLevel > verbose_none )
THEN
2584 WRITE(stdout,
'(A,1X,A)') solver_name,
'Extract boundary grid points for Bump case done.'
void int int REAL REAL * y
subroutine registerfunction(global, funName, fileName)
int status() const
Obtain the status of the attribute.
*********************************************************************Illinois Open Source License ****University of Illinois NCSA **Open Source License University of Illinois All rights reserved ****Developed free of to any person **obtaining a copy of this software and associated documentation to deal with the Software without including without limitation the rights to and or **sell copies of the and to permit persons to whom the **Software is furnished to do subject to the following this list of conditions and the following disclaimers ****Redistributions in binary form must reproduce the above **copyright this list of conditions and the following **disclaimers in the documentation and or other materials **provided with the distribution ****Neither the names of the Center for Simulation of Advanced the University of nor the names of its **contributors may be used to endorse or promote products derived **from this Software without specific prior written permission ****THE SOFTWARE IS PROVIDED AS WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **ARISING OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE v
double angle(Vector_3< double > v1, Vector_3< double > v2)
Compute the angle between two vectors.
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE form
subroutine, public rflu_getparamshardcodeproudman(dInc, mInj, vInj, pTot)
subroutine errorstop(global, errorCode, errorLine, addMessage)
CImg< T > & distance(const T isovalue, const float sizex=1, const float sizey=1, const float sizez=1, const bool compute_sqrt=true)
Compute the Euclidean distance map to a shape of specified isovalue.
subroutine deregisterfunction(global)
subroutine, public rflu_computeexactflowproudman(global, x, y, height, dInc, vInj, pTot, d, u, v, w, p)