<commit_before>InflowWind Change Log
===============================================================================
Initial release with AeroDyn v13.00.00a-bjj

Updates:
-------------------------------------------------------------------------------
v1.00.01a-bjj
 -  I added the version number to this set of subroutines.
 -  I fixed a bug (first reported by <NAME>) where the subroutines did not
      allow HH files with only 1 line of data.
 -  I fixed a potential problem that would cause the program to crash ungracefully
      if the first byte of the FF file is invalid. Now it will print an error
      message and return to the calling routine.
 -  I added a parameter for undefined WindType instead of just using 0 all the
      time. I wanted people to see that 0 is not allowed for new wind types
      when they look at SharedTypes.f90.
 -  I added the ability to read wind files generated in HAWC format.
 -  I replaced the logic used to determine if the file names in the CTP input
      file were relative with the new FUNCTION PathIsRelative() from the
      NWTC Library v1.04.00a-bjj.
 -  I fixed some logic in GetWindType() that incorrectly identified the file
      extension for files entered with no extension but with "." entered as
      the current directory (e.g. ".\wind\test" or "..\wind\AnotherTest")

 v1.00.01b-bjj 14-Nov-2011
 -  In HAWCWind.f90, I modified HW_Init(): The error statement after reading
      from the binary files is more descriptive. The read statement was fixed
      so that the code could be compiled in double precision while still reading
      binary data stored in single precision .

v1.01.00a-bjj, 01-Aug-2012
 -  I updated FFWind.f90 to read TurbSim periodic wind files. ".bts" files contain
      information to determine if the file contains a full period; ".sum" files
      corresponding to ".wnd" binary files contain text to relay this information.
      If the file is periodic, the first grid in the file is located at X=0 m;
      otherwise it is located at X=GridWidth/2 m (like it worked before). Periodic
      files will not have interpolation errors because the wind file is too short.

v1.01.00b-bjj, 10-Aug-2012, <NAME>
  - I fixed an error in the interpolation of tower files in the new
      periodic scheme when the time fell exactly between the two periods.

v2.00.00a-adp, 18-Mar-2013, <NAME>
  - Converted to the FAST framework.  The following major architectural changes
    were made in this process:
     -- removed all "adhack" routines
     -- created wrapper subroutine IfW_Init which interfaces with Init routines of
        submodules.  Placeholders exist for submodules not yet converted.
     -- split out InflowWind subroutines into a separate file
     -- created wrapper subroutine IfW_CalcOutput which interfaces with CalcOutput
        routines of submodules.  Placeholders exist for submodules not yet converted.
     -- created wrapper subroutine IfW_End which interfaces with _End routines of
        all submodules.  Placeholders exist for submodules not yet converted.
     -- Converted the FFWind.f90 submodule into the new framework.  Several functions
        were converted to subroutines.  Now comprised of IfW_FFWind.f90 and
        IfW_FFWind_Types.f90.
     -- Converted the HHWind.f90 submodule into the new framework.  Several functions
        were converted to subroutines.  Now comprised of IfW_HHwind.f90 and
        IfW_HHWind_Types.f90.
     -- removed all global variables and placed them within derived types defined by
        the FAST registry.  Created registry files (which are used by the FAST registry
        to autogenerate the _Types.f90 files.
     -- added error trapping to warn the user of file types that are not currently
        supported by this version.
     -- created rudimentary module drivers for IfW_FFWind, IfW_HHWind, and InflowWind.
  - Modifications were made for compatibility with NWTC_Library version 2.x.  This
     included changes in ErrMsg and ErrStat handling.

v2.00.00b-adp, 17-Sept-2013, <NAME>
  - reintroduced ADHack routines needed for the release of FAST 8 (partial conversion
     of AeroDyn -- will be removed when AeroDyn conversion is completed)
  - Updates to work with newer version of NWTC_Library 2.0
  - Bug fix for how the modulo statement worked with periodic windfiles (resulting in
     crashes)
  - Updates to the framework according changes made in the FAST modularization
     framework in July of 2013
  - Bug fix for how allocation of position arrays was handled in the driver routines.

v2.00.01b-bjj, 30-June-2014, <NAME>

+ I fixed a problem that made "HEIGHT OFFSET" a non-optional line in the FF Wind summary files.
  This happened when I added the PERIODIC line, which is also optional. This bug was transferred
  from the trunk a while ago.
+ I updated the error handling in IfW_FFWind.f90 and InflowWind.f90 (now calls routine in NWTC Library).
+ Fixed problems with error handling after calling CalcOutput for HH and FF wind files. (Errors didn't
  get passed on to the glue code.)
+ I call WrScr instead of passing a message about reading the wind files (we do this because it may
  take a while, and this allows people to know what's going on)
+ made WriteOutputUnt for HH files consistent with FF files.
+ updated types files with latest Registry executable.




 To Do:
 - Create new input file for the module
 - remove all *_ADHack_* subroutines (reintroduced for integration with AeroDyn)
 - Split FF wind type into different categories (BLADED, TurbSim, TurbSim's BLADED)
 - add ability to superimpose wind types
 - add user-defined wind profile?
 - add steady wind case (no turbulence, just add the wind profile from HAWC?)
 - add CTWind capability to test program (?)
 - convert CTWind, FDWind, HAWCWind, and UserWind to the modular framework
 - create driver routines for the above modules
 - create test routines<commit_msg>Updated changelog to reflect all the changes from July 2014 until now.  I don't think we released a version of this during this time, so I lumped all the changes into a single entry in the changelog.<commit_after>InflowWind Change Log
===============================================================================
Initial release with AeroDyn v13.00.00a-bjj

Updates:
-------------------------------------------------------------------------------
v1.00.01a-bjj
 -  I added the version number to this set of subroutines.
 -  I fixed a bug (first reported by <NAME>) where the subroutines did not
      allow HH files with only 1 line of data.
 -  I fixed a potential problem that would cause the program to crash ungracefully
      if the first byte of the FF file is invalid. Now it will print an error
      message and return to the calling routine.
 -  I added a parameter for undefined WindType instead of just using 0 all the
      time. I wanted people to see that 0 is not allowed for new wind types
      when they look at SharedTypes.f90.
 -  I added the ability to read wind files generated in HAWC format.
 -  I replaced the logic used to determine if the file names in the CTP input
      file were relative with the new FUNCTION PathIsRelative() from the
      NWTC Library v1.04.00a-bjj.
 -  I fixed some logic in GetWindType() that incorrectly identified the file
      extension for files entered with no extension but with "." entered as
      the current directory (e.g. ".\wind\test" or "..\wind\AnotherTest")

 v1.00.01b-bjj 14-Nov-2011
 -  In HAWCWind.f90, I modified HW_Init(): The error statement after reading
      from the binary files is more descriptive. The read statement was fixed
      so that the code could be compiled in double precision while still reading
      binary data stored in single precision .

v1.01.00a-bjj, 01-Aug-2012
 -  I updated FFWind.f90 to read TurbSim periodic wind files. ".bts" files contain
      information to determine if the file contains a full period; ".sum" files
      corresponding to ".wnd" binary files contain text to relay this information.
      If the file is periodic, the first grid in the file is located at X=0 m;
      otherwise it is located at X=GridWidth/2 m (like it worked before). Periodic
      files will not have interpolation errors because the wind file is too short.

v1.01.00b-bjj, 10-Aug-2012, <NAME>
  - I fixed an error in the interpolation of tower files in the new
      periodic scheme when the time fell exactly between the two periods.

v2.00.00a-adp, 18-Mar-2013, <NAME>
  - Converted to the FAST framework.  The following major architectural changes
    were made in this process:
     -- removed all "adhack" routines
     -- created wrapper subroutine IfW_Init which interfaces with Init routines of
        submodules.  Placeholders exist for submodules not yet converted.
     -- split out InflowWind subroutines into a separate file
     -- created wrapper subroutine IfW_CalcOutput which interfaces with CalcOutput
        routines of submodules.  Placeholders exist for submodules not yet converted.
     -- created wrapper subroutine IfW_End which interfaces with _End routines of
        all submodules.  Placeholders exist for submodules not yet converted.
     -- Converted the FFWind.f90 submodule into the new framework.  Several functions
        were converted to subroutines.  Now comprised of IfW_FFWind.f90 and
        IfW_FFWind_Types.f90.
     -- Converted the HHWind.f90 submodule into the new framework.  Several functions
        were converted to subroutines.  Now comprised of IfW_HHwind.f90 and
        IfW_HHWind_Types.f90.
     -- removed all global variables and placed them within derived types defined by
        the FAST registry.  Created registry files (which are used by the FAST registry
        to autogenerate the _Types.f90 files.
     -- added error trapping to warn the user of file types that are not currently
        supported by this version.
     -- created rudimentary module drivers for IfW_FFWind, IfW_HHWind, and InflowWind.
  - Modifications were made for compatibility with NWTC_Library version 2.x.  This
     included changes in ErrMsg and ErrStat handling.

v2.00.00b-adp, 17-Sept-2013, <NAME>
  - reintroduced ADHack routines needed for the release of FAST 8 (partial conversion
     of AeroDyn -- will be removed when AeroDyn conversion is completed)
  - Updates to work with newer version of NWTC_Library 2.0
  - Bug fix for how the modulo statement worked with periodic windfiles (resulting in
     crashes)
  - Updates to the framework according changes made in the FAST modularization
     framework in July of 2013
  - Bug fix for how allocation of position arrays was handled in the driver routines.

v2.00.01b-bjj, 30-June-2014, <NAME>

+ I fixed a problem that made "HEIGHT OFFSET" a non-optional line in the FF Wind summary files.
  This happened when I added the PERIODIC line, which is also optional. This bug was transferred
  from the trunk a while ago.
+ I updated the error handling in IfW_FFWind.f90 and InflowWind.f90 (now calls routine in NWTC Library).
+ Fixed problems with error handling after calling CalcOutput for HH and FF wind files. (Errors didn't
  get passed on to the glue code.)
+ I call WrScr instead of passing a message about reading the wind files (we do this because it may
  take a while, and this allows people to know what's going on)
+ made WriteOutputUnt for HH files consistent with FF files.
+ updated types files with latest Registry executable.


v3.00.00a-adp through v3.01.00a-adp (10-Aug-2015, <NAME>)
  - changed all licensing to the Apache2 license
  - new driver code with input file and command line options, and verbose output options for testing
  - driver code is capable of extracting a grid of wind data
  - addition of an input file for control of IfW
  - addition of summary file output to summarize wind type and parameters used
  - renaming of hub-height wind type to UniformWind
  - completed conversion to the FAST modular framework including the full-field, HAWC, user, uniform, and steady wind options and submodules.
  - split full field wind into TurbSim and Bladed-style submodules
  - addition of steady wind option that does not require an wind file
  - added ability to rotate the entire wind field (using meteorological wind direction convention)
  - added OutList parameters for outputing wind velocities at specified points to the FAST output file
  - restructured submodules somewhat (they no longer follow the FAST modular framework entirely) for cleaner, more robust code
  - added a IfW_UserWind.f90 template file for user developed wind files
  - added lidar module
  - converted to always use single precision for smaller memory footprint



 To Do:
 - remove all *_ADHack_* subroutines (reintroduced for integration with AeroDyn)
 - add ability to superimpose wind types
 - add coherent turbulence back into InflowWind
 - add CTWind capability to test program (?)
 - convert CTWind to the modular framework
{'fraction_non_alphanumeric': 0.06720098643649815, 'fraction_numerical': 0.020114056720098642, 'mean_word_length': 3.180734536082474, 'pattern_counts': {'":': 0, '<': 14, '<?xml version=': 0, '>': 14, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3337934', 'n_tokens_mistral': 3646, 'n_tokens_neox': 3303, 'n_words': 1789}