From bc2faeb429041bbfedb6393c95998bb461ed88fa Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Thu, 17 Aug 2017 11:31:15 -0600 Subject: [PATCH 01/13] Added back Stack Reserve setting for all x64 builds --- vs-build/FAST/FAST.vfproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vs-build/FAST/FAST.vfproj b/vs-build/FAST/FAST.vfproj index b2c96558b2..a96c64a0e6 100644 --- a/vs-build/FAST/FAST.vfproj +++ b/vs-build/FAST/FAST.vfproj @@ -26,7 +26,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -76,7 +76,7 @@ - + From f619aa80e67676f90c653a5eee71e64ecd5db492 Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Tue, 22 Aug 2017 08:57:23 -0600 Subject: [PATCH 02/13] Draft of Binary output without compression Added FileID = FileFmtID_NoCompressWithoutTime which would now branch the file reading code to correctly parse the new uncompressed file format, so all readers need to be updated to support this new format, but old readers still work with legacy binary files. --- modules-local/fast-library/src/FAST_Mods.f90 | 3 +- modules-local/nwtc-library/src/NWTC_IO.f90 | 336 +++++++++++-------- 2 files changed, 196 insertions(+), 143 deletions(-) diff --git a/modules-local/fast-library/src/FAST_Mods.f90 b/modules-local/fast-library/src/FAST_Mods.f90 index 2319f5a85d..e58e9ce40f 100644 --- a/modules-local/fast-library/src/FAST_Mods.f90 +++ b/modules-local/fast-library/src/FAST_Mods.f90 @@ -70,7 +70,8 @@ MODULE FAST_ModTypes !bjj: 2015-03-03: not sure this is still necessary... INTEGER(B2Ki), PARAMETER :: OutputFileFmtID = FileFmtID_WithTime ! We cannot guarantee the output time step is constant in binary files #else - INTEGER(B2Ki), PARAMETER :: OutputFileFmtID = FileFmtID_WithoutTime ! A format specifier for the binary output file format (1=include time channel as packed 32-bit binary; 2=don't include time channel) + !INTEGER(B2Ki), PARAMETER :: OutputFileFmtID = FileFmtID_WithoutTime ! A format specifier for the binary output file format (1=include time channel as packed 32-bit binary; 2=don't include time channel) + INTEGER(B2Ki), PARAMETER :: OutputFileFmtID = FileFmtID_NoCompressWithoutTime ! A format specifier for the binary output file format (1=include time channel as packed 32-bit binary; 2=don't include time channel;3=don't include time channel and do not pack data) #endif LOGICAL, PARAMETER :: GenerateAdamsModel = .FALSE. diff --git a/modules-local/nwtc-library/src/NWTC_IO.f90 b/modules-local/nwtc-library/src/NWTC_IO.f90 index 3b5bda1e6f..71e3bb59d4 100644 --- a/modules-local/nwtc-library/src/NWTC_IO.f90 +++ b/modules-local/nwtc-library/src/NWTC_IO.f90 @@ -56,6 +56,7 @@ MODULE NWTC_IO INTEGER(B2Ki), PARAMETER :: FileFmtID_WithTime = 1 !< ID for FAST Output File Format, specifies that the time channel is included in the output file (use if the output can occur at variable times) INTEGER(B2Ki), PARAMETER :: FileFmtID_WithoutTime = 2 !< ID for FAST Output File Format, specifies that the time channel is not included in the output file (used only with constant time-step output) + INTEGER(B2Ki), PARAMETER :: FileFmtID_NoCompressWithoutTime = 3 !< ID for FAST Output File Format, specifies that the time channel is not included in the output file (used only with constant time-step output), and data is not compressed, but written as double precision floats LOGICAL :: Beep = .TRUE. !< Flag that specifies whether or not to beep for error messages and program terminations. @@ -4888,6 +4889,7 @@ SUBROUTINE ReadFASTbin ( UnIn, Init, FASTdata, ErrStat, ErrMsg ) INTEGER(B2Ki) :: FileType ! The type of FAST data file (1: Time channel included in file; 2: Time stored as start time and step). INTEGER(B2Ki), ALLOCATABLE :: TmpInArray(:,:) ! This array holds the normalized channels that were read from the binary file. + INTEGER(R8Ki), ALLOCATABLE :: TmpR8InArray(:,:) ! This array holds the uncompressed channels that were read from the binary file. INTEGER(B1Ki), ALLOCATABLE :: DescStrASCII(:) ! The ASCII equivalent of DescStr. INTEGER(B1Ki) :: TmpStrASCII(MaxChrLen) ! The temporary ASCII equivalent of a channel name or units. @@ -4989,28 +4991,7 @@ SUBROUTINE ReadFASTbin ( UnIn, Init, FASTdata, ErrStat, ErrMsg ) ! Allocate the necessary arrays. - - ALLOCATE ( ColMax( FASTdata%NumChans ) , STAT=ErrStat2 ) - IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for ColMax array.', ErrStat, ErrMsg, RoutineName ) - CALL Cleanup() - RETURN - ENDIF - - ALLOCATE ( ColMin( FASTdata%NumChans ) , STAT=ErrStat2 ) - IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for ColMin array.', ErrStat, ErrMsg, RoutineName ) - CALL Cleanup() - RETURN - ENDIF - - ALLOCATE ( ColOff( FASTdata%NumChans ) , STAT=ErrStat2 ) - IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for ColOff array.', ErrStat, ErrMsg, RoutineName ) - CALL Cleanup() - RETURN - ENDIF - + ALLOCATE ( FASTdata%ChanNames( FASTdata%NumChans+1 ) , STAT=ErrStat2 ) IF ( ErrStat2 /= 0 ) THEN CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for FASTdata%ChanNames array.', ErrStat, ErrMsg, RoutineName ) @@ -5025,55 +5006,94 @@ SUBROUTINE ReadFASTbin ( UnIn, Init, FASTdata, ErrStat, ErrMsg ) RETURN ENDIF - ALLOCATE ( ColScl( FASTdata%NumChans ) , STAT=ErrStat2 ) + ALLOCATE ( FASTdata%Data( FASTdata%NumRecs, FASTdata%NumChans+1 ) , STAT=ErrStat2 ) IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for ColScl array.', ErrStat, ErrMsg, RoutineName ) + CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for the FASTdata%Data array.', ErrStat, ErrMsg, RoutineName ) CALL Cleanup() RETURN ENDIF + + IF ( FileType == FileFmtID_NoCompressWithoutTime ) THEN + ALLOCATE ( TmpR8InArray( FASTdata%NumRecs, FASTdata%NumChans ) , STAT=ErrStat2 ) + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for the TmpR8InArray array.', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup() + RETURN + ENDIF - ALLOCATE ( TmpInArray( FASTdata%NumRecs, FASTdata%NumChans ) , STAT=ErrStat2 ) - IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for the TmpInArray array.', ErrStat, ErrMsg, RoutineName ) - CALL Cleanup() - RETURN - ENDIF + ELSE + + ALLOCATE ( ColMax( FASTdata%NumChans ) , STAT=ErrStat2 ) + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for ColMax array.', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup() + RETURN + ENDIF - IF ( FileType == FileFmtID_WithTime ) THEN - ALLOCATE ( TmpTimeArray( FASTdata%NumRecs ) , STAT=ErrStat2 ) + ALLOCATE ( ColMin( FASTdata%NumChans ) , STAT=ErrStat2 ) IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for the TmpTimeArray array.', ErrStat, ErrMsg, RoutineName ) + CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for ColMin array.', ErrStat, ErrMsg, RoutineName ) CALL Cleanup() RETURN ENDIF - END IF - ALLOCATE ( FASTdata%Data( FASTdata%NumRecs, FASTdata%NumChans+1 ) , STAT=ErrStat2 ) - IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for the FASTdata%Data array.', ErrStat, ErrMsg, RoutineName ) - CALL Cleanup() - RETURN - ENDIF + ALLOCATE ( ColOff( FASTdata%NumChans ) , STAT=ErrStat2 ) + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for ColOff array.', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup() + RETURN + ENDIF + + ALLOCATE ( ColScl( FASTdata%NumChans ) , STAT=ErrStat2 ) + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for ColScl array.', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup() + RETURN + ENDIF + + ALLOCATE ( TmpInArray( FASTdata%NumRecs, FASTdata%NumChans ) , STAT=ErrStat2 ) + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for the TmpInArray array.', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup() + RETURN + ENDIF + + IF ( FileType == FileFmtID_WithTime ) THEN + ALLOCATE ( TmpTimeArray( FASTdata%NumRecs ) , STAT=ErrStat2 ) + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for the TmpTimeArray array.', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup() + RETURN + ENDIF + END IF + + END IF + + ! Read more of the header information. - READ (UnIn, IOSTAT=ErrStat2) ColScl - IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat ( ErrID_Fatal, 'Fatal error reading the ColScl array from file "' & - //TRIM( FASTdata%File )//'".', ErrStat, ErrMsg, RoutineName ) - CALL Cleanup() - RETURN - ENDIF + IF ( FileType /= FileFmtID_NoCompressWithoutTime ) THEN + + READ (UnIn, IOSTAT=ErrStat2) ColScl + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat ( ErrID_Fatal, 'Fatal error reading the ColScl array from file "' & + //TRIM( FASTdata%File )//'".', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup() + RETURN + ENDIF - READ (UnIn, IOSTAT=ErrStat2) ColOff - IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat ( ErrID_Fatal, 'Fatal error reading the ColOff array from file "' & - //TRIM( FASTdata%File )//'".', ErrStat, ErrMsg, RoutineName ) - CALL Cleanup() - RETURN + READ (UnIn, IOSTAT=ErrStat2) ColOff + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat ( ErrID_Fatal, 'Fatal error reading the ColOff array from file "' & + //TRIM( FASTdata%File )//'".', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup() + RETURN + ENDIF + ENDIF - + READ (UnIn, IOSTAT=ErrStat2) LenDesc IF ( ErrStat2 /= 0 ) THEN CALL SetErrStat ( ErrID_Fatal, 'Fatal error reading LenDesc from file "'//TRIM( FASTdata%File )//'".', ErrStat, ErrMsg, RoutineName ) @@ -5171,7 +5191,12 @@ SUBROUTINE ReadFASTbin ( UnIn, Init, FASTdata, ErrStat, ErrMsg ) ! Read the FAST channel data. DO IRow=1,FASTdata%NumRecs - READ (UnIn, IOSTAT=ErrStat2) TmpInArray(IRow,:) + IF ( FileType == FileFmtID_NoCompressWithoutTime ) THEN + READ (UnIn, IOSTAT=ErrStat2) TmpR8InArray(IRow,:) + ELSE + READ (UnIn, IOSTAT=ErrStat2) TmpInArray(IRow,:) + ENDIF + IF ( ErrStat2 /= 0 ) THEN CALL SetErrStat ( ErrID_Fatal, 'Fatal error reading channel data from file "'//TRIM( FASTdata%File )//'".', ErrStat, ErrMsg, RoutineName ) CALL Cleanup() @@ -5180,10 +5205,14 @@ SUBROUTINE ReadFASTbin ( UnIn, Init, FASTdata, ErrStat, ErrMsg ) END DO ! IRow=1,FASTdata%NumRecs - ! Denormalize the data one row at a time and store it in the FASTdata%Data array. - DO IRow=1,FASTdata%NumRecs - FASTdata%Data(IRow,2:) = ( TmpInArray(IRow,:) - ColOff(:) )/ColScl(:) + IF ( FileType == FileFmtID_NoCompressWithoutTime ) THEN + FASTdata%Data(IRow,2:) = REAL(TmpInArray(IRow,:), ReKi) + ELSE + ! Denormalize the data one row at a time and store it in the FASTdata%Data array. + FASTdata%Data(IRow,2:) = ( TmpInArray(IRow,:) - ColOff(:) )/ColScl(:) + END IF + END DO ! IRow=1,FASTdata%NumRecs @@ -5206,6 +5235,7 @@ SUBROUTINE Cleanup ( ) IF ( ALLOCATED( ColScl ) ) DEALLOCATE( ColScl ) IF ( ALLOCATED( DescStrASCII ) ) DEALLOCATE( DescStrASCII ) IF ( ALLOCATED( TmpInArray ) ) DEALLOCATE( TmpInArray ) + IF ( ALLOCATED( TmpR8InArray ) ) DEALLOCATE( TmpR8InArray ) IF ( ALLOCATED( TmpTimeArray ) ) DEALLOCATE( TmpTimeArray ) @@ -6591,7 +6621,7 @@ SUBROUTINE WrBinFAST(FileName, FileID, DescStr, ChanName, ChanUnit, TimeData, Al INTEGER(IntKi) :: NT ! Number of time steps INTEGER(IntKi) :: NumOutChans ! Number of output channels INTEGER(IntKi) :: UnIn ! Unit number for the binary file - + REAL(R8Ki), ALLOCATABLE :: TmpR8OutArray(:) ! This array holds the uncompressed output channels before being written to the binary file INTEGER(B2Ki), ALLOCATABLE :: TmpOutArray(:) ! This array holds the normalized output channels before being written to the binary file INTEGER(B4Ki), ALLOCATABLE :: TmpTimeArray(:) ! This array holds the normalized output time channel before being written to the binary file INTEGER(B1Ki), ALLOCATABLE :: DescStrASCII(:) ! The ASCII equivalent of DescStr @@ -6632,21 +6662,6 @@ SUBROUTINE WrBinFAST(FileName, FileID, DescStr, ChanName, ChanUnit, TimeData, Al ! Allocate arrays !............................................................................................................................... - CALL AllocAry( ColMax, NumOutChans, 'column maxima (ColMax)', ErrStat2, ErrMsg2 ) - CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - - CALL AllocAry( ColMin, NumOutChans, 'column minima (ColMin)', ErrStat2, ErrMsg2 ) - CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - - CALL AllocAry( ColOff, NumOutChans, 'column offsets (ColOff)', ErrStat2, ErrMsg2 ) - CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - - CALL AllocAry( ColScl, NumOutChans, 'column scales (ColScl)', ErrStat2, ErrMsg2 ) - CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - - CALL AllocAry( TmpOutArray, NumOutChans*NT, 'temporary output array (TmpOutArray)', ErrStat2, ErrMsg2 ) - CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - CALL AllocAry( ChanNameASCII, (1+NumOutChans)*LenName , 'temporary channel name array (ChanNameASCII)', ErrStat2, ErrMsg2 ) CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) @@ -6656,11 +6671,33 @@ SUBROUTINE WrBinFAST(FileName, FileID, DescStr, ChanName, ChanUnit, TimeData, Al CALL AllocAry( DescStrASCII, LenDesc, 'temporary file description (DescStrASCII)', ErrStat2, ErrMsg2 ) CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - IF ( FileID == FileFmtID_WithTime ) THEN - CALL AllocAry( TmpTimeArray, NT, 'temporary output time array (TmpTimeArray)', ErrStat2, ErrMsg2 ) + IF ( FileID == FileFmtID_NoCompressWithoutTime ) THEN + CALL AllocAry( TmpR8OutArray, NumOutChans*NT, 'temporary output array (TmpR8OutArray)', ErrStat2, ErrMsg2 ) + CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) + ELSE + + CALL AllocAry( ColMax, NumOutChans, 'column maxima (ColMax)', ErrStat2, ErrMsg2 ) CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - END IF + CALL AllocAry( ColMin, NumOutChans, 'column minima (ColMin)', ErrStat2, ErrMsg2 ) + CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) + + CALL AllocAry( ColOff, NumOutChans, 'column offsets (ColOff)', ErrStat2, ErrMsg2 ) + CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) + + CALL AllocAry( ColScl, NumOutChans, 'column scales (ColScl)', ErrStat2, ErrMsg2 ) + CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) + + CALL AllocAry( TmpOutArray, NumOutChans*NT, 'temporary output array (TmpOutArray)', ErrStat2, ErrMsg2 ) + CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) + + IF ( FileID == FileFmtID_WithTime ) THEN + CALL AllocAry( TmpTimeArray, NT, 'temporary output time array (TmpTimeArray)', ErrStat2, ErrMsg2 ) + CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) + END IF + + ENDIF + IF ( ErrStat >= AbortErrLev ) THEN CALL Cleanup( ) RETURN @@ -6701,23 +6738,6 @@ SUBROUTINE WrBinFAST(FileName, FileID, DescStr, ChanName, ChanUnit, TimeData, Al !BJJ: This scaling has issues if the channel contains NaN. - ColMin(:) = AllOutData(:,1_IntKi) ! Initialize the Min values for each channel - ColMax(:) = AllOutData(:,1_IntKi) ! Initialize the Max values for each channel - - DO IT=2,NT ! Loop through the remaining time steps - - DO IC=1,NumOutChans ! Loop through the output channels - - IF ( AllOutData(IC,IT) > ColMax(IC) ) THEN - ColMax(IC) = AllOutData(IC,IT) - ELSEIF ( AllOutData(IC,IT) < ColMin(IC) ) THEN - ColMin(IC) = AllOutData(IC,IT) - ENDIF - - ENDDO !IC - - ENDDO !IT - IF ( FileID == FileFmtID_WithTime ) THEN TimeMin = TimeData(1) ! Initialize the Min time value @@ -6731,59 +6751,83 @@ SUBROUTINE WrBinFAST(FileName, FileID, DescStr, ChanName, ChanUnit, TimeData, Al ENDIF ENDDO !IT + IF ( TimeMax == TimeMin ) THEN + TimeScl = 1 + ELSE + TimeScl = Int32Rng/REAL( TimeMax - TimeMin, R8Ki ) + ENDIF + + TimeOff = Int32Min - TimeScl*REAL( TimeMin, R8Ki ) + + ! Pack the time into 32-bit integers + DO IT=1,NT ! Loop through the time steps + TmpTimeArray(IT) = NINT( Max( Min( REAL( TimeScl*TimeData(IT) + TimeOff, R8Ki), Int32Max ), Int32Min) , B4Ki ) + ENDDO !IT + + ELSE ! FileFmtID_WithoutTime ! Convert DbKi to R8Ki, if necessary TimeOut1 = TimeData(1) ! The first output time TimeIncrement = TimeData(2) ! The time increment END IF ! FileID - !............................................................................................................................... - ! Calculate the scaling parameters for each channel - !............................................................................................................................... - DO IC=1,NumOutChans ! Loop through the output channels - - IF ( ColMax(IC) == ColMin(IC) ) THEN - ColScl(IC) = IntRng/SQRT(EPSILON(1.0_SiKi)) - ELSE - ColScl(IC) = IntRng/REAL( ColMax(IC) - ColMin(IC), SiKi ) - ENDIF - - ColOff(IC) = IntMin - ColScl(IC)*REAL( ColMin(IC), SiKi ) + + + IF ( FileID /= FileFmtID_NoCompressWithoutTime ) THEN + + ColMin(:) = AllOutData(:,1_IntKi) ! Initialize the Min values for each channel + ColMax(:) = AllOutData(:,1_IntKi) ! Initialize the Max values for each channel - ENDDO !IC + DO IT=2,NT ! Loop through the remaining time steps + DO IC=1,NumOutChans ! Loop through the output channels - IF ( FileID == FileFmtID_WithTime ) THEN - IF ( TimeMax == TimeMin ) THEN - TimeScl = 1 - ELSE - TimeScl = Int32Rng/REAL( TimeMax - TimeMin, R8Ki ) - ENDIF + IF ( AllOutData(IC,IT) > ColMax(IC) ) THEN + ColMax(IC) = AllOutData(IC,IT) + ELSEIF ( AllOutData(IC,IT) < ColMin(IC) ) THEN + ColMin(IC) = AllOutData(IC,IT) + ENDIF - TimeOff = Int32Min - TimeScl*REAL( TimeMin, R8Ki ) + ENDDO !IC - END IF ! FileID + ENDDO !IT - !............................................................................................................................... - ! Convert channels to 16-bit integers (packed binary) - !............................................................................................................................... - J = 1 - DO IT=1,NT ! Loop through the time steps + !............................................................................................................................... + ! Calculate the scaling parameters for each channel + !............................................................................................................................... DO IC=1,NumOutChans ! Loop through the output channels - TmpOutArray(J) = NINT( Max( Min( REAL( ColScl(IC)*AllOutData(IC,IT) + ColOff(IC), SiKi), IntMax ), IntMin) , B2Ki ) - J = J + 1 + IF ( ColMax(IC) == ColMin(IC) ) THEN + ColScl(IC) = IntRng/SQRT(EPSILON(1.0_SiKi)) + ELSE + ColScl(IC) = IntRng/REAL( ColMax(IC) - ColMin(IC), SiKi ) + ENDIF + + ColOff(IC) = IntMin - ColScl(IC)*REAL( ColMin(IC), SiKi ) ENDDO !IC - ENDDO !IT + !............................................................................................................................... + ! Convert channels to 16-bit integers (packed binary) + !............................................................................................................................... + J = 1 + DO IT=1,NT ! Loop through the time steps + DO IC=1,NumOutChans ! Loop through the output channels + IF ( FileID == FileFmtID_NoCompressWithoutTime ) THEN + TmpR8OutArray(J) = REAL( AllOutData(IC,IT), R8Ki ) + ELSE + TmpOutArray(J) = NINT( Max( Min( REAL( ColScl(IC)*AllOutData(IC,IT) + ColOff(IC), SiKi), IntMax ), IntMin) , B2Ki ) + END IF + + J = J + 1 + + ENDDO !IC - IF ( FileID == FileFmtID_WithTime ) THEN ! Pack the time into 32-bit integers - DO IT=1,NT ! Loop through the time steps - TmpTimeArray(IT) = NINT( Max( Min( REAL( TimeScl*TimeData(IT) + TimeOff, R8Ki), Int32Max ), Int32Min) , B4Ki ) ENDDO !IT - END IF ! FileID + + ENDIF + !............................................................................................................................... ! Write the output file header @@ -6848,20 +6892,24 @@ SUBROUTINE WrBinFAST(FileName, FileID, DescStr, ChanName, ChanUnit, TimeData, Al END IF - WRITE (UnIn, IOSTAT=ErrStat2) ColScl(:) ! The channel slopes for scaling - IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat( ErrID_Fatal, 'Error writing ColScl to the FAST binary file.', ErrStat, ErrMsg, RoutineName ) - CALL Cleanup( ) - RETURN - END IF - - WRITE (UnIn, IOSTAT=ErrStat2) ColOff(:) ! The channel offsets for scaling - IF ( ErrStat2 /= 0 ) THEN - CALL SetErrStat( ErrID_Fatal, 'Error writing ColOff to the FAST binary file.', ErrStat, ErrMsg, RoutineName ) - CALL Cleanup( ) - RETURN - END IF + IF ( FileID /= FileFmtID_NoCompressWithoutTime ) THEN + + WRITE (UnIn, IOSTAT=ErrStat2) ColScl(:) ! The channel slopes for scaling + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat( ErrID_Fatal, 'Error writing ColScl to the FAST binary file.', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup( ) + RETURN + END IF + WRITE (UnIn, IOSTAT=ErrStat2) ColOff(:) ! The channel offsets for scaling + IF ( ErrStat2 /= 0 ) THEN + CALL SetErrStat( ErrID_Fatal, 'Error writing ColOff to the FAST binary file.', ErrStat, ErrMsg, RoutineName ) + CALL Cleanup( ) + RETURN + END IF + + END IF + WRITE (UnIn, IOSTAT=ErrStat2) INT( LenDesc , B4Ki ) ! The number of characters in the string IF ( ErrStat2 /= 0 ) THEN CALL SetErrStat( ErrID_Fatal, 'Error writing LenDesc to the FAST binary file.', ErrStat, ErrMsg, RoutineName ) @@ -6903,8 +6951,11 @@ SUBROUTINE WrBinFAST(FileName, FileID, DescStr, ChanName, ChanUnit, TimeData, Al END IF END IF ! FileID - - WRITE (UnIn, IOSTAT=ErrStat2) TmpOutArray ! AllOutData converted to packed binary (16-bit) + IF ( FileID == FileFmtID_NoCompressWithoutTime ) THEN + WRITE (UnIn, IOSTAT=ErrStat2) TmpR8OutArray ! AllOutData + ELSE + WRITE (UnIn, IOSTAT=ErrStat2) TmpOutArray ! AllOutData converted to packed binary (16-bit) + END IF IF ( ErrStat2 /= 0 ) THEN CALL SetErrStat( ErrID_Fatal, 'Error writing channel data to the FAST binary file.', ErrStat, ErrMsg, RoutineName ) CALL Cleanup( ) @@ -6932,6 +6983,7 @@ SUBROUTINE Cleanup() IF ( ALLOCATED( ColScl ) ) DEALLOCATE( ColScl ) IF ( ALLOCATED( TmpTimeArray ) ) DEALLOCATE( TmpTimeArray ) IF ( ALLOCATED( TmpOutArray ) ) DEALLOCATE( TmpOutArray ) + IF ( ALLOCATED( TmpR8OutArray ) ) DEALLOCATE( TmpR8OutArray ) IF ( ALLOCATED( DescStrASCII ) ) DEALLOCATE( DescStrASCII ) IF ( ALLOCATED( ChanNameASCII ) ) DEALLOCATE( ChanNameASCII ) IF ( ALLOCATED( ChanUnitASCII ) ) DEALLOCATE( ChanUnitASCII ) From 8627bd5ae785f3a27997b228144ea7a0cf5f720c Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Thu, 24 Aug 2017 14:51:14 -0600 Subject: [PATCH 03/13] Working version of the uncompressed binary file format The user can get uncompressed binary by setting the OutFileFmt option in the primary FAST input file to 0. This generates a text version of the output and an uncompressed binary version. --- modules-local/fast-library/src/FAST_Mods.f90 | 10 +++--- .../fast-library/src/FAST_Registry.txt | 1 + modules-local/fast-library/src/FAST_Subs.f90 | 32 ++++++++++++------- modules-local/nwtc-library/src/NWTC_IO.f90 | 7 ++-- 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/modules-local/fast-library/src/FAST_Mods.f90 b/modules-local/fast-library/src/FAST_Mods.f90 index e58e9ce40f..dbce8f631d 100644 --- a/modules-local/fast-library/src/FAST_Mods.f90 +++ b/modules-local/fast-library/src/FAST_Mods.f90 @@ -66,13 +66,13 @@ MODULE FAST_ModTypes INTEGER(IntKi), PARAMETER :: SizeJac_ED_HD = 12 -#if defined COMPILE_SIMULINK || defined COMPILE_LABVIEW +!#if defined COMPILE_SIMULINK || defined COMPILE_LABVIEW !bjj: 2015-03-03: not sure this is still necessary... - INTEGER(B2Ki), PARAMETER :: OutputFileFmtID = FileFmtID_WithTime ! We cannot guarantee the output time step is constant in binary files -#else +! INTEGER(B2Ki), PARAMETER :: OutputFileFmtID = FileFmtID_WithTime ! We cannot guarantee the output time step is constant in binary files +!#else !INTEGER(B2Ki), PARAMETER :: OutputFileFmtID = FileFmtID_WithoutTime ! A format specifier for the binary output file format (1=include time channel as packed 32-bit binary; 2=don't include time channel) - INTEGER(B2Ki), PARAMETER :: OutputFileFmtID = FileFmtID_NoCompressWithoutTime ! A format specifier for the binary output file format (1=include time channel as packed 32-bit binary; 2=don't include time channel;3=don't include time channel and do not pack data) -#endif +! INTEGER(B2Ki), PARAMETER :: OutputFileFmtID = FileFmtID_NoCompressWithoutTime ! A format specifier for the binary output file format (1=include time channel as packed 32-bit binary; 2=don't include time channel;3=don't include time channel and do not pack data) +!#endif LOGICAL, PARAMETER :: GenerateAdamsModel = .FALSE. diff --git a/modules-local/fast-library/src/FAST_Registry.txt b/modules-local/fast-library/src/FAST_Registry.txt index ca0ca7f214..185d43d276 100644 --- a/modules-local/fast-library/src/FAST_Registry.txt +++ b/modules-local/fast-library/src/FAST_Registry.txt @@ -119,6 +119,7 @@ typedef ^ FAST_ParameterType INTEGER n_VTKTime - - - "Number of time steps betwe typedef ^ FAST_ParameterType IntKi TurbineType - - - "Type_LandBased, Type_Offshore_Fixed, or Type_Offshore_Floating" - typedef ^ FAST_ParameterType LOGICAL WrBinOutFile - - - "Write a binary output file? (.outb)" - typedef ^ FAST_ParameterType LOGICAL WrTxtOutFile - - - "Write a text (formatted) output file? (.out)" - +typedef ^ FAST_ParameterType IntKi WrBinMod - - - "If writing binary, which file format is to be written [1, 2, or 3]" - typedef ^ FAST_ParameterType LOGICAL SumPrint - - - "Print summary data to file? (.sum)" - typedef ^ FAST_ParameterType INTEGER WrVTK - - - "VTK Visualization data output: (switch) {0=none; 1=initialization data only; 2=animation}" - typedef ^ FAST_ParameterType INTEGER VTK_Type - - - "Type of VTK visualization data: (switch) {1=surfaces; 2=basic meshes (lines/points); 3=all meshes (debug)}" - diff --git a/modules-local/fast-library/src/FAST_Subs.f90 b/modules-local/fast-library/src/FAST_Subs.f90 index 68b1dfea39..3169a52209 100644 --- a/modules-local/fast-library/src/FAST_Subs.f90 +++ b/modules-local/fast-library/src/FAST_Subs.f90 @@ -2009,19 +2009,15 @@ SUBROUTINE FAST_InitOutput( p_FAST, y_FAST, InitOutData_ED, InitOutData_BD, Init CALL AllocAry( y_FAST%AllOutData, NumOuts-1, y_FAST%NOutSteps, 'AllOutData', ErrStat, ErrMsg ) IF ( ErrStat >= AbortErrLev ) RETURN - IF ( OutputFileFmtID == FileFmtID_WithoutTime ) THEN - + IF ( p_FAST%WrBinMod == FileFmtID_WithTime ) THEN ! we store the entire time array + CALL AllocAry( y_FAST%TimeData, y_FAST%NOutSteps, 'TimeData', ErrStat, ErrMsg ) + IF ( ErrStat >= AbortErrLev ) RETURN + ELSE CALL AllocAry( y_FAST%TimeData, 2_IntKi, 'TimeData', ErrStat, ErrMsg ) IF ( ErrStat >= AbortErrLev ) RETURN y_FAST%TimeData(1) = 0.0_DbKi ! This is the first output time, which we will set later y_FAST%TimeData(2) = p_FAST%DT_out ! This is the (constant) time between subsequent writes to the output file - - ELSE ! we store the entire time array - - CALL AllocAry( y_FAST%TimeData, y_FAST%NOutSteps, 'TimeData', ErrStat, ErrMsg ) - IF ( ErrStat >= AbortErrLev ) RETURN - END IF y_FAST%n_Out = 0 !number of steps actually written to the file @@ -2574,14 +2570,26 @@ SUBROUTINE FAST_ReadPrimaryFile( InputFile, p, OverrideAbortErrLev, ErrStat, Err end if ! OutFileFmt - Format for tabular (time-marching) output file(s) (1: text file [.out], 2: binary file [.outb], 3: both) (-): - CALL ReadVar( UnIn, InputFile, OutFileFmt, "OutFileFmt", "Format for tabular (time-marching) output file(s) (1: text file [.out], 2: binary file [.outb], 3: both) (-)", ErrStat2, ErrMsg2, UnEc) + CALL ReadVar( UnIn, InputFile, OutFileFmt, "OutFileFmt", "Format for tabular (time-marching) output file(s) (0: uncompressed binary and text file, 1: text file [.out], 2: compressed binary file [.outb], 3: both text and compressed binary) (-)", ErrStat2, ErrMsg2, UnEc) CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName) if ( ErrStat >= AbortErrLev ) then call cleanup() RETURN end if + +#if defined COMPILE_SIMULINK || defined COMPILE_LABVIEW + !bjj: 2015-03-03: not sure this is still necessary... + p%WrBinMod = FileFmtID_WithTime ! We cannot guarantee the output time step is constant in binary files +#else + p%WrBinMod = FileFmtID_WithoutTime ! A format specifier for the binary output file format (1=include time channel as packed 32-bit binary; 2=don't include time channel;3=don't include time channel and do not pack data) +#endif SELECT CASE (OutFileFmt) + CASE (0_IntKi) + ! This is an undocumented feature for the regression testing system. It writes both text and binary output, but the binary is stored as uncompressed double floating point data instead of compressed int16 data. + p%WrBinOutFile = .TRUE. + p%WrBinMod = FileFmtID_NoCompressWithoutTime ! A format specifier for the binary output file format (3=don't include time channel and do not pack data) + p%WrTxtOutFile = .TRUE. CASE (1_IntKi) p%WrBinOutFile = .FALSE. p%WrTxtOutFile = .TRUE. @@ -2592,7 +2600,7 @@ SUBROUTINE FAST_ReadPrimaryFile( InputFile, p, OverrideAbortErrLev, ErrStat, Err p%WrBinOutFile = .TRUE. p%WrTxtOutFile = .TRUE. CASE DEFAULT - CALL SetErrStat( ErrID_Fatal, "FAST's OutFileFmt must be 1, 2, or 3.",ErrStat,ErrMsg,RoutineName) + CALL SetErrStat( ErrID_Fatal, "FAST's OutFileFmt must be 0, 1, 2, or 3.",ErrStat,ErrMsg,RoutineName) if ( ErrStat >= AbortErrLev ) then call cleanup() RETURN @@ -4685,7 +4693,7 @@ SUBROUTINE WrOutputLine( t, p_FAST, y_FAST, IfWOutput, OpFMOutput, EDOutput, ADO y_FAST%n_Out = y_FAST%n_Out + 1 ! store time data - IF ( y_FAST%n_Out == 1_IntKi .OR. OutputFileFmtID == FileFmtID_WithTime ) THEN + IF ( y_FAST%n_Out == 1_IntKi .OR. p_FAST%WrBinMod == FileFmtID_WithTime ) THEN y_FAST%TimeData(y_FAST%n_Out) = t ! Time associated with these outputs END IF @@ -5837,7 +5845,7 @@ SUBROUTINE FAST_EndOutput( p_FAST, y_FAST, ErrStat, ErrMsg ) FileDesc = TRIM(y_FAST%FileDescLines(1))//' '//TRIM(y_FAST%FileDescLines(2))//'; '//TRIM(y_FAST%FileDescLines(3)) - CALL WrBinFAST(TRIM(p_FAST%OutFileRoot)//'.outb', OutputFileFmtID, TRIM(FileDesc), & + CALL WrBinFAST(TRIM(p_FAST%OutFileRoot)//'.outb', p_FAST%WrBinMod, TRIM(FileDesc), & y_FAST%ChannelNames, y_FAST%ChannelUnits, y_FAST%TimeData, y_FAST%AllOutData(:,1:y_FAST%n_Out), ErrStat, ErrMsg) IF ( ErrStat /= ErrID_None ) CALL WrScr( TRIM(GetErrStr(ErrStat))//' when writing binary output file: '//TRIM(ErrMsg) ) diff --git a/modules-local/nwtc-library/src/NWTC_IO.f90 b/modules-local/nwtc-library/src/NWTC_IO.f90 index 71e3bb59d4..42898a615c 100644 --- a/modules-local/nwtc-library/src/NWTC_IO.f90 +++ b/modules-local/nwtc-library/src/NWTC_IO.f90 @@ -6806,10 +6806,11 @@ SUBROUTINE WrBinFAST(FileName, FileID, DescStr, ChanName, ChanUnit, TimeData, Al ColOff(IC) = IntMin - ColScl(IC)*REAL( ColMin(IC), SiKi ) ENDDO !IC - + + ENDIF !............................................................................................................................... - ! Convert channels to 16-bit integers (packed binary) + ! Convert channels to 16-bit integers (packed binary) or (R8Ki if unpacked binary) !............................................................................................................................... J = 1 DO IT=1,NT ! Loop through the time steps @@ -6826,7 +6827,7 @@ SUBROUTINE WrBinFAST(FileName, FileID, DescStr, ChanName, ChanUnit, TimeData, Al ENDDO !IT - ENDIF + !............................................................................................................................... From ff87ce3abbf8ff9806cac4865d9154797e401fa6 Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Thu, 31 Aug 2017 08:59:29 -0600 Subject: [PATCH 04/13] Updated SubDyn project to use stack reserve size for x64 builds --- vs-build/SubDyn/SubDyn.vfproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vs-build/SubDyn/SubDyn.vfproj b/vs-build/SubDyn/SubDyn.vfproj index dfcf1f8f5d..36796cca77 100644 --- a/vs-build/SubDyn/SubDyn.vfproj +++ b/vs-build/SubDyn/SubDyn.vfproj @@ -26,7 +26,7 @@ - + @@ -36,7 +36,7 @@ - + From beba3076244d0f2bb781fc85133625e3d0c4299e Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Tue, 5 Sep 2017 12:58:20 -0600 Subject: [PATCH 05/13] Added QueryGitHash() to NWTC_IO for reading the git commit hash string Refactored code to obtain the git commit hash so the a single function call returns the commit string regardless of the build approach --- modules-local/fast-library/src/FAST_Subs.f90 | 30 +++------- modules-local/nwtc-library/src/NWTC_IO.f90 | 58 ++++++++++++++++++++ 2 files changed, 65 insertions(+), 23 deletions(-) diff --git a/modules-local/fast-library/src/FAST_Subs.f90 b/modules-local/fast-library/src/FAST_Subs.f90 index bd4c105fff..42feb35ed0 100644 --- a/modules-local/fast-library/src/FAST_Subs.f90 +++ b/modules-local/fast-library/src/FAST_Subs.f90 @@ -1279,7 +1279,9 @@ FUNCTION GetVersion(ThisProgVer) TYPE(ProgDesc), INTENT( IN ) :: ThisProgVer !< program name/date/version description CHARACTER(1024) :: GetVersion !< String containing a description of the compiled precision. - + + CHARACTER(200) :: git_commit + GetVersion = TRIM(GetNVD(ThisProgVer))//', compiled' IF ( Cmpl4SFun ) THEN ! FAST has been compiled as an S-Function for Simulink @@ -1299,22 +1301,14 @@ FUNCTION GetVersion(ThisProgVer) ELSE ! Unknown precision GetVersion = TRIM(GetVersion)//' unknown' ENDIF + ! GetVersion = TRIM(GetVersion)//' precision with '//OS_Desc GetVersion = TRIM(GetVersion)//' precision' ! add git info -#ifdef GIT_COMMIT_HASH - GetVersion = TRIM(GetVersion)//' at commit '//GIT_COMMIT_HASH -#endif -#ifdef GIT_HASH_FILE - ! VS build method for obtaining the git hash info. - ! This requires setting: - ! 1) GIT_HASH_FILE = '$(ProjectDir)\gitHash.txt' preprocessor opetion on this file. - ! 2) Creating a prebuild event on the profile file which runs this command: ..\GetGitHash.bat - ! 3) The bat file, GetGitHash.bat, located in the vs-build folder of the openfast repository, which contains the git command used to obtain the git info - GetVersion = TRIM(GetVersion)//' at commit '//ReadGitHash(GIT_HASH_FILE, errStat, errMsg) -#endif + git_commit = QueryGitHash() + GetVersion = TRIM(GetVersion)//' at commit '//git_commit RETURN END FUNCTION GetVersion @@ -1330,17 +1324,7 @@ subroutine GetProgramMetadata(ThisProgVer, name, version, git_commit, architectu name = trim(ThisProgVer%Name) version = trim(ThisProgVer%Ver) -#ifdef GIT_COMMIT_HASH - git_commit = GIT_COMMIT_HASH -#endif -#ifdef GIT_HASH_FILE - ! VS build method for obtaining the git hash info. - ! This requires setting: - ! 1) GIT_HASH_FILE = '$(ProjectDir)\gitHash.txt' preprocessor opetion on this file. - ! 2) Creating a prebuild event on the profile file which runs this command: ..\GetGitHash.bat - ! 3) The bat file, GetGitHash.bat, located in the vs-build folder of the openfast repository, which contains the git command used to obtain the git info - git_commit = ReadGitHash(GIT_HASH_FILE, errStat, errMsg) -#endif + git_commit = QueryGitHash() architecture = TRIM(Num2LStr(BITS_IN_ADDR))//' bit' diff --git a/modules-local/nwtc-library/src/NWTC_IO.f90 b/modules-local/nwtc-library/src/NWTC_IO.f90 index 1b98b4286a..d9674c202a 100644 --- a/modules-local/nwtc-library/src/NWTC_IO.f90 +++ b/modules-local/nwtc-library/src/NWTC_IO.f90 @@ -4416,6 +4416,64 @@ SUBROUTINE ProgWarn ( Message ) RETURN END SUBROUTINE ProgWarn + +!======================================================================= +!> This routine outputs the git hash associate with the current codebase. + FUNCTION QueryGitHash() + + ! Passed variables. + + !INTEGER(IntKi), INTENT(OUT) :: ErrStat ! Error status + !CHARACTER(*), INTENT(OUT) :: ErrMsg ! Error message + + ! Function declaration. + + CHARACTER(200) :: QueryGitHash ! This function. + + ! Local variables. + + INTEGER(IntKi) :: UnIn ! Unit number for reading file + INTEGER(IntKi) :: ErrStat2 ! Temporary Error status + CHARACTER(ErrMsgLen) :: ErrMsg2 ! Temporary Error message + + !ErrStat = ErrID_None + !ErrMsg = '' + QueryGitHash = 'unversioned' + +#ifdef GIT_COMMIT_HASH + QueryGitHash = GIT_COMMIT_HASH ! set by the cmake build scripts +#endif +#ifdef GIT_HASH_FILE + ! VS build method for obtaining the git hash info. + ! This requires setting: + ! 1) GIT_HASH_FILE = '$(ProjectDir)\..\gitHash.txt' preprocessor option on this file or the project containing this file. + ! 2) Creating a prebuild event on the project file producing the resulting binary (i.e., FAST.exe) with the following command: ..\GetGitHash.bat + ! 3) The bat file, GetGitHash.bat, located in the vs-build folder of the openfast repository, which contains the git command used to obtain the git info + ! git describe --abbrev=8 --dirty --tags > ..\githash.txt + ! This creates the githash.txt file in the vs-build folder + + ! Get an available unit number for the file. + + CALL GetNewUnit( UnIn, ErrStat2, ErrMsg2 ) + !CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) + IF ( ErrStat2 > ErrID_None ) RETURN + ! Open the Primary input file. + + CALL OpenFInpFile ( UnIn, GIT_HASH_FILE, ErrStat2, ErrMsg2 ) + !CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) + IF ( ErrStat2 > ErrID_None ) RETURN + + CALL ReadVar( UnIn, GIT_HASH_FILE, QueryGitHash, "HASH", "Git Hash String)", ErrStat2, ErrMsg2, 0) + !CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) + IF ( ErrStat2 > ErrID_None ) RETURN + + IF (UnIn > 0) CLOSE ( UnIn ) +#endif + + + RETURN + END FUNCTION QueryGitHash + !======================================================================= !> \copydoc nwtc_io::int2lstr FUNCTION R2LStr4 ( Num ) From abcb7b83231eb36d534eae9c5c8749956d6b2b17 Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Wed, 6 Sep 2017 09:15:47 -0600 Subject: [PATCH 06/13] Add git commit string support, new version support for various drivers --- .../aerodyn/src/AeroDyn_Driver_Subs.f90 | 14 +- .../aerodyn/src/UnsteadyAero_Driver.f90 | 14 +- modules-local/beamdyn/src/Driver_Beam.f90 | 31 +- .../hydrodyn/src/HydroDyn_DriverCode.f90 | 16 +- modules-local/subdyn/src/SubDyn_Driver.f90 | 74 +- vs-build/AeroDyn/AeroDyn_Driver.vfproj | 72 +- vs-build/BeamDyn/BeamDyn-w-registry.sln | 61 ++ vs-build/BeamDyn/BeamDyn.vfproj | 295 ++++++++ vs-build/FAST/FAST.vfproj | 20 +- vs-build/FASTlib/FASTlib.vfproj | 642 +++++++++--------- vs-build/GetGitHash.bat | 1 + vs-build/HydroDyn/HydroDynDriver.vfproj | 16 +- vs-build/SubDyn/SubDyn.vfproj | 16 +- vs-build/UnsteadyAero/UnsteadyAero.vfproj | 128 ++-- 14 files changed, 894 insertions(+), 506 deletions(-) create mode 100644 vs-build/BeamDyn/BeamDyn-w-registry.sln create mode 100644 vs-build/BeamDyn/BeamDyn.vfproj create mode 100644 vs-build/GetGitHash.bat diff --git a/modules-local/aerodyn/src/AeroDyn_Driver_Subs.f90 b/modules-local/aerodyn/src/AeroDyn_Driver_Subs.f90 index 9659129dfa..3a8c904878 100644 --- a/modules-local/aerodyn/src/AeroDyn_Driver_Subs.f90 +++ b/modules-local/aerodyn/src/AeroDyn_Driver_Subs.f90 @@ -45,20 +45,22 @@ subroutine Dvr_Init(DvrData,errStat,errMsg ) character(*), parameter :: RoutineName = 'Dvr_Init' CHARACTER(1000) :: inputFile ! String to hold the file name. + CHARACTER(200) :: git_commit ! String containing the current git commit hash + + TYPE(ProgDesc), PARAMETER :: version = ProgDesc( 'AeroDyn Driver', '', '' ) ! The version number of this program. ErrStat = ErrID_None ErrMsg = "" DvrData%OutFileData%unOutFile = -1 - ! Initialize the library which handle file echos and WrScr, for example - call NWTC_Init() - + CALL NWTC_Init() ! Display the copyright notice - CALL DispCopyrightLicense( version ) - + CALL DispCopyrightLicense( version ) + ! Obtain OpenFAST git commit hash + git_commit = QueryGitHash() ! Tell our users what they're running - CALL WrScr( ' Running '//GetNVD( version )//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) + CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) InputFile = "" ! initialize to empty string to make sure it's input from the command line CALL CheckArgs( InputFile, ErrStat2 ) diff --git a/modules-local/aerodyn/src/UnsteadyAero_Driver.f90 b/modules-local/aerodyn/src/UnsteadyAero_Driver.f90 index 9c5df802e7..0758b3093b 100644 --- a/modules-local/aerodyn/src/UnsteadyAero_Driver.f90 +++ b/modules-local/aerodyn/src/UnsteadyAero_Driver.f90 @@ -72,7 +72,8 @@ program UnsteadyAero_Driver real(DbKi), allocatable :: timeArr(:) real(ReKi), allocatable :: AOAarr(:) real(ReKi), allocatable :: Uarr(:) !RRD - + CHARACTER(200) :: git_commit + TYPE(ProgDesc), PARAMETER :: version = ProgDesc( 'UnsteadyAero Driver', '', '' ) ! The version number of this program. ! Initialize the NWTC library call NWTC_Init() @@ -81,8 +82,15 @@ program UnsteadyAero_Driver ErrStat = ErrID_None RoutineName = 'UnsteadyAero_Driver' - - print *, 'Running UnsteadyAero_Driver' + + + ! Display the copyright notice + CALL DispCopyrightLicense( version ) + ! Obtain OpenFAST git commit hash + git_commit = QueryGitHash() + ! Tell our users what they're running + CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) + diff --git a/modules-local/beamdyn/src/Driver_Beam.f90 b/modules-local/beamdyn/src/Driver_Beam.f90 index e23e27b1e1..15a23f3505 100644 --- a/modules-local/beamdyn/src/Driver_Beam.f90 +++ b/modules-local/beamdyn/src/Driver_Beam.f90 @@ -51,24 +51,21 @@ PROGRAM BeamDyn_Driver_Program TYPE(BD_DriverInternalType) :: DvrData - CHARACTER(256) :: DvrInputFile - CHARACTER(256) :: RootName - - ! local variables - Integer(IntKi) :: j ! counter for various loops - Integer(IntKi) :: i ! counter for various loops - - REAL(DbKi) :: TiLstPrn !< The simulation time of the last print (to file) [(s)] - REAL(ReKi) :: PrevClockTime !< Clock time at start of simulation in seconds [(s)] - REAL(ReKi) :: UsrTime1 !< User CPU time for simulation initialization [(s)] - REAL(ReKi) :: UsrTime2 !< User CPU time for simulation (without intialization) [(s)] - INTEGER(IntKi) , DIMENSION(1:8) :: StrtTime !< Start time of simulation (including intialization) [-] - INTEGER(IntKi) , DIMENSION(1:8) :: SimStrtTime !< Start time of simulation (after initialization) [-] + CHARACTER(256) :: DvrInputFile + CHARACTER(256) :: RootName + INTEGER(IntKi) :: j ! counter for various loops + INTEGER(IntKi) :: i ! counter for various loops + REAL(DbKi) :: TiLstPrn ! The simulation time of the last print (to file) [(s)] + REAL(ReKi) :: PrevClockTime ! Clock time at start of simulation in seconds [(s)] + REAL(ReKi) :: UsrTime1 ! User CPU time for simulation initialization [(s)] + REAL(ReKi) :: UsrTime2 ! User CPU time for simulation (without intialization) [(s)] + INTEGER(IntKi) , DIMENSION(1:8) :: StrtTime ! Start time of simulation (including intialization) [-] + INTEGER(IntKi) , DIMENSION(1:8) :: SimStrtTime ! Start time of simulation (after initialization) [-] + CHARACTER(200) :: git_commit ! String containing the current git commit hash - - TYPE(ProgDesc), PARAMETER :: version = ProgDesc( 'BeamDyn Driver', '', '' ) ! The version number of this program. + TYPE(ProgDesc), PARAMETER :: version = ProgDesc( 'BeamDyn Driver', '', '' ) ! The version number of this program. ! ------------------------------------------------------------------------- @@ -83,8 +80,10 @@ PROGRAM BeamDyn_Driver_Program CALL NWTC_Init() ! Display the copyright notice CALL DispCopyrightLicense( version ) + ! Obtain OpenFAST git commit hash + git_commit = QueryGitHash() ! Tell our users what they're running - CALL WrScr( ' Running '//GetNVD( version )//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) + CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) ! ------------------------------------------------------------------------- ! Initialization of glue-code time-step variables diff --git a/modules-local/hydrodyn/src/HydroDyn_DriverCode.f90 b/modules-local/hydrodyn/src/HydroDyn_DriverCode.f90 index 81586c0628..58cf34a5da 100644 --- a/modules-local/hydrodyn/src/HydroDyn_DriverCode.f90 +++ b/modules-local/hydrodyn/src/HydroDyn_DriverCode.f90 @@ -123,6 +123,11 @@ PROGRAM HydroDynDriver CHARACTER(10) :: AngleMsg ! For debugging, a string version of the largest rotation input INTEGER :: UnMeshDebug CHARACTER(50) :: MeshDebugFile + + CHARACTER(200) :: git_commit ! String containing the current git commit hash + + TYPE(ProgDesc), PARAMETER :: version = ProgDesc( 'HydroDyn Driver', '', '' ) ! The version number of this program. + !............................................................................................................................... ! Routines called in initialization !............................................................................................................................... @@ -147,8 +152,14 @@ PROGRAM HydroDynDriver ! Initialize the library which handle file echos and WrScr, for example call nwtc_init() - - IF ( command_argument_count() > 1 ) THEN + ! Display the copyright notice + CALL DispCopyrightLicense( version ) + ! Obtain OpenFAST git commit hash + git_commit = QueryGitHash() + ! Tell our users what they're running + CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) + + IF ( command_argument_count() /= 1 ) THEN CALL print_help() STOP END IF @@ -175,6 +186,7 @@ PROGRAM HydroDynDriver call date_and_time ( Values=StrtTime ) ! Let's time the whole simulation call cpu_time ( UsrTime1 ) ! Initial time (this zeros the start time when used as a MATLAB function) SttsTime = 1.0 ! seconds + ! figure out how many time steps we should go before writing screen output: n_SttsTime = MAX( 1, NINT( SttsTime / drvrInitInp%TimeInterval ) ) ! this may not be the final TimeInterval, though!!! GJH 8/14/14 diff --git a/modules-local/subdyn/src/SubDyn_Driver.f90 b/modules-local/subdyn/src/SubDyn_Driver.f90 index 491ef352c2..19d8bae9f7 100644 --- a/modules-local/subdyn/src/SubDyn_Driver.f90 +++ b/modules-local/subdyn/src/SubDyn_Driver.f90 @@ -51,47 +51,48 @@ PROGRAM TestSubDyn ! Program variables - REAL(DbKi) :: Time ! Variable for storing time, in seconds - REAL(DbKi) :: TimeInterval ! Interval between time steps, in seconds - REAL(DbKi) :: InputTime(NumInp) ! Variable for storing time associated with inputs, in seconds + REAL(DbKi) :: Time ! Variable for storing time, in seconds + REAL(DbKi) :: TimeInterval ! Interval between time steps, in seconds + REAL(DbKi) :: InputTime(NumInp) ! Variable for storing time associated with inputs, in seconds - TYPE(SD_InitInputType) :: InitInData ! Input data for initialization - TYPE(SD_InitOutputType) :: InitOutData ! Output data from initialization + TYPE(SD_InitInputType) :: InitInData ! Input data for initialization + TYPE(SD_InitOutputType) :: InitOutData ! Output data from initialization - TYPE(SD_ContinuousStateType) :: x ! Continuous states - TYPE(SD_DiscreteStateType) :: xd ! Discrete states - TYPE(SD_ConstraintStateType) :: z ! Constraint states - TYPE(SD_OtherStateType) :: OtherState ! Other states - TYPE(SD_MiscVarType) :: m ! Misc/optimization variables + TYPE(SD_ContinuousStateType) :: x ! Continuous states + TYPE(SD_DiscreteStateType) :: xd ! Discrete states + TYPE(SD_ConstraintStateType) :: z ! Constraint states + TYPE(SD_OtherStateType) :: OtherState ! Other states + TYPE(SD_MiscVarType) :: m ! Misc/optimization variables - TYPE(SD_ParameterType) :: p ! Parameters - TYPE(SD_InputType) :: u(NumInp) ! System inputs - TYPE(SD_OutputType) :: y ! System outputs + TYPE(SD_ParameterType) :: p ! Parameters + TYPE(SD_InputType) :: u(NumInp) ! System inputs + TYPE(SD_OutputType) :: y ! System outputs - INTEGER(IntKi) :: n ! Loop counter (for time step) - INTEGER(IntKi) :: ErrStat, ErrStat1, ErrStat2, ErrStat3 ! Status of error message - CHARACTER(1024) :: ErrMsg, ErrMsg1, ErrMsg2, ErrMsg3 ! Error message if ErrStat /= ErrID_None + INTEGER(IntKi) :: n ! Loop counter (for time step) + INTEGER(IntKi) :: ErrStat, ErrStat1, ErrStat2, ErrStat3 ! Status of error message + CHARACTER(1024) :: ErrMsg, ErrMsg1, ErrMsg2, ErrMsg3 ! Error message if ErrStat /= ErrID_None - CHARACTER(1024) :: drvrFilename ! Filename and path for the driver input file. This is passed in as a command line argument when running the Driver exe. - TYPE(SD_Drvr_InitInput) :: drvrInitInp ! Initialization data for the driver program - INTEGER(IntKi) :: UnInp ! Inputs file identifier - INTEGER(IntKi) :: UnSD_Out ! Output file identifier - REAL(ReKi), ALLOCATABLE :: SDin(:,:) ! Variable for storing time, forces, and body velocities, in m/s or rad/s for SubDyn inputs - INTEGER(IntKi) :: J ! Generic loop counter - REAL(ReKi) :: dcm (3,3) ! The resulting transformation matrix from X to x, (-). - REAL(DbKi) :: maxAngle ! For debugging, see what the largest rotational angle input is for the simulation - CHARACTER(10) :: AngleMsg ! For debugging, a string version of the largest rotation input + CHARACTER(1024) :: drvrFilename ! Filename and path for the driver input file. This is passed in as a command line argument when running the Driver exe. + TYPE(SD_Drvr_InitInput) :: drvrInitInp ! Initialization data for the driver program + INTEGER(IntKi) :: UnInp ! Inputs file identifier + INTEGER(IntKi) :: UnSD_Out ! Output file identifier + REAL(ReKi), ALLOCATABLE :: SDin(:,:) ! Variable for storing time, forces, and body velocities, in m/s or rad/s for SubDyn inputs + INTEGER(IntKi) :: J ! Generic loop counter + REAL(ReKi) :: dcm (3,3) ! The resulting transformation matrix from X to x, (-). + REAL(DbKi) :: maxAngle ! For debugging, see what the largest rotational angle input is for the simulation + CHARACTER(10) :: AngleMsg ! For debugging, a string version of the largest rotation input ! Other/Misc variables - REAL(DbKi) :: TiLstPrn ! The time of the last print - REAL(DbKi) :: TMax - REAL(DbKi) :: OutTime ! Used to determine if output should be generated at this simulation time - REAL(ReKi) :: PrevClockTime ! Clock time at start of simulation in seconds - REAL :: UsrTime1 ! User CPU time for simulation initialization - INTEGER :: StrtTime (8) ! Start time of simulation - + REAL(DbKi) :: TiLstPrn ! The time of the last print + REAL(DbKi) :: TMax + REAL(DbKi) :: OutTime ! Used to determine if output should be generated at this simulation time + REAL(ReKi) :: PrevClockTime ! Clock time at start of simulation in seconds + REAL :: UsrTime1 ! User CPU time for simulation initialization + INTEGER :: StrtTime (8) ! Start time of simulation + CHARACTER(200) :: git_commit ! String containing the current git commit hash + TYPE(ProgDesc), PARAMETER :: version = ProgDesc( 'SubDyn Driver', '', '' ) ! The version number of this program. !............................................................................................................................... ! Routines called in initialization !............................................................................................................................... @@ -110,6 +111,15 @@ PROGRAM TestSubDyn CALL NWTC_Init( ) + ! Display the copyright notice + CALL DispCopyrightLicense( version ) + ! Obtain OpenFAST git commit hash + git_commit = QueryGitHash() + ! Tell our users what they're running + CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) + + + ! Set the abort error level to a fatal error AbortErrLev = ErrID_Fatal diff --git a/vs-build/AeroDyn/AeroDyn_Driver.vfproj b/vs-build/AeroDyn/AeroDyn_Driver.vfproj index 2cc0869103..ac3c437754 100644 --- a/vs-build/AeroDyn/AeroDyn_Driver.vfproj +++ b/vs-build/AeroDyn/AeroDyn_Driver.vfproj @@ -5,83 +5,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -93,19 +93,19 @@ - - + + - - + + @@ -123,19 +123,19 @@ - - + + - - + + @@ -153,19 +153,19 @@ - - + + - - + + @@ -182,19 +182,19 @@ - - + + - - + + @@ -250,19 +250,19 @@ - - + + - - + + diff --git a/vs-build/BeamDyn/BeamDyn-w-registry.sln b/vs-build/BeamDyn/BeamDyn-w-registry.sln new file mode 100644 index 0000000000..a881f9d525 --- /dev/null +++ b/vs-build/BeamDyn/BeamDyn-w-registry.sln @@ -0,0 +1,61 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.40629.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "BeamDyn", "BeamDyn.vfproj", "{815C302F-A93D-4C22-9329-7112345113C0}" + ProjectSection(ProjectDependencies) = postProject + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16} = {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FAST_Registry", "..\Registry\FAST_Registry.vcxproj", "{DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug_Double|Win32 = Debug_Double|Win32 + Debug_Double|x64 = Debug_Double|x64 + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release_Double|Win32 = Release_Double|Win32 + Release_Double|x64 = Release_Double|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {815C302F-A93D-4C22-9329-7112345113C0}.Debug_Double|Win32.ActiveCfg = Debug_Double|Win32 + {815C302F-A93D-4C22-9329-7112345113C0}.Debug_Double|Win32.Build.0 = Debug_Double|Win32 + {815C302F-A93D-4C22-9329-7112345113C0}.Debug_Double|x64.ActiveCfg = Debug_Double|x64 + {815C302F-A93D-4C22-9329-7112345113C0}.Debug_Double|x64.Build.0 = Debug_Double|x64 + {815C302F-A93D-4C22-9329-7112345113C0}.Debug|Win32.ActiveCfg = Debug|Win32 + {815C302F-A93D-4C22-9329-7112345113C0}.Debug|Win32.Build.0 = Debug|Win32 + {815C302F-A93D-4C22-9329-7112345113C0}.Debug|x64.ActiveCfg = Debug|x64 + {815C302F-A93D-4C22-9329-7112345113C0}.Debug|x64.Build.0 = Debug|x64 + {815C302F-A93D-4C22-9329-7112345113C0}.Release_Double|Win32.ActiveCfg = Release_Double|Win32 + {815C302F-A93D-4C22-9329-7112345113C0}.Release_Double|Win32.Build.0 = Release_Double|Win32 + {815C302F-A93D-4C22-9329-7112345113C0}.Release_Double|x64.ActiveCfg = Release_Double|x64 + {815C302F-A93D-4C22-9329-7112345113C0}.Release_Double|x64.Build.0 = Release_Double|x64 + {815C302F-A93D-4C22-9329-7112345113C0}.Release|Win32.ActiveCfg = Release|Win32 + {815C302F-A93D-4C22-9329-7112345113C0}.Release|Win32.Build.0 = Release|Win32 + {815C302F-A93D-4C22-9329-7112345113C0}.Release|x64.ActiveCfg = Release|x64 + {815C302F-A93D-4C22-9329-7112345113C0}.Release|x64.Build.0 = Release|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug_Double|Win32.ActiveCfg = Debug-Double Precision|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug_Double|Win32.Build.0 = Debug-Double Precision|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug_Double|x64.ActiveCfg = Debug-Double Precision|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug_Double|x64.Build.0 = Debug-Double Precision|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug|Win32.Build.0 = Debug|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug|x64.ActiveCfg = Debug|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug|x64.Build.0 = Debug|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release_Double|Win32.ActiveCfg = Release-Double Precision|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release_Double|Win32.Build.0 = Release-Double Precision|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release_Double|x64.ActiveCfg = Release-Double Precision|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release_Double|x64.Build.0 = Release-Double Precision|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release|Win32.ActiveCfg = Release|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release|Win32.Build.0 = Release|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release|x64.ActiveCfg = Release|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs-build/BeamDyn/BeamDyn.vfproj b/vs-build/BeamDyn/BeamDyn.vfproj new file mode 100644 index 0000000000..d5166073be --- /dev/null +++ b/vs-build/BeamDyn/BeamDyn.vfproj @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs-build/FAST/FAST.vfproj b/vs-build/FAST/FAST.vfproj index a96c64a0e6..24f1cbefa3 100644 --- a/vs-build/FAST/FAST.vfproj +++ b/vs-build/FAST/FAST.vfproj @@ -11,7 +11,7 @@ - + @@ -21,7 +21,7 @@ - + @@ -31,17 +31,17 @@ - + - + - + @@ -51,17 +51,17 @@ - + - + - + @@ -71,7 +71,7 @@ - + @@ -81,7 +81,7 @@ - + diff --git a/vs-build/FASTlib/FASTlib.vfproj b/vs-build/FASTlib/FASTlib.vfproj index 88d803b764..93f6adf56d 100644 --- a/vs-build/FASTlib/FASTlib.vfproj +++ b/vs-build/FASTlib/FASTlib.vfproj @@ -5,7 +5,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -23,7 +23,7 @@ - + @@ -32,16 +32,16 @@ - + - + - + @@ -50,7 +50,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -77,7 +77,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -104,11 +104,11 @@ - + - + @@ -117,16 +117,16 @@ - + - - - - + + + + @@ -135,25 +135,25 @@ - - + + - - - + - + - + + + @@ -165,25 +165,25 @@ - - + + - - - + - + - + + + @@ -191,25 +191,25 @@ - - + + - - - + - + - + + + @@ -217,25 +217,25 @@ - - + + - - - + - + - + + + @@ -255,25 +255,25 @@ - - + + - - - + - + - + + + @@ -284,25 +284,25 @@ - - + + - - - + - + - + + + @@ -315,25 +315,25 @@ - - + + - - - + - + - + + + @@ -345,25 +345,25 @@ - - + + - - - + - + - + + + @@ -376,25 +376,25 @@ - - + + - - - + - + - + + + @@ -405,25 +405,25 @@ - - + + - - - + - + - + + + @@ -437,25 +437,25 @@ - - + + - - - + - + - + + + @@ -463,25 +463,25 @@ - - + + - - - + - + - + + + @@ -489,25 +489,25 @@ - - + + - - - + - + - + + + @@ -515,25 +515,25 @@ - - + + - - - + - + - + + + @@ -541,25 +541,25 @@ - - + + - - - + - + - + + + @@ -567,50 +567,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -619,50 +619,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -692,25 +692,25 @@ - - + + - - - + - + - + + + @@ -722,25 +722,25 @@ - - + + - - - + - + - + + + @@ -763,25 +763,25 @@ - - + + - - - + - + - + + + @@ -789,25 +789,25 @@ - - + + - - - + - + - + + + @@ -815,25 +815,25 @@ - - + + - - - + - + - + + + @@ -841,25 +841,25 @@ - - + + - - - + - + - + + + @@ -867,25 +867,25 @@ - - + + - - - + - + - + + + @@ -893,25 +893,25 @@ - - + + - - - + - + - + + + @@ -919,25 +919,25 @@ - - + + - - - + - + - + + + @@ -945,25 +945,25 @@ - - + + - - - + - + - + + + @@ -983,25 +983,25 @@ - - + + - - - + - + - + + + @@ -1012,40 +1012,40 @@ - - + + - - - + - + - + + + - - - + + + - + @@ -1055,25 +1055,25 @@ - - + + - - - + - + - + + + @@ -1089,25 +1089,25 @@ - - + + - - - + - + - + + + @@ -1119,25 +1119,25 @@ - - + + - - - + - + - + + + @@ -1145,25 +1145,25 @@ - - + + - - - + - + - + + + @@ -1171,50 +1171,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -1235,42 +1235,42 @@ - + - + - - + + - - + + - - - + - + - + + + @@ -1281,25 +1281,25 @@ - - + + - - - + - + - + + + @@ -1307,25 +1307,25 @@ - - + + - - - + - + - + + + @@ -1341,25 +1341,25 @@ - - + + - - - + - + - + + + @@ -1373,25 +1373,25 @@ - - + + - - - + - + - + + + diff --git a/vs-build/GetGitHash.bat b/vs-build/GetGitHash.bat new file mode 100644 index 0000000000..ff44967bcc --- /dev/null +++ b/vs-build/GetGitHash.bat @@ -0,0 +1 @@ +git describe --abbrev=8 --dirty --tags > ..\githash.txt diff --git a/vs-build/HydroDyn/HydroDynDriver.vfproj b/vs-build/HydroDyn/HydroDynDriver.vfproj index b23e27b5ae..a2ff3b233d 100644 --- a/vs-build/HydroDyn/HydroDynDriver.vfproj +++ b/vs-build/HydroDyn/HydroDynDriver.vfproj @@ -5,43 +5,43 @@ - + - + - + - + - + - + - + - + diff --git a/vs-build/SubDyn/SubDyn.vfproj b/vs-build/SubDyn/SubDyn.vfproj index 36796cca77..f1ffa3ecbc 100644 --- a/vs-build/SubDyn/SubDyn.vfproj +++ b/vs-build/SubDyn/SubDyn.vfproj @@ -5,43 +5,43 @@ - + - + - + - + - + - + - + - + diff --git a/vs-build/UnsteadyAero/UnsteadyAero.vfproj b/vs-build/UnsteadyAero/UnsteadyAero.vfproj index dab97e9924..5ff8aeca47 100644 --- a/vs-build/UnsteadyAero/UnsteadyAero.vfproj +++ b/vs-build/UnsteadyAero/UnsteadyAero.vfproj @@ -5,83 +5,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -97,19 +97,19 @@ - - + + - - + + @@ -120,191 +120,191 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + From ac7079f0c6e930223d555df55b11a0dbe1c4d2aa Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Thu, 7 Sep 2017 14:02:03 -0600 Subject: [PATCH 07/13] Fixed some compiling issues for double precision --- modules-ext/icefloe/src/icefloe/intermittentCrushing.F90 | 2 +- modules-ext/icefloe/src/icefloe/lockInISO.F90 | 2 +- modules-ext/moordyn/src/MoorDyn.f90 | 4 ++-- modules-local/aerodyn14/src/AeroSubs.f90 | 2 +- modules-local/subdyn/src/SubDyn.f90 | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules-ext/icefloe/src/icefloe/intermittentCrushing.F90 b/modules-ext/icefloe/src/icefloe/intermittentCrushing.F90 index b859b5493e..e88caf4172 100644 --- a/modules-ext/icefloe/src/icefloe/intermittentCrushing.F90 +++ b/modules-ext/icefloe/src/icefloe/intermittentCrushing.F90 @@ -53,7 +53,7 @@ subroutine initInterCrushing (iceInput, myIceParams, iceLog) call getIceInput(iceInput, 'riseTime', inParams%riseTime, iceLog, 0.1_ReKi, 0.9_ReKi) call logMessage(iceLog, ' Saw tooth rise time fraction = '//TRIM(Num2LStr(inParams%riseTime))) - call getIceInput(iceInput, 'fallTime', inParams%fallTime, iceLog, 0.1_ReKi, 1.0-inParams%riseTime) + call getIceInput(iceInput, 'fallTime', inParams%fallTime, iceLog, 0.1_ReKi, 1.0_ReKi-inParams%riseTime) call logMessage(iceLog, ' Saw tooth fall time fraction = '//TRIM(Num2LStr(inParams%fallTime))) ! get leg load phase diff --git a/modules-ext/icefloe/src/icefloe/lockInISO.F90 b/modules-ext/icefloe/src/icefloe/lockInISO.F90 index 9df7121548..ebb1e04ec3 100644 --- a/modules-ext/icefloe/src/icefloe/lockInISO.F90 +++ b/modules-ext/icefloe/src/icefloe/lockInISO.F90 @@ -76,7 +76,7 @@ subroutine initLockInCrushingISO (iceInput, myIceParams, iceLog) call logMessage(iceLog, '** Global crushing load is: '//TRIM(Num2LStr(maxLoad))//' Newtons.' ) call crushLoadTimeSeriesISO(myIceParams, inParams, iceLog, maxLoad, inParams%minLoadFraction*maxLoad, & - 1.0/inParams%twr%freq, inParams%riseTime, fallTime) + 1.0_ReKi/inParams%twr%freq, inParams%riseTime, fallTime) end subroutine initLockInCrushingISO diff --git a/modules-ext/moordyn/src/MoorDyn.f90 b/modules-ext/moordyn/src/MoorDyn.f90 index 590497100b..b0d48ef873 100644 --- a/modules-ext/moordyn/src/MoorDyn.f90 +++ b/modules-ext/moordyn/src/MoorDyn.f90 @@ -1242,9 +1242,9 @@ SUBROUTINE TimeStep ( t, dtStep, u, utimes, p, x, xd, z, other, m, ErrStat, ErrM ! step 2 - CALL MD_Input_ExtrapInterp(u, utimes, u_interp, tDbKi + 0.5*dtM, ErrStat, ErrMsg) ! interpolate input mesh to correct time (t+0.5*dtM) + CALL MD_Input_ExtrapInterp(u, utimes, u_interp, tDbKi + 0.5_ReKi*dtM, ErrStat, ErrMsg) ! interpolate input mesh to correct time (t+0.5*dtM) - CALL MD_CalcContStateDeriv( (t + 0.5*dtM), u_interp, p, x2, xd, z, other, m, dxdt, ErrStat, ErrMsg ) !called with updated states x2 and time = t + dt/2.0 + CALL MD_CalcContStateDeriv( (t + 0.5_ReKi*dtM), u_interp, p, x2, xd, z, other, m, dxdt, ErrStat, ErrMsg ) !called with updated states x2 and time = t + dt/2.0 DO J = 1, Nx x%states(J) = x%states(J) + dtM*dxdt%states(J) END DO diff --git a/modules-local/aerodyn14/src/AeroSubs.f90 b/modules-local/aerodyn14/src/AeroSubs.f90 index 26c118164b..71fd4eb2d0 100644 --- a/modules-local/aerodyn14/src/AeroSubs.f90 +++ b/modules-local/aerodyn14/src/AeroSubs.f90 @@ -2564,7 +2564,7 @@ SUBROUTINE GetTwrSectProp ( P, m, ErrStat, ErrMess, & ELSE ! There are multiple Re rows - TwrElRe = GetReynolds( VelHor, 2.0*TwrElRad, P%Wind%KinVisc ) + TwrElRe = GetReynolds( VelHor, 2.0_ReKi*TwrElRad, P%Wind%KinVisc ) IF ( p%TwrProps%NTwrCD == 1 ) THEN ! There is only one CD column TwrElCD = InterpBin( TwrElRe, p%TwrProps%TwrRe, p%TwrProps%TwrCD(:,1), N1, p%TwrProps%NTwrRe ) diff --git a/modules-local/subdyn/src/SubDyn.f90 b/modules-local/subdyn/src/SubDyn.f90 index 7652c56a4b..7be21bd0bc 100644 --- a/modules-local/subdyn/src/SubDyn.f90 +++ b/modules-local/subdyn/src/SubDyn.f90 @@ -3105,7 +3105,7 @@ SUBROUTINE EigenSolve(K, M, nDOF, NOmega, Reduced, Init,p, Phi, Omega, ErrStat, CHARACTER(*), INTENT( OUT) :: ErrMsg ! Error message if ErrStat /= ErrID_None ! LOCALS - REAL(ReKi), ALLOCATABLE :: Omega2(:) !RRD: Eigen-values new system + REAL(LAKi), ALLOCATABLE :: Omega2(:) !RRD: Eigen-values new system ! note: SGGEV seems to have memory issues in certain cases. The eigenvalues seem to be okay, but the eigenvectors vary wildly with different compiling options. ! DGGEV seems to work better, so I'm making these variables LAKi (which is set to R8Ki for now) - bjj 4/25/2014 REAL(LAKi), ALLOCATABLE :: Kred(:,:), Mred(:,:) From 4c567b79aadbbb0cf9ae6b8fb96ea7a28601eadb Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Thu, 7 Sep 2017 14:04:12 -0600 Subject: [PATCH 08/13] Modified the code related to obtaining the GIT version Based on input for Bonnie Jonkman, I have altered the implementation for obtaining the git-related version string. --- .gitignore | 17 +- CMakeLists.txt | 2 +- .../aerodyn/src/AeroDyn_Driver_Subs.f90 | 3 +- .../aerodyn/src/UnsteadyAero_Driver.f90 | 2 +- modules-local/beamdyn/src/Driver_Beam.f90 | 2 +- modules-local/fast-library/src/FAST_Subs.f90 | 4 +- .../hydrodyn/src/HydroDyn_DriverCode.f90 | 2 +- modules-local/nwtc-library/src/NWTC_IO.f90 | 56 +- modules-local/subdyn/src/SubDyn_Driver.f90 | 2 +- vs-build/AFI/AFI-w-registry.sln | 61 ++ vs-build/AeroDyn/AeroDyn_Driver.vfproj | 48 +- vs-build/BeamDyn/BeamDyn.vfproj | 122 ++-- vs-build/CreateGitVersion.bat | 7 + vs-build/Discon/Discon.sln | 48 ++ vs-build/Discon/Discon.vfproj | 52 ++ vs-build/Discon/Discon_ITIBarge.vfproj | 52 ++ vs-build/Discon/Discon_OC3Hywind.vfproj | 52 ++ vs-build/FAST/FAST.vfproj | 16 +- vs-build/FASTlib/FASTlib.vfproj | 638 +++++++++--------- vs-build/HydroDyn/HydroDynDriver.vfproj | 16 +- vs-build/SubDyn/SubDyn.vfproj | 16 +- vs-build/UnsteadyAero/UnsteadyAero.vfproj | 138 ++-- 22 files changed, 823 insertions(+), 533 deletions(-) create mode 100644 vs-build/AFI/AFI-w-registry.sln create mode 100644 vs-build/CreateGitVersion.bat create mode 100644 vs-build/Discon/Discon.sln create mode 100644 vs-build/Discon/Discon.vfproj create mode 100644 vs-build/Discon/Discon_ITIBarge.vfproj create mode 100644 vs-build/Discon/Discon_OC3Hywind.vfproj diff --git a/.gitignore b/.gitignore index 0ab28e493c..53a862b8c9 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,21 @@ build/**/* install/* ctest-build/* -vs-build +# vs-build specific folders and files +Debug +x64 +Release +Release_Double +Debug-Double Precision +Release-Double Precision +*.opensdf +*.user +*.suo +*.sdf +*.u2d +*.pdb +*.tlog +gitVersionInfo.h + build .DS_Store diff --git a/CMakeLists.txt b/CMakeLists.txt index b4646f6775..5beacdf0a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") include(GetGitRevisionDescription) git_describe(GIT_DESCRIBE) -add_definitions(-DGIT_COMMIT_HASH="${GIT_DESCRIBE}") +add_definitions(-DGIT_VERSION_INFO="${GIT_DESCRIBE}") # CMake Configuration variables if (NOT CMAKE_BUILD_TYPE) diff --git a/modules-local/aerodyn/src/AeroDyn_Driver_Subs.f90 b/modules-local/aerodyn/src/AeroDyn_Driver_Subs.f90 index 3a8c904878..4bf4e15980 100644 --- a/modules-local/aerodyn/src/AeroDyn_Driver_Subs.f90 +++ b/modules-local/aerodyn/src/AeroDyn_Driver_Subs.f90 @@ -52,13 +52,14 @@ subroutine Dvr_Init(DvrData,errStat,errMsg ) ErrStat = ErrID_None ErrMsg = "" + DvrData%OutFileData%unOutFile = -1 CALL NWTC_Init() ! Display the copyright notice CALL DispCopyrightLicense( version ) ! Obtain OpenFAST git commit hash - git_commit = QueryGitHash() + git_commit = QueryGitVersion() ! Tell our users what they're running CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) diff --git a/modules-local/aerodyn/src/UnsteadyAero_Driver.f90 b/modules-local/aerodyn/src/UnsteadyAero_Driver.f90 index 0758b3093b..cf35d88d80 100644 --- a/modules-local/aerodyn/src/UnsteadyAero_Driver.f90 +++ b/modules-local/aerodyn/src/UnsteadyAero_Driver.f90 @@ -87,7 +87,7 @@ program UnsteadyAero_Driver ! Display the copyright notice CALL DispCopyrightLicense( version ) ! Obtain OpenFAST git commit hash - git_commit = QueryGitHash() + git_commit = QueryGitVersion() ! Tell our users what they're running CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) diff --git a/modules-local/beamdyn/src/Driver_Beam.f90 b/modules-local/beamdyn/src/Driver_Beam.f90 index 15a23f3505..5474a67581 100644 --- a/modules-local/beamdyn/src/Driver_Beam.f90 +++ b/modules-local/beamdyn/src/Driver_Beam.f90 @@ -81,7 +81,7 @@ PROGRAM BeamDyn_Driver_Program ! Display the copyright notice CALL DispCopyrightLicense( version ) ! Obtain OpenFAST git commit hash - git_commit = QueryGitHash() + git_commit = QueryGitVersion() ! Tell our users what they're running CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) diff --git a/modules-local/fast-library/src/FAST_Subs.f90 b/modules-local/fast-library/src/FAST_Subs.f90 index 42feb35ed0..6ad5c3b5a1 100644 --- a/modules-local/fast-library/src/FAST_Subs.f90 +++ b/modules-local/fast-library/src/FAST_Subs.f90 @@ -1307,7 +1307,7 @@ FUNCTION GetVersion(ThisProgVer) GetVersion = TRIM(GetVersion)//' precision' ! add git info - git_commit = QueryGitHash() + git_commit = QueryGitVersion() GetVersion = TRIM(GetVersion)//' at commit '//git_commit RETURN @@ -1324,7 +1324,7 @@ subroutine GetProgramMetadata(ThisProgVer, name, version, git_commit, architectu name = trim(ThisProgVer%Name) version = trim(ThisProgVer%Ver) - git_commit = QueryGitHash() + git_commit = QueryGitVersion() architecture = TRIM(Num2LStr(BITS_IN_ADDR))//' bit' diff --git a/modules-local/hydrodyn/src/HydroDyn_DriverCode.f90 b/modules-local/hydrodyn/src/HydroDyn_DriverCode.f90 index 58cf34a5da..bab48cff21 100644 --- a/modules-local/hydrodyn/src/HydroDyn_DriverCode.f90 +++ b/modules-local/hydrodyn/src/HydroDyn_DriverCode.f90 @@ -155,7 +155,7 @@ PROGRAM HydroDynDriver ! Display the copyright notice CALL DispCopyrightLicense( version ) ! Obtain OpenFAST git commit hash - git_commit = QueryGitHash() + git_commit = QueryGitVersion() ! Tell our users what they're running CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) diff --git a/modules-local/nwtc-library/src/NWTC_IO.f90 b/modules-local/nwtc-library/src/NWTC_IO.f90 index d9674c202a..b8137cc645 100644 --- a/modules-local/nwtc-library/src/NWTC_IO.f90 +++ b/modules-local/nwtc-library/src/NWTC_IO.f90 @@ -4419,7 +4419,7 @@ END SUBROUTINE ProgWarn !======================================================================= !> This routine outputs the git hash associate with the current codebase. - FUNCTION QueryGitHash() + FUNCTION QueryGitVersion() ! Passed variables. @@ -4428,7 +4428,7 @@ FUNCTION QueryGitHash() ! Function declaration. - CHARACTER(200) :: QueryGitHash ! This function. + CHARACTER(200) :: QueryGitVersion ! This function. ! Local variables. @@ -4438,41 +4438,33 @@ FUNCTION QueryGitHash() !ErrStat = ErrID_None !ErrMsg = '' - QueryGitHash = 'unversioned' -#ifdef GIT_COMMIT_HASH - QueryGitHash = GIT_COMMIT_HASH ! set by the cmake build scripts -#endif -#ifdef GIT_HASH_FILE - ! VS build method for obtaining the git hash info. + QueryGitVersion = 'unversioned' + + ! VS build method for obtaining the git version info. ! This requires setting: - ! 1) GIT_HASH_FILE = '$(ProjectDir)\..\gitHash.txt' preprocessor option on this file or the project containing this file. - ! 2) Creating a prebuild event on the project file producing the resulting binary (i.e., FAST.exe) with the following command: ..\GetGitHash.bat - ! 3) The bat file, GetGitHash.bat, located in the vs-build folder of the openfast repository, which contains the git command used to obtain the git info - ! git describe --abbrev=8 --dirty --tags > ..\githash.txt - ! This creates the githash.txt file in the vs-build folder + ! 1) GIT_INCLUDE_FILE = '$(ProjectDir)\..\gitVersionInfo.h' preprocessor option on this file or the project containing this file. + ! 2) Creating a prebuild event on the project file producing the resulting binary (i.e., FAST.exe) with the following command: ..\CreateGitVersion.bat + ! 3) The bat file, CreateGitVersion.bat, located in the vs-build folder of the openfast repository, which contains the git command used to obtain the git info + ! @ECHO off + ! SET IncludeFile=..\gitVersionInfo.h + ! + ! %IncludeFile% + ! FOR /f %%a IN ('git describe --abbrev^=7 --always --tags --dirty') DO > %IncludeFile% + ! ECHO '>> %IncludeFile% + ! EXIT /B 0 + ! This creates the gitVersionInfo.h file in the vs-build folder + +#ifdef GIT_INCLUDE_FILE +#include GIT_INCLUDE_FILE +#endif - ! Get an available unit number for the file. - - CALL GetNewUnit( UnIn, ErrStat2, ErrMsg2 ) - !CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - IF ( ErrStat2 > ErrID_None ) RETURN - ! Open the Primary input file. - - CALL OpenFInpFile ( UnIn, GIT_HASH_FILE, ErrStat2, ErrMsg2 ) - !CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - IF ( ErrStat2 > ErrID_None ) RETURN - - CALL ReadVar( UnIn, GIT_HASH_FILE, QueryGitHash, "HASH", "Git Hash String)", ErrStat2, ErrMsg2, 0) - !CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) - IF ( ErrStat2 > ErrID_None ) RETURN - - IF (UnIn > 0) CLOSE ( UnIn ) -#endif +#ifdef GIT_VERSION_INFO +QueryGitVersion = GIT_VERSION_INFO +#endif - RETURN - END FUNCTION QueryGitHash + END FUNCTION QueryGitVersion !======================================================================= !> \copydoc nwtc_io::int2lstr diff --git a/modules-local/subdyn/src/SubDyn_Driver.f90 b/modules-local/subdyn/src/SubDyn_Driver.f90 index 19d8bae9f7..450911ebb3 100644 --- a/modules-local/subdyn/src/SubDyn_Driver.f90 +++ b/modules-local/subdyn/src/SubDyn_Driver.f90 @@ -114,7 +114,7 @@ PROGRAM TestSubDyn ! Display the copyright notice CALL DispCopyrightLicense( version ) ! Obtain OpenFAST git commit hash - git_commit = QueryGitHash() + git_commit = QueryGitVersion() ! Tell our users what they're running CALL WrScr( ' Running '//GetNVD( version )//' a part of OpenFAST - '//TRIM(git_Commit)//NewLine//' linked with '//TRIM( GetNVD( NWTC_Ver ))//NewLine ) diff --git a/vs-build/AFI/AFI-w-registry.sln b/vs-build/AFI/AFI-w-registry.sln new file mode 100644 index 0000000000..89d0fec855 --- /dev/null +++ b/vs-build/AFI/AFI-w-registry.sln @@ -0,0 +1,61 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.40629.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "AFI", "AFI.vfproj", "{2854302F-A93D-4C22-9329-717B085113C0}" + ProjectSection(ProjectDependencies) = postProject + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16} = {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FAST_Registry", "..\Registry\FAST_Registry.vcxproj", "{DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug_Double|Win32 = Debug_Double|Win32 + Debug_Double|x64 = Debug_Double|x64 + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release_Double|Win32 = Release_Double|Win32 + Release_Double|x64 = Release_Double|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2854302F-A93D-4C22-9329-717B085113C0}.Debug_Double|Win32.ActiveCfg = Debug_Double|Win32 + {2854302F-A93D-4C22-9329-717B085113C0}.Debug_Double|Win32.Build.0 = Debug_Double|Win32 + {2854302F-A93D-4C22-9329-717B085113C0}.Debug_Double|x64.ActiveCfg = Debug_Double|x64 + {2854302F-A93D-4C22-9329-717B085113C0}.Debug_Double|x64.Build.0 = Debug_Double|x64 + {2854302F-A93D-4C22-9329-717B085113C0}.Debug|Win32.ActiveCfg = Debug|Win32 + {2854302F-A93D-4C22-9329-717B085113C0}.Debug|Win32.Build.0 = Debug|Win32 + {2854302F-A93D-4C22-9329-717B085113C0}.Debug|x64.ActiveCfg = Debug|x64 + {2854302F-A93D-4C22-9329-717B085113C0}.Debug|x64.Build.0 = Debug|x64 + {2854302F-A93D-4C22-9329-717B085113C0}.Release_Double|Win32.ActiveCfg = Release_Double|Win32 + {2854302F-A93D-4C22-9329-717B085113C0}.Release_Double|Win32.Build.0 = Release_Double|Win32 + {2854302F-A93D-4C22-9329-717B085113C0}.Release_Double|x64.ActiveCfg = Release_Double|x64 + {2854302F-A93D-4C22-9329-717B085113C0}.Release_Double|x64.Build.0 = Release_Double|x64 + {2854302F-A93D-4C22-9329-717B085113C0}.Release|Win32.ActiveCfg = Release|Win32 + {2854302F-A93D-4C22-9329-717B085113C0}.Release|Win32.Build.0 = Release|Win32 + {2854302F-A93D-4C22-9329-717B085113C0}.Release|x64.ActiveCfg = Release|x64 + {2854302F-A93D-4C22-9329-717B085113C0}.Release|x64.Build.0 = Release|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug_Double|Win32.ActiveCfg = Debug-Double Precision|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug_Double|Win32.Build.0 = Debug-Double Precision|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug_Double|x64.ActiveCfg = Debug-Double Precision|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug_Double|x64.Build.0 = Debug-Double Precision|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug|Win32.Build.0 = Debug|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug|x64.ActiveCfg = Debug|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Debug|x64.Build.0 = Debug|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release_Double|Win32.ActiveCfg = Release-Double Precision|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release_Double|Win32.Build.0 = Release-Double Precision|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release_Double|x64.ActiveCfg = Release-Double Precision|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release_Double|x64.Build.0 = Release-Double Precision|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release|Win32.ActiveCfg = Release|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release|Win32.Build.0 = Release|Win32 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release|x64.ActiveCfg = Release|x64 + {DA16A3A6-3297-4628-9E46-C6FA0E3C4D16}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs-build/AeroDyn/AeroDyn_Driver.vfproj b/vs-build/AeroDyn/AeroDyn_Driver.vfproj index ac3c437754..00fbedc3a9 100644 --- a/vs-build/AeroDyn/AeroDyn_Driver.vfproj +++ b/vs-build/AeroDyn/AeroDyn_Driver.vfproj @@ -5,83 +5,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -214,17 +214,21 @@ - + + + - + - + - + - + + + - + diff --git a/vs-build/BeamDyn/BeamDyn.vfproj b/vs-build/BeamDyn/BeamDyn.vfproj index d5166073be..a93aeea86f 100644 --- a/vs-build/BeamDyn/BeamDyn.vfproj +++ b/vs-build/BeamDyn/BeamDyn.vfproj @@ -5,83 +5,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -98,19 +98,19 @@ - - + + - - + + @@ -118,178 +118,176 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + diff --git a/vs-build/CreateGitVersion.bat b/vs-build/CreateGitVersion.bat new file mode 100644 index 0000000000..15b2147b8f --- /dev/null +++ b/vs-build/CreateGitVersion.bat @@ -0,0 +1,7 @@ +@ECHO off +SET IncludeFile=..\gitVersionInfo.h + + %IncludeFile% +FOR /f %%a IN ('git describe --abbrev^=8 --always --tags --dirty') DO > %IncludeFile% +ECHO '>> %IncludeFile% +EXIT /B 0 \ No newline at end of file diff --git a/vs-build/Discon/Discon.sln b/vs-build/Discon/Discon.sln new file mode 100644 index 0000000000..06867c12e7 --- /dev/null +++ b/vs-build/Discon/Discon.sln @@ -0,0 +1,48 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.40629.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "Discon", "Discon.vfproj", "{183CC593-AD4C-4A15-81C1-7D6D20A9A5ED}" +EndProject +Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "Discon_ITIBarge", "Discon_ITIBarge.vfproj", "{11A28263-1385-47DF-9122-30BF9C0DF013}" +EndProject +Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "Discon_OC3Hywind", "Discon_OC3Hywind.vfproj", "{3BA7CEDE-8D58-4D18-8A59-A4114FB70B9C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {183CC593-AD4C-4A15-81C1-7D6D20A9A5ED}.Debug|Win32.ActiveCfg = Debug|Win32 + {183CC593-AD4C-4A15-81C1-7D6D20A9A5ED}.Debug|Win32.Build.0 = Debug|Win32 + {183CC593-AD4C-4A15-81C1-7D6D20A9A5ED}.Debug|x64.ActiveCfg = Debug|Win32 + {183CC593-AD4C-4A15-81C1-7D6D20A9A5ED}.Debug|x64.Build.0 = Debug|Win32 + {183CC593-AD4C-4A15-81C1-7D6D20A9A5ED}.Release|Win32.ActiveCfg = Release|x64 + {183CC593-AD4C-4A15-81C1-7D6D20A9A5ED}.Release|Win32.Build.0 = Release|x64 + {183CC593-AD4C-4A15-81C1-7D6D20A9A5ED}.Release|x64.ActiveCfg = Release|x64 + {183CC593-AD4C-4A15-81C1-7D6D20A9A5ED}.Release|x64.Build.0 = Release|x64 + {11A28263-1385-47DF-9122-30BF9C0DF013}.Debug|Win32.ActiveCfg = Debug|Win32 + {11A28263-1385-47DF-9122-30BF9C0DF013}.Debug|Win32.Build.0 = Debug|Win32 + {11A28263-1385-47DF-9122-30BF9C0DF013}.Debug|x64.ActiveCfg = Debug|x64 + {11A28263-1385-47DF-9122-30BF9C0DF013}.Debug|x64.Build.0 = Debug|x64 + {11A28263-1385-47DF-9122-30BF9C0DF013}.Release|Win32.ActiveCfg = Release|Win32 + {11A28263-1385-47DF-9122-30BF9C0DF013}.Release|Win32.Build.0 = Release|Win32 + {11A28263-1385-47DF-9122-30BF9C0DF013}.Release|x64.ActiveCfg = Release|x64 + {11A28263-1385-47DF-9122-30BF9C0DF013}.Release|x64.Build.0 = Release|x64 + {3BA7CEDE-8D58-4D18-8A59-A4114FB70B9C}.Debug|Win32.ActiveCfg = Debug|Win32 + {3BA7CEDE-8D58-4D18-8A59-A4114FB70B9C}.Debug|Win32.Build.0 = Debug|Win32 + {3BA7CEDE-8D58-4D18-8A59-A4114FB70B9C}.Debug|x64.ActiveCfg = Debug|x64 + {3BA7CEDE-8D58-4D18-8A59-A4114FB70B9C}.Debug|x64.Build.0 = Debug|x64 + {3BA7CEDE-8D58-4D18-8A59-A4114FB70B9C}.Release|Win32.ActiveCfg = Release|Win32 + {3BA7CEDE-8D58-4D18-8A59-A4114FB70B9C}.Release|Win32.Build.0 = Release|Win32 + {3BA7CEDE-8D58-4D18-8A59-A4114FB70B9C}.Release|x64.ActiveCfg = Release|x64 + {3BA7CEDE-8D58-4D18-8A59-A4114FB70B9C}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs-build/Discon/Discon.vfproj b/vs-build/Discon/Discon.vfproj new file mode 100644 index 0000000000..f5aa5a7240 --- /dev/null +++ b/vs-build/Discon/Discon.vfproj @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs-build/Discon/Discon_ITIBarge.vfproj b/vs-build/Discon/Discon_ITIBarge.vfproj new file mode 100644 index 0000000000..1f8076ce5c --- /dev/null +++ b/vs-build/Discon/Discon_ITIBarge.vfproj @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs-build/Discon/Discon_OC3Hywind.vfproj b/vs-build/Discon/Discon_OC3Hywind.vfproj new file mode 100644 index 0000000000..ec999145a1 --- /dev/null +++ b/vs-build/Discon/Discon_OC3Hywind.vfproj @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs-build/FAST/FAST.vfproj b/vs-build/FAST/FAST.vfproj index 24f1cbefa3..8ac4f0606f 100644 --- a/vs-build/FAST/FAST.vfproj +++ b/vs-build/FAST/FAST.vfproj @@ -11,7 +11,7 @@ - + @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -71,7 +71,7 @@ - + @@ -81,7 +81,7 @@ - + diff --git a/vs-build/FASTlib/FASTlib.vfproj b/vs-build/FASTlib/FASTlib.vfproj index 93f6adf56d..bbf8d84f7a 100644 --- a/vs-build/FASTlib/FASTlib.vfproj +++ b/vs-build/FASTlib/FASTlib.vfproj @@ -5,7 +5,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -23,7 +23,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -77,7 +77,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -117,16 +117,16 @@ - + - - - - + + + + @@ -135,25 +135,25 @@ - - + + - - - + - + - + + + @@ -165,25 +165,25 @@ - - + + - - - + - + - + + + @@ -191,25 +191,25 @@ - - + + - - - + - + - + + + @@ -217,25 +217,25 @@ - - + + - - - + - + - + + + @@ -255,25 +255,25 @@ - - + + - - - + - + - + + + @@ -284,25 +284,25 @@ - - + + - - - + - + - + + + @@ -315,25 +315,25 @@ - - + + - - - + - + - + + + @@ -345,25 +345,25 @@ - - + + - - - + - + - + + + @@ -376,25 +376,25 @@ - - + + - - - + - + - + + + @@ -405,25 +405,25 @@ - - + + - - - + - + - + + + @@ -437,25 +437,25 @@ - - + + - - - + - + - + + + @@ -463,25 +463,25 @@ - - + + - - - + - + - + + + @@ -489,25 +489,25 @@ - - + + - - - + - + - + + + @@ -515,25 +515,25 @@ - - + + - - - + - + - + + + @@ -541,25 +541,25 @@ - - + + - - - + - + - + + + @@ -567,50 +567,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -619,50 +619,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -692,25 +692,25 @@ - - + + - - - + - + - + + + @@ -722,25 +722,25 @@ - - + + - - - + - + - + + + @@ -763,25 +763,25 @@ - - + + - - - + - + - + + + @@ -789,25 +789,25 @@ - - + + - - - + - + - + + + @@ -815,25 +815,25 @@ - - + + - - - + - + - + + + @@ -841,25 +841,25 @@ - - + + - - - + - + - + + + @@ -867,25 +867,25 @@ - - + + - - - + - + - + + + @@ -893,25 +893,25 @@ - - + + - - - + - + - + + + @@ -919,25 +919,25 @@ - - + + - - - + - + - + + + @@ -945,25 +945,25 @@ - - + + - - - + - + - + + + @@ -983,25 +983,25 @@ - - + + - - - + - + - + + + @@ -1012,40 +1012,40 @@ - - + + - - - + - + - + + + - - - + + + - + @@ -1055,25 +1055,25 @@ - - + + - - - + - + - + + + @@ -1089,25 +1089,25 @@ - - + + - - - + - + - + + + @@ -1119,25 +1119,25 @@ - - + + - - - + - + - + + + @@ -1145,25 +1145,25 @@ - - + + - - - + - + - + + + @@ -1171,50 +1171,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -1235,42 +1235,42 @@ - + - + - - + + - - + + - - - + - + - + + + @@ -1281,25 +1281,25 @@ - - + + - - - + - + - + + + @@ -1307,25 +1307,25 @@ - - + + - - - + - + - + + + @@ -1341,25 +1341,25 @@ - - + + - - - + - + - + + + @@ -1373,25 +1373,25 @@ - - + + - - - + - + - + + + diff --git a/vs-build/HydroDyn/HydroDynDriver.vfproj b/vs-build/HydroDyn/HydroDynDriver.vfproj index a2ff3b233d..2b94db4f30 100644 --- a/vs-build/HydroDyn/HydroDynDriver.vfproj +++ b/vs-build/HydroDyn/HydroDynDriver.vfproj @@ -5,43 +5,43 @@ - + - + - + - + - + - + - + - + diff --git a/vs-build/SubDyn/SubDyn.vfproj b/vs-build/SubDyn/SubDyn.vfproj index f1ffa3ecbc..7128aabb03 100644 --- a/vs-build/SubDyn/SubDyn.vfproj +++ b/vs-build/SubDyn/SubDyn.vfproj @@ -5,43 +5,43 @@ - + - + - + - + - + - + - + - + diff --git a/vs-build/UnsteadyAero/UnsteadyAero.vfproj b/vs-build/UnsteadyAero/UnsteadyAero.vfproj index 5ff8aeca47..6e868ef039 100644 --- a/vs-build/UnsteadyAero/UnsteadyAero.vfproj +++ b/vs-build/UnsteadyAero/UnsteadyAero.vfproj @@ -5,83 +5,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -97,214 +97,222 @@ - - + + - - + + - + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + From 513711905d81c60b44b9880182ef99f5c3e54e20 Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Fri, 8 Sep 2017 11:59:20 -0600 Subject: [PATCH 09/13] Moved ranlux.f90 into the nwtc_library and out of icefloe Now ranlux.f90 can be used by other modules --- modules-ext/icefloe/CMakeLists.txt | 1 - modules-local/nwtc-library/CMakeLists.txt | 3 + .../nwtc-library}/src/ranlux/RANLUX.f90 | 0 vs-build/FASTlib/FASTlib.vfproj | 618 +++++++++--------- 4 files changed, 312 insertions(+), 310 deletions(-) rename {modules-ext/icefloe => modules-local/nwtc-library}/src/ranlux/RANLUX.f90 (100%) diff --git a/modules-ext/icefloe/CMakeLists.txt b/modules-ext/icefloe/CMakeLists.txt index cd6b0a583e..252bbe3d57 100644 --- a/modules-ext/icefloe/CMakeLists.txt +++ b/modules-ext/icefloe/CMakeLists.txt @@ -19,7 +19,6 @@ generate_f90_types(src/interfaces/FAST/IceFloe_FASTRegistry.inp set(ICEFLOE_LIBS_SOURCES - src/ranlux/RANLUX.f90 src/icefloe/IceFlexBase.F90 src/icefloe/IceFlexIEC.f90 diff --git a/modules-local/nwtc-library/CMakeLists.txt b/modules-local/nwtc-library/CMakeLists.txt index a313f26bfc..c7a4439950 100644 --- a/modules-local/nwtc-library/CMakeLists.txt +++ b/modules-local/nwtc-library/CMakeLists.txt @@ -25,6 +25,9 @@ set(NWTCLIBS_SOURCES src/SingPrec.f90 src/NWTC_Library_Types.f90 + # RanLux sources + src/ranlux/RANLUX.f90 + # NetLib sources src/NetLib/Dierckx_FitPack/dierckx_fitpack.f src/NetLib/fftpack/fftpack4.1.f diff --git a/modules-ext/icefloe/src/ranlux/RANLUX.f90 b/modules-local/nwtc-library/src/ranlux/RANLUX.f90 similarity index 100% rename from modules-ext/icefloe/src/ranlux/RANLUX.f90 rename to modules-local/nwtc-library/src/ranlux/RANLUX.f90 diff --git a/vs-build/FASTlib/FASTlib.vfproj b/vs-build/FASTlib/FASTlib.vfproj index bbf8d84f7a..db883c8c93 100644 --- a/vs-build/FASTlib/FASTlib.vfproj +++ b/vs-build/FASTlib/FASTlib.vfproj @@ -117,16 +117,16 @@ - + - - - - + + + + @@ -135,25 +135,25 @@ - - + + - - - + - + - + + + @@ -165,25 +165,25 @@ - - + + - - - + - + - + + + @@ -191,25 +191,25 @@ - - + + - - - + - + - + + + @@ -217,25 +217,25 @@ - - + + - - - + - + - + + + @@ -255,25 +255,25 @@ - - + + - - - + - + - + + + @@ -284,25 +284,25 @@ - - + + - - - + - + - + + + @@ -315,25 +315,25 @@ - - + + - - - + - + - + + + @@ -345,25 +345,25 @@ - - + + - - - + - + - + + + @@ -376,25 +376,25 @@ - - + + - - - + - + - + + + @@ -405,25 +405,25 @@ - - + + - - - + - + - + + + @@ -437,25 +437,25 @@ - - + + - - - + - + - + + + @@ -463,25 +463,25 @@ - - + + - - - + - + - + + + @@ -489,25 +489,25 @@ - - + + - - - + - + - + + + @@ -515,25 +515,25 @@ - - + + - - - + - + - + + + @@ -541,25 +541,25 @@ - - + + - - - + - + - + + + @@ -567,50 +567,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -619,50 +619,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -692,55 +692,53 @@ - - + + - - - + - + - + + + - - - - + + - - - + - + - + + + @@ -763,25 +761,25 @@ - - + + - - - + - + - + + + @@ -789,25 +787,25 @@ - - + + - - - + - + - + + + @@ -815,25 +813,25 @@ - - + + - - - + - + - + + + @@ -841,25 +839,25 @@ - - + + - - - + - + - + + + @@ -867,25 +865,25 @@ - - + + - - - + - + - + + + @@ -893,25 +891,25 @@ - - + + - - - + - + - + + + @@ -919,25 +917,25 @@ - - + + - - - + - + - + + + @@ -945,25 +943,25 @@ - - + + - - - + - + - + + + @@ -983,25 +981,25 @@ - - + + - - - + - + - + + + @@ -1012,40 +1010,40 @@ - - + + - - - + - + - + + + - - - + + + - + @@ -1055,25 +1053,25 @@ - - + + - - - + - + - + + + @@ -1089,25 +1087,25 @@ - - + + - - - + - + - + + + @@ -1119,25 +1117,25 @@ - - + + - - - + - + - + + + @@ -1145,25 +1143,25 @@ - - + + - - - + - + - + + + @@ -1171,50 +1169,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -1222,6 +1220,8 @@ + + @@ -1235,42 +1235,42 @@ - + - + - - + + - - + + - - - + - + - + + + @@ -1281,25 +1281,25 @@ - - + + - - - + - + - + + + @@ -1307,25 +1307,25 @@ - - + + - - - + - + - + + + @@ -1341,25 +1341,25 @@ - - + + - - - + - + - + + + @@ -1373,25 +1373,25 @@ - - + + - - - + - + - + + + From b294ed1f0d84402ec008dabf5c7c59360db5754c Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Mon, 11 Sep 2017 14:25:38 -0600 Subject: [PATCH 10/13] Going back to ignoring the entire vs-build folder in .gitignore --- .gitignore | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 53a862b8c9..7f17d22a0e 100644 --- a/.gitignore +++ b/.gitignore @@ -35,20 +35,8 @@ install/* ctest-build/* # vs-build specific folders and files -Debug -x64 -Release -Release_Double -Debug-Double Precision -Release-Double Precision -*.opensdf -*.user -*.suo -*.sdf -*.u2d -*.pdb -*.tlog -gitVersionInfo.h +vs-build/* + build .DS_Store From 504c430518800f20519be3e2c102f72c5b30ee3e Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Mon, 11 Sep 2017 14:29:29 -0600 Subject: [PATCH 11/13] Bug Fix: Added back DOUBLE_PRECISION preprocessor flag for some builds Also change output executables to start with openfast_ --- vs-build/FAST/FAST.vfproj | 16 +- vs-build/FASTlib/FASTlib.vfproj | 622 ++++++++++++++++---------------- 2 files changed, 319 insertions(+), 319 deletions(-) diff --git a/vs-build/FAST/FAST.vfproj b/vs-build/FAST/FAST.vfproj index 8ac4f0606f..39fed180f6 100644 --- a/vs-build/FAST/FAST.vfproj +++ b/vs-build/FAST/FAST.vfproj @@ -4,7 +4,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -34,7 +34,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -64,7 +64,7 @@ - + @@ -74,7 +74,7 @@ - + diff --git a/vs-build/FASTlib/FASTlib.vfproj b/vs-build/FASTlib/FASTlib.vfproj index db883c8c93..9f7edb8c78 100644 --- a/vs-build/FASTlib/FASTlib.vfproj +++ b/vs-build/FASTlib/FASTlib.vfproj @@ -77,7 +77,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -117,16 +117,16 @@ - + - - - - + + + + @@ -135,25 +135,25 @@ - - + + - - - + - + - + + + @@ -165,25 +165,25 @@ - - + + - - - + - + - + + + @@ -191,25 +191,25 @@ - - + + - - - + - + - + + + @@ -217,25 +217,25 @@ - - + + - - - + - + - + + + @@ -255,25 +255,25 @@ - - + + - - - + - + - + + + @@ -284,25 +284,25 @@ - - + + - - - + - + - + + + @@ -315,25 +315,25 @@ - - + + - - - + - + - + + + @@ -345,25 +345,25 @@ - - + + - - - + - + - + + + @@ -376,25 +376,25 @@ - - + + - - - + - + - + + + @@ -405,25 +405,25 @@ - - + + - - - + - + - + + + @@ -437,25 +437,25 @@ - - + + - - - + - + - + + + @@ -463,25 +463,25 @@ - - + + - - - + - + - + + + @@ -489,25 +489,25 @@ - - + + - - - + - + - + + + @@ -515,25 +515,25 @@ - - + + - - - + - + - + + + @@ -541,25 +541,25 @@ - - + + - - - + - + - + + + @@ -567,50 +567,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -619,50 +619,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -692,25 +692,25 @@ - - + + - - - + - + - + + + @@ -720,25 +720,25 @@ - - + + - - - + - + - + + + @@ -761,25 +761,25 @@ - - + + - - - + - + - + + + @@ -787,25 +787,25 @@ - - + + - - - + - + - + + + @@ -813,25 +813,25 @@ - - + + - - - + - + - + + + @@ -839,25 +839,25 @@ - - + + - - - + - + - + + + @@ -865,25 +865,25 @@ - - + + - - - + - + - + + + @@ -891,25 +891,25 @@ - - + + - - - + - + - + + + @@ -917,25 +917,25 @@ - - + + - - - + - + - + + + @@ -943,25 +943,25 @@ - - + + - - - + - + - + + + @@ -981,25 +981,25 @@ - - + + - - - + - + - + + + @@ -1010,40 +1010,40 @@ - - + + - - - + - + - + + + - - - + + + - + @@ -1053,25 +1053,25 @@ - - + + - - - + - + - + + + @@ -1087,25 +1087,25 @@ - - + + - - - + - + - + + + @@ -1117,25 +1117,25 @@ - - + + - - - + - + - + + + @@ -1143,25 +1143,25 @@ - - + + - - - + - + - + + + @@ -1169,50 +1169,50 @@ - - + + - - - + - + - + + + - - + + - - - + - + - + + + @@ -1235,42 +1235,42 @@ - + - + - - + + - - + + - - - + - + - + + + @@ -1281,25 +1281,25 @@ - - + + - - - + - + - + + + @@ -1307,25 +1307,25 @@ - - + + - - - + - + - + + + @@ -1341,25 +1341,25 @@ - - + + - - - + - + - + + + @@ -1373,25 +1373,25 @@ - - + + - - - + - + - + + + From 62b7beff329ea54fe92870ee4765efd339d9aa2c Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Mon, 11 Sep 2017 19:12:43 -0600 Subject: [PATCH 12/13] Fixed vs-build issues: DOUBLE_PRECISION, /warn:interfaces Correctly added back the /DDOUBLE_PRECISION flag for stand-along driver projects, and removed the /warn:interfaces option --- vs-build/AeroDyn/AeroDyn_Driver.vfproj | 76 ++++++++++++++----------- vs-build/BeamDyn/BeamDyn.vfproj | 16 +++--- vs-build/FASTlib/FASTlib.vfproj | 12 ++-- vs-build/HydroDyn/HydroDynDriver.vfproj | 4 +- vs-build/SubDyn/SubDyn.vfproj | 4 +- 5 files changed, 60 insertions(+), 52 deletions(-) diff --git a/vs-build/AeroDyn/AeroDyn_Driver.vfproj b/vs-build/AeroDyn/AeroDyn_Driver.vfproj index 00fbedc3a9..325ea7bad4 100644 --- a/vs-build/AeroDyn/AeroDyn_Driver.vfproj +++ b/vs-build/AeroDyn/AeroDyn_Driver.vfproj @@ -5,7 +5,7 @@ - + @@ -15,7 +15,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -45,7 +45,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -93,19 +93,19 @@ - - + + - - + + @@ -123,19 +123,19 @@ - - + + - - + + @@ -153,19 +153,19 @@ - - + + - - + + @@ -182,19 +182,19 @@ - - + + - - + + @@ -215,21 +215,29 @@ - - + + - - - - + + + + + + + + + + + + @@ -254,19 +262,19 @@ - - + + - - + + diff --git a/vs-build/BeamDyn/BeamDyn.vfproj b/vs-build/BeamDyn/BeamDyn.vfproj index a93aeea86f..9d373a520b 100644 --- a/vs-build/BeamDyn/BeamDyn.vfproj +++ b/vs-build/BeamDyn/BeamDyn.vfproj @@ -5,7 +5,7 @@ - + @@ -15,7 +15,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -45,7 +45,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/vs-build/FASTlib/FASTlib.vfproj b/vs-build/FASTlib/FASTlib.vfproj index 9f7edb8c78..7b178596f4 100644 --- a/vs-build/FASTlib/FASTlib.vfproj +++ b/vs-build/FASTlib/FASTlib.vfproj @@ -5,7 +5,7 @@ - + @@ -23,7 +23,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -104,7 +104,7 @@ - + diff --git a/vs-build/HydroDyn/HydroDynDriver.vfproj b/vs-build/HydroDyn/HydroDynDriver.vfproj index 2b94db4f30..8a5aefadc4 100644 --- a/vs-build/HydroDyn/HydroDynDriver.vfproj +++ b/vs-build/HydroDyn/HydroDynDriver.vfproj @@ -5,7 +5,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/vs-build/SubDyn/SubDyn.vfproj b/vs-build/SubDyn/SubDyn.vfproj index 7128aabb03..7a6f60baac 100644 --- a/vs-build/SubDyn/SubDyn.vfproj +++ b/vs-build/SubDyn/SubDyn.vfproj @@ -5,7 +5,7 @@ - + @@ -25,7 +25,7 @@ - + From 43028598cf773a432fb54a3ac7ee8326b793401d Mon Sep 17 00:00:00 2001 From: Greg Hayman Date: Mon, 11 Sep 2017 19:22:39 -0600 Subject: [PATCH 13/13] vs-build fixes for UnsteadyAero added back /DDOUBLE_PRECISION flag and corrected default float size for dierckx_fitpack.f when building double precision --- vs-build/UnsteadyAero/UnsteadyAero.vfproj | 120 +++++++++++----------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/vs-build/UnsteadyAero/UnsteadyAero.vfproj b/vs-build/UnsteadyAero/UnsteadyAero.vfproj index 6e868ef039..49d448e13c 100644 --- a/vs-build/UnsteadyAero/UnsteadyAero.vfproj +++ b/vs-build/UnsteadyAero/UnsteadyAero.vfproj @@ -5,7 +5,7 @@ - + @@ -15,7 +15,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -45,7 +45,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -97,222 +97,222 @@ - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +