64 CHARACTER(CHRLEN) :: RCSIdentString = &
65 '$RCSfile: RFLO_ModPatchAeroCoeffs.F90,v $ $Revision: 1.5 $'
97 TYPE(t_region
) :: region
107 'RFLO_InitPatchAeroCoeffs',&
108 'RFLO_ModPatchAeroCoeffs.F90' )
112 patch%cp = 0.0_rfreal
113 patch%cf = 0.0_rfreal
114 patch%ch = 0.0_rfreal
115 patch%forceCoeffs = 0.0_rfreal
116 patch%momentCoeffs = 0.0_rfreal
149 #include "Indexing.h"
152 TYPE(t_region
),
POINTER :: regions(:)
155 INTEGER :: ireg, ipatch,
ic
158 CHARACTER(2*CHRLEN+17) :: fname
159 CHARACTER(CHRLEN) ::
msg
162 INTEGER ::
status(mpi_status_size)
164 INTEGER :: ilev, flowmodel, ifile, iregfile, ipatchfile, n1file, n2file, ioff
165 INTEGER :: n1, n2,
n, ncoeffs,
tag, ndimc, ijbeg, ijend, bctype, errorflag
166 INTEGER,
ALLOCATABLE :: ivar(:,:)
168 REAL(RFREAL),
ALLOCATABLE :: rvar(:,:), acfile(:,:)
175 global => regions(1)%global
178 'RFLO_ReadPatchAeroCoeffs',&
179 'RFLO_ModPatchAeroCoeffs.F90' )
181 IF ( global%myProcid == masterproc .AND. &
182 global%verbLevel > verbose_none )
THEN
183 WRITE(stdout,
'(A,1X,A)') solver_name, &
184 'Entering RFLO_ReadPatchAeroCoeffs...'
189 ALLOCATE( ivar(4,1),stat=errorflag )
190 ALLOCATE( rvar(1,1),stat=errorflag )
191 global%error = errorflag
192 IF (global%error /= 0) CALL
errorstop( global,&
196 ifile = if_patch_coef
200 IF (global%myProcid == masterproc)
THEN
204 IF (global%flowType == flow_unsteady)
THEN
205 IF (global%solutFormat == format_ascii)
THEN
206 WRITE(fname,
'(A,1PE11.5)') trim(global%inDir)//trim(global%casename)//
'.pcoa_', &
208 OPEN(ifile,file=fname,
form=
'formatted',
status=
'old',iostat=errorflag)
209 ELSE IF (global%solutFormat == format_binary)
THEN
210 WRITE(fname,
'(A,1PE11.5)') trim(global%inDir)//trim(global%casename)//
'.pcob_', &
212 OPEN(ifile,file=fname,
form=
'unformatted',
status=
'old',iostat=errorflag)
222 IF (global%solutFormat == format_ascii)
THEN
223 WRITE(fname,
'(A,I6.6)') trim(global%inDir)//trim(global%casename)//
'.pcoa_', &
225 OPEN(ifile,file=fname,
form=
'formatted',
status=
'old',iostat=errorflag)
226 ELSE IF (global%solutFormat == format_binary)
THEN
227 WRITE(fname,
'(A,I6.6)') trim(global%inDir)//trim(global%casename)//
'.pcob_', &
229 OPEN(ifile,file=fname,
form=
'unformatted',
status=
'old',iostat=errorflag)
237 global%error = errorflag
238 IF (global%error /= 0) &
242 'File: '//trim(fname) )
248 IF (global%myProcid == masterproc)
THEN
253 CALL mpi_bcast( rvar,1,mpi_rfreal,masterproc,global%mpiComm,global%mpierr )
254 IF (global%mpierr /=0 ) CALL
errorstop( global,&
259 IF (global%flowType==flow_unsteady .AND. global%currentTime>0._rfreal)
THEN
260 IF (global%currentTime /= rvar(1,1))
THEN
261 WRITE(
msg,1000) rvar(1,1),global%currentTime
262 CALL
errorstop( global,err_time_solution,&
264 msg//
' File: '//trim(fname) )
270 DO ireg=1,global%nRegions
271 ilev = regions(ireg)%currLevel
272 flowmodel = regions(ireg)%mixtInput%flowModel
274 DO ipatch=1,regions(ireg)%nPatches
275 patch => regions(ireg)%levels(ilev)%patches(ipatch)
276 bctype =
patch%bcType
278 IF ((bctype < bc_regionconf .OR. bctype > bc_regionconf+bc_range) .AND.&
279 (bctype < bc_regionint .OR. bctype > bc_regionint +bc_range) .AND.&
280 (bctype < bc_regnonconf .OR. bctype > bc_regnonconf+bc_range))
THEN
287 ijbeg = indij( 0, 0,ioff)
288 ijend = indij(n1,n2,ioff)
290 IF (flowmodel==flow_euler) ncoeffs = 1
291 IF (flowmodel==flow_navst) ncoeffs = 5
292 ndimc = ijend - ijbeg + 1
294 tag = regions(ireg)%localNumber + mpi_patchoff*ipatch
298 IF (global%myProcid == masterproc)
THEN
301 ipatchfile = ivar(2,1)
304 IF (iregfile /= ireg) &
305 CALL
errorstop( global,err_region_number,&
307 'File: '//trim(fname) )
308 IF (ipatchfile /= ipatch) &
309 CALL
errorstop( global,err_patch_number,&
311 'File: '//trim(fname) )
312 IF (n1file /= n1 .OR. n2file /= n2)
THEN
313 WRITE(
msg,1000) ireg,ipatch, n1, n2
314 CALL
errorstop( global,err_patch_dimens,&
322 IF (global%myProcid == masterproc)
THEN
324 ALLOCATE( acfile(ncoeffs,ndimc),stat=errorflag )
325 global%error = errorflag
326 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
330 ncoeffs,ndimc,acfile )
333 IF (regions(ireg)%procid /= masterproc)
THEN
334 CALL mpi_send( acfile,ncoeffs*ndimc,mpi_rfreal, &
335 regions(ireg)%procid,
tag, &
336 global%mpiComm,global%mpierr )
337 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,&
343 IF (regions(ireg)%procid == global%myProcid)
THEN
344 ALLOCATE( acfile(ncoeffs,ndimc),stat=errorflag )
345 global%error = errorflag
346 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
350 CALL mpi_recv( acfile,ncoeffs*ndimc,mpi_rfreal,masterproc,
tag, &
351 global%mpiComm,
status,global%mpierr )
352 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,&
360 IF (regions(ireg)%procid == global%myProcid)
THEN
361 IF (flowmodel == flow_euler)
THEN
367 ELSEIF (flowmodel == flow_navst)
THEN
380 IF (
ALLOCATED(acfile))
THEN
381 DEALLOCATE( acfile,stat=errorflag )
382 global%error = errorflag
383 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
393 IF (global%myProcid == masterproc)
THEN
394 CLOSE(ifile,iostat=errorflag)
395 global%error = errorflag
396 IF (global%error /= 0) &
399 'File: '//trim(fname) )
402 IF ( global%myProcid == masterproc .AND. &
403 global%verbLevel > verbose_none )
THEN
404 WRITE(stdout,
'(A,1X,A)') solver_name, &
405 'Leaving RFLO_ReadPatchAeroCoeffs.'
410 1000
FORMAT(
'Region ',i5,
', iPatch= ',i5,
', n1= ',i5,
', n2= ',i5,
'.')
440 #include "Indexing.h"
443 TYPE(t_region
),
POINTER :: regions(:)
446 INTEGER :: ireg, ipatch,
ic
449 CHARACTER(2*CHRLEN+17) :: fname
450 CHARACTER(CHRLEN) ::
msg
453 INTEGER ::
status(mpi_status_size)
455 INTEGER :: ilev, flowmodel, ifile, iregfile, ipatchfile, n1file, n2file, ioff
456 INTEGER :: n1, n2,
n, ncoeffs,
tag, ndimc, ijbeg, ijend, bctype, errorflag
457 INTEGER,
ALLOCATABLE :: ivar(:,:)
459 REAL(RFREAL),
ALLOCATABLE :: rvar(:,:), acfile(:,:)
466 global => regions(1)%global
469 'RFLO_ModPatchAeroCoeffs.F90' )
471 IF ( global%myProcid == masterproc .AND. &
472 global%verbLevel > verbose_none )
THEN
473 WRITE(stdout,
'(A,1X,A)') solver_name, &
474 'Entering RFLO_WritePatchAeroCoeffs...'
479 ALLOCATE( ivar(4,1),stat=errorflag )
480 ALLOCATE( rvar(1,1),stat=errorflag )
481 global%error = errorflag
482 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
485 ifile = if_patch_coef
489 IF (global%myProcid == masterproc)
THEN
493 IF (global%flowType == flow_unsteady)
THEN
494 IF (global%solutFormat == format_ascii)
THEN
495 WRITE(fname,
'(A,1PE11.5)') trim(global%inDir)//trim(global%casename)//
'.pcoa_', &
497 OPEN(ifile,file=fname,
form=
'formatted',
status=
'unknown', &
499 ELSE IF (global%solutFormat == format_binary)
THEN
500 WRITE(fname,
'(A,1PE11.5)') trim(global%inDir)//trim(global%casename)//
'.pcob_', &
502 OPEN(ifile,file=fname,
form=
'unformatted',
status=
'unknown', &
505 CALL
errorstop( global,err_unknown_format,&
508 rvar(1,1) = global%currentTime
513 IF (global%solutFormat == format_ascii)
THEN
514 WRITE(fname,
'(A,I6.6)') trim(global%inDir)//trim(global%casename)//
'.pcoa_', &
516 OPEN(ifile,file=fname,
form=
'formatted',
status=
'unknown', &
518 ELSE IF (global%solutFormat == format_binary)
THEN
519 WRITE(fname,
'(A,I6.6)') trim(global%inDir)//trim(global%casename)//
'.pcob_', &
521 OPEN(ifile,file=fname,
form=
'unformatted',
status=
'unknown', &
524 CALL
errorstop( global,err_unknown_format,&
527 rvar(1,1) = global%resInit
530 global%error = errorflag
531 IF (global%error /= 0) &
534 'File: '//trim(fname) )
540 IF (global%myProcid == masterproc)
THEN
546 DO ireg=1,global%nRegions
547 ilev = regions(ireg)%currLevel
548 flowmodel = regions(ireg)%mixtInput%flowModel
550 DO ipatch=1,regions(ireg)%nPatches
551 patch => regions(ireg)%levels(ilev)%patches(ipatch)
552 bctype =
patch%bcType
554 IF ((bctype < bc_regionconf .OR. bctype > bc_regionconf+bc_range) .AND.&
555 (bctype < bc_regionint .OR. bctype > bc_regionint +bc_range) .AND.&
556 (bctype < bc_regnonconf .OR. bctype > bc_regnonconf+bc_range))
THEN
558 IF (regions(ireg)%procid==global%myProcid .OR. &
559 global%myProcid==masterproc)
THEN
566 ijbeg = indij( 0, 0,ioff)
567 ijend = indij(n1,n2,ioff)
569 IF (flowmodel==flow_euler) ncoeffs = 1
570 IF (flowmodel==flow_navst) ncoeffs = 5
571 ndimc = ijend - ijbeg + 1
573 tag = regions(ireg)%localNumber + mpi_patchoff*ipatch
577 ALLOCATE( acfile(ncoeffs,ndimc),stat=errorflag )
578 global%error = errorflag
579 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
586 IF (regions(ireg)%procid == global%myProcid)
THEN
587 IF (flowmodel == flow_euler)
THEN
593 ELSEIF (flowmodel == flow_navst)
THEN
609 IF (global%myProcid == masterproc)
THEN
619 IF (global%myProcid == masterproc)
THEN
621 IF (regions(ireg)%procid /= masterproc)
THEN
622 CALL mpi_recv( acfile,ncoeffs*ndimc,mpi_rfreal, &
623 regions(ireg)%procid,
tag, &
624 global%mpiComm,
status,global%mpierr )
625 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,&
630 ncoeffs,ndimc,acfile )
633 IF (regions(ireg)%procid == global%myProcid)
THEN
635 CALL mpi_send( acfile,ncoeffs*ndimc,mpi_rfreal,masterproc,
tag, &
636 global%mpiComm,global%mpierr )
637 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,&
643 IF (
ALLOCATED(acfile))
THEN
644 DEALLOCATE( acfile,stat=errorflag )
645 global%error = errorflag
646 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
656 IF (global%myProcid == masterproc)
THEN
657 CLOSE(ifile,iostat=errorflag)
658 global%error = errorflag
659 IF (global%error /= 0) &
662 'File: '//trim(fname) )
665 IF ( global%myProcid == masterproc .AND. &
666 global%verbLevel > verbose_none )
THEN
667 WRITE(stdout,
'(A,1X,A)') solver_name, &
668 'Leaving RFLO_WritePatchAeroCoeffs.'
673 1000
FORMAT(
'Region ',i5,
', iPatch= ',i5,
', n1= ',i5,
', n2= ',i5,
'.')
702 #include "Indexing.h"
706 TYPE(t_region
),
POINTER :: regions(:)
709 INTEGER :: ipatch,
ic
712 CHARACTER(2*CHRLEN+17) :: fname
713 CHARACTER(CHRLEN) ::
msg
715 INTEGER :: ilev, flowmodel, ifile, iregfile, ipatchfile, n1file, n2file, ioff
716 INTEGER :: n1, n2,
n, ncoeffs, ndimc, ijbeg, ijend, bctype, errorflag
717 INTEGER,
ALLOCATABLE :: ivar(:,:)
719 REAL(RFREAL),
ALLOCATABLE :: rvar(:,:), acfile(:,:)
726 global => regions(ireg)%global
729 'RFLO_ModPatchAeroCoeffs.F90' )
731 IF ( global%myProcid == masterproc .AND. &
732 global%verbLevel > verbose_none )
THEN
733 WRITE(stdout,
'(A,1X,A)') solver_name, &
734 'Entering RFLO_ReadPatchAeroCoeffsReg...'
739 ALLOCATE( ivar(4,1),stat=errorflag )
740 ALLOCATE( rvar(1,1),stat=errorflag )
741 global%error = errorflag
742 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
745 ifile = if_patch_coef
753 IF (global%flowType == flow_unsteady)
THEN
754 IF (global%solutFormat == format_ascii)
THEN
755 WRITE(fname,
'(A,1PE11.5)') trim(global%inDir)//trim(global%casename)//
'.pcoa_', &
757 OPEN(ifile,file=fname,
form=
'formatted',
status=
'old',iostat=errorflag)
758 ELSE IF (global%solutFormat == format_binary)
THEN
759 WRITE(fname,
'(A,1PE11.5)') trim(global%inDir)//trim(global%casename)//
'.pcob_', &
761 OPEN(ifile,file=fname,
form=
'unformatted',
status=
'old',iostat=errorflag)
763 CALL
errorstop( global,err_unknown_format,&
770 IF (global%solutFormat == format_ascii)
THEN
771 WRITE(fname,
'(A,I6.6)') trim(global%inDir)//trim(global%casename)//
'.pcoa_', &
773 OPEN(ifile,file=fname,
form=
'formatted',
status=
'old',iostat=errorflag)
774 ELSE IF (global%solutFormat == format_binary)
THEN
775 WRITE(fname,
'(A,I6.6)') trim(global%inDir)//trim(global%casename)//
'.pcob_', &
777 OPEN(ifile,file=fname,
form=
'unformatted',
status=
'old',iostat=errorflag)
779 CALL
errorstop( global,err_unknown_format,&
784 global%error = errorflag
785 IF (global%error /= 0) &
788 'File: '//trim(fname) )
792 IF (global%myProcid == masterproc)
THEN
796 IF (global%flowType==flow_unsteady .AND. global%currentTime>0._rfreal)
THEN
797 IF (global%currentTime /= rvar(1,1))
THEN
798 WRITE(
msg,1000) rvar(1,1),global%currentTime
799 CALL
errorstop( global,err_time_solution,&
801 msg//
' File: '//trim(fname) )
809 ilev = regions(ireg)%currLevel
810 flowmodel = regions(ireg)%mixtInput%flowModel
812 DO ipatch=1,regions(ireg)%nPatches
813 patch => regions(ireg)%levels(ilev)%patches(ipatch)
814 bctype =
patch%bcType
817 IF ((bctype < bc_regionconf .OR. bctype > bc_regionconf+bc_range) .AND.&
818 (bctype < bc_regionint .OR. bctype > bc_regionint +bc_range) .AND.&
819 (bctype < bc_regnonconf .OR. bctype > bc_regnonconf+bc_range))
THEN
826 ijbeg = indij( 0, 0,ioff)
827 ijend = indij(n1,n2,ioff)
829 IF (flowmodel==flow_euler) ncoeffs = 1
830 IF (flowmodel==flow_navst) ncoeffs = 5
831 ndimc = ijend - ijbeg + 1
837 ipatchfile = ivar(2,1)
841 IF (iregfile /= ireg) &
842 CALL
errorstop( global,err_region_number,&
844 'File: '//trim(fname) )
845 IF (ipatchfile /= ipatch) &
846 CALL
errorstop( global,err_patch_number,&
848 'File: '//trim(fname) )
849 IF (n1file /= n1 .OR. n2file /= n2)
THEN
850 WRITE(
msg,1000) ireg,ipatch, n1, n2
851 CALL
errorstop( global,err_patch_dimens,&
858 ALLOCATE( acfile(ncoeffs,ndimc),stat=errorflag )
859 global%error = errorflag
860 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
863 ncoeffs,ndimc,acfile )
867 IF (flowmodel == flow_euler)
THEN
873 ELSEIF (flowmodel == flow_navst)
THEN
885 IF (
ALLOCATED(acfile))
THEN
886 DEALLOCATE( acfile,stat=errorflag )
887 global%error = errorflag
888 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,__line__ )
896 IF (ireg == global%nRegions)
THEN
897 CLOSE(ifile,iostat=errorflag)
898 global%error = errorflag
899 IF (global%error /= 0) &
900 CALL
errorstop( global,err_file_close,__line__,
'File: '//trim(fname) )
903 IF ( global%myProcid == masterproc .AND. &
904 global%verbLevel > verbose_none )
THEN
905 WRITE(stdout,
'(A,1X,A)') solver_name, &
906 'Leaving RFLO_ReadPatchAeroCoeffsReg.'
911 1000
FORMAT(
'Region ',i5,
', iPatch= ',i5,
', n1= ',i5,
', n2= ',i5,
'.')
subroutine rflo_writedatafileint(global, fileId, form, nDim1, nDim2, ivar)
subroutine registerfunction(global, funName, fileName)
int status() const
Obtain the status of the attribute.
**********************************************************************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 ic
subroutine rflo_readdatafileint(global, fileId, form, nDim1, nDim2, ivar)
subroutine, public rflo_writepatchaerocoeffs(regions)
**********************************************************************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 rflo_initpatchaerocoeffs(region, patch)
subroutine, public rflo_readpatchaerocoeffs(regions)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine, public rflo_readpatchaerocoeffsreg(iReg, regions)
subroutine rflo_writedatafilereal(global, fileId, form, nDim1, nDim2, var)
subroutine deregisterfunction(global)
subroutine rflo_readdatafilereal(global, fileId, form, nDim1, nDim2, var)