@@ -39,6 +39,9 @@ PROGRAM InflowWind_Driver
3939 TYPE ( ProgDesc ), PARAMETER :: ProgInfo = ProgDesc(" InflowWind_Driver" ," " ," " )
4040 INTEGER (IntKi) :: IfWDriver_Verbose = 5 ! Verbose level. 0 = none, 5 = some, 10 = lots
4141
42+ ! output paths hard coded
43+ CHARACTER (* ), PARAMETER :: VTKsliceDir = " vtk" ! Directory to place the output VTK slices
44+
4245 ! Types needed here (from InflowWind module)
4346 TYPE (InflowWind_InitInputType) :: InflowWind_InitInp ! Data for initialization -- this is where the input info goes
4447 TYPE (InflowWind_InputType) :: InflowWind_u1 ! input -- contains xyz coords of interest -- set 1
@@ -116,8 +119,23 @@ PROGRAM InflowWind_Driver
116119 CALL CPU_TIME( Timer(1 ) )
117120
118121 ! Set some CLSettings to null/default values
119- CLSettings% ProgInfo = ProgInfo
120- Settings% ProgInfo = ProgInfo
122+ CLSettings% ProgInfo = ProgInfo
123+ Settings% ProgInfo = ProgInfo
124+ ! Set the filenames to empty strings -- otherwise prints garbage with the -vv option
125+ CLSettings% DvrIptFileName = ' '
126+ CLSettings% IfWIptFileName = ' '
127+ CLSettings% SummaryFileName = ' '
128+ CLSettings% PointsFileName = ' '
129+ CLSettings% WindGridOutput% Name = ' '
130+ CLSettings% FFTOutput% Name = ' '
131+ CLSettings% PointsVelOutput% Name = ' '
132+ Settings% DvrIptFileName = ' '
133+ Settings% IfWIptFileName = ' '
134+ Settings% SummaryFileName = ' '
135+ Settings% PointsFileName = ' '
136+ Settings% WindGridOutput% Name = ' '
137+ Settings% FFTOutput% Name = ' '
138+ Settings% PointsVelOutput% Name = ' '
121139
122140 !- -------------------------------------------------------------------------------------------------------------------------------
123141 !- =-=- Parse the command line inputs -=-=-
@@ -419,92 +437,61 @@ PROGRAM InflowWind_Driver
419437 InflowWind_p% FlowField% Grid3D% BoxExceedAllowDrv = .true.
420438 end if
421439
422- ! Make sure no errors occured that give us reason to terminate now.
423- IF ( ErrStat >= AbortErrLev ) THEN
424- CALL DriverCleanup()
425- CALL ProgAbort( ErrMsg )
426- ELSEIF ( ErrStat /= ErrID_None ) THEN
427- IF ( IfWDriver_Verbose >= 7_IntKi ) THEN
428- CALL WrScr(NewLine// ' InflowWind_Init returned: ErrStat: ' // TRIM (Num2LStr(ErrStat))// &
429- NewLine// ' ErrMsg: ' // TRIM (ErrMsg)// NewLine)
430- ELSEIF ( ErrStat >= ErrID_Warn ) THEN
431- CALL ProgWarn( ErrMsg )
432- ELSE
433- CALL WrScr(TRIM (ErrMsg))
434- ENDIF
435- ENDIF
436-
440+ call CheckCallErr(' InflowWind_Init' )
437441
438442
439- ! Let user know we returned from the InflowWind code if verbose
440- IF ( IfWDriver_Verbose >= 5_IntKi ) CALL WrScr(NewLine// ' InflowWind_Init CALL returned without errors.' // NewLine)
441-
442443
443444 ! Convert InflowWind file to HAWC format
444445 IF (SettingsFlags% WrHAWC) THEN
445446 CALL IfW_WriteHAWC( InflowWind_p% FlowField, InflowWind_InitInp% RootName, ErrStat, ErrMsg )
446- IF (ErrStat > ErrID_None) THEN
447- CALL WrScr( TRIM (ErrMsg) )
448- IF ( ErrStat >= AbortErrLev ) THEN
449- CALL DriverCleanup()
450- CALL ProgAbort( ErrMsg )
451- ELSEIF ( IfWDriver_Verbose >= 7_IntKi ) THEN
452- CALL WrScr(NewLine// ' IfW_WriteHAWC returned: ErrStat: ' // TRIM (Num2LStr(ErrStat)))
453- END IF
454- ELSE IF ( IfWDriver_Verbose >= 5_IntKi ) THEN
455- CALL WrScr(NewLine// ' IfW_WriteHAWC CALL returned without errors.' // NewLine)
456- END IF
447+ call CheckCallErr(' IfW_WriteHAWC' )
457448 END IF
458449
459450
460451 ! Convert InflowWind file to Native Bladed format
461452 IF (SettingsFlags% WrBladed) THEN
462453 CALL IfW_WriteBladed( InflowWind_p% FlowField, InflowWind_InitInp% RootName, ErrStat, ErrMsg )
463- IF (ErrStat > ErrID_None) THEN
464- CALL WrScr( TRIM (ErrMsg) )
465- IF ( ErrStat >= AbortErrLev ) THEN
466- CALL DriverCleanup()
467- CALL ProgAbort( ErrMsg )
468- ELSEIF ( IfWDriver_Verbose >= 7_IntKi ) THEN
469- CALL WrScr(NewLine// ' InflowWind_Convert2Bladed returned: ErrStat: ' // TRIM (Num2LStr(ErrStat)))
470- END IF
471- ELSE IF ( IfWDriver_Verbose >= 5_IntKi ) THEN
472- CALL WrScr(NewLine// ' InflowWind_Convert2Bladed CALL returned without errors.' // NewLine)
473- END IF
454+ call CheckCallErr(' IfW_WriteBladed' )
474455 END IF
475456
457+
476458 IF (SettingsFlags% WrVTK) THEN
477459 CALL IfW_WriteVTK( InflowWind_p% FlowField, InflowWind_InitInp% RootName, ErrStat, ErrMsg )
478- IF (ErrStat > ErrID_None) THEN
479- CALL WrScr( TRIM (ErrMsg) )
480- IF ( ErrStat >= AbortErrLev ) THEN
481- CALL DriverCleanup()
482- CALL ProgAbort( ErrMsg )
483- ELSEIF ( IfWDriver_Verbose >= 7_IntKi ) THEN
484- CALL WrScr(NewLine// ' IfW_WriteVTK returned: ErrStat: ' // TRIM (Num2LStr(ErrStat)))
485- END IF
486- ELSE IF ( IfWDriver_Verbose >= 5_IntKi ) THEN
487- CALL WrScr(NewLine// ' IfW_WriteVTK CALL returned without errors.' // NewLine)
488- END IF
489-
460+ call CheckCallErr(' IfW_WriteVTK' )
490461 END IF
491462
492463
493464 IF (SettingsFlags% WrUniform) THEN
494465 CALL IfW_WriteUniform( InflowWind_p% FlowField, InflowWind_InitInp% RootName, ErrStat, ErrMsg )
495- IF (ErrStat > ErrID_None) THEN
496- CALL WrScr( TRIM (ErrMsg) )
497- IF ( ErrStat >= AbortErrLev ) THEN
498- CALL DriverCleanup()
499- CALL ProgAbort( ErrMsg )
500- ELSEIF ( IfWDriver_Verbose >= 7_IntKi ) THEN
501- CALL WrScr(NewLine// ' IfW_WriteUniform returned: ErrStat: ' // TRIM (Num2LStr(ErrStat)))
502- END IF
503- ELSE IF ( IfWDriver_Verbose >= 5_IntKi ) THEN
504- CALL WrScr(NewLine// ' IfW_WriteUniform CALL returned without errors.' // NewLine)
505- END IF
466+ call CheckCallErr(' IfW_WriteUniform' )
506467 END IF
507468
469+
470+ IF (Settings% NOutWindXY> 0 ) THEN
471+ do i= 1 ,Settings% NOutWindXY
472+ CALL IfW_WriteXYslice( InflowWind_p% FlowField, InflowWind_InitInp% RootName, VTKsliceDir, Settings% OutWindZ(i), ErrStat, ErrMsg )
473+ call CheckCallErr(' IfW_WriteXYslice' // trim (Num2LStr(i)))
474+ enddo
475+ END IF
476+
477+
478+ ! FIXME: future developent
479+ ! IF (Settings%NOutWindXZ>0) THEN
480+ ! do i=1,Settings%NOutWindXZ
481+ ! CALL IfW_WriteXZslice( InflowWind_p%FlowField, InflowWind_InitInp%RootName, VTKsliceDir, Settings%OutWindY(i), ErrStat, ErrMsg )
482+ ! call CheckCallErr('IfW_WriteXZslice'//trim(Num2LStr(i)))
483+ ! enddo
484+ ! END IF
485+
486+
487+ ! IF (Settings%NOutWindYZ>0) THEN
488+ ! do i=1,Settings%NOutWindYZ
489+ ! CALL IfW_WriteYZslice( InflowWind_p%FlowField, InflowWind_InitInp%RootName, VTKsliceDir, Settings%OutWindX(i), ErrStat, ErrMsg )
490+ ! call CheckCallErr('IfW_WriteYZslice'//trim(Num2LStr(i)))
491+ ! enddo
492+ ! END IF
493+
494+
508495 !- -------------------------------------------------------------------------------------------------------------------------------
509496 !- =-=- Other Setup -=-=-
510497 !- -------------------------------------------------------------------------------------------------------------------------------
@@ -942,6 +929,22 @@ SUBROUTINE DriverCleanup()
942929
943930 END SUBROUTINE DriverCleanup
944931
932+ subroutine CheckCallErr (RoutineName )
933+ character (* ), intent (in ) :: RoutineName
934+ if (ErrStat > ErrID_None) then
935+ call WrScr( trim (ErrMsg) )
936+ if ( ErrStat >= AbortErrLev ) then
937+ call DriverCleanup()
938+ call ProgAbort( ErrMsg )
939+ elseif ( IfWDriver_Verbose >= 7_IntKi ) then
940+ call WrScr(NewLine// ' ' // trim (RoutineName)// ' returned: ErrStat: ' // TRIM (Num2LStr(ErrStat)))
941+ endif
942+ elseif ( IfWDriver_Verbose >= 5_IntKi ) then
943+ CALL WrScr(NewLine// trim (RoutineName)// ' CALL returned without errors.' // NewLine)
944+ endif
945+ end subroutine CheckCallErr
946+
947+
945948END PROGRAM InflowWind_Driver
946949
947950
0 commit comments