WT_Perf Change Log ------------------ Ancient history: DarkPast - PROP created by Aerovironment Inc. 04/01/85 - PROPPC ported to the PC by J. David Kocurek of Computational Methodology Associates. Later - Modified for use by SERI/NREL by Jim Tangler. 1994 - Ported to SGI and slightly improved by Marshall Buhl of NREL-NWTC. 1.00 25-Apr-1996 M. Buhl Modified for variable speed. Many utility routines were stolen from some of Buhl's other programs. All propeller code was removed. Renamed to WT_Perf. Input file was reorganized. 1.10 29-Apr-1996 M. Buhl Modified to have which variables should be output as an input parameter. 1.20 10-May-1996 M. Buhl More clean-up. Fixed old bug where tip loss was not calculated if the hub radius was zero. Improved calculation of local wind shear by including the effect of shaft tilt and precone. Fixed old bug where local Q was calculated using tip-speed ratio instead of local speed ratio. Added ability to input metric and/or dimensional data. Rederived the equations for the rotor coefficients and dimensional data and changed the algorithms. Added date and time stamping of output files. 1.30 13-May-1996 M. Buhl More clean-up. I fixed up the metric and dimensional versions. I renamed the ratio variable to not have the ratio in them (e.g., I renamed HH_RATIO to HUB_HT). 1.40 14-May-1996 M. Buhl I rewrote the post-stall routines. I moved many one-time calculations to a new routine (SETUP_V) and stored them in a new common block and created the new include file (viterna.inc). I modified the Viterna calculations so they use the stall Cl and Cd instead of the last ones in the tables--this was an old bug. I cleaned up a few minor things. 1.50 14-May-1996 M. Buhl Added option for tab-delimited and fixed-width output. 1.51 15-May-1996 M. Buhl Fixed some minor bugs. 1.52 30-May-1996 M. Buhl Fixed a bug in setting the minimum/maximum number of sectors. 1.60 07-Jun-1996 M. Buhl I reordered the input file. 1.61 10-Jun-1996 M. Buhl I broke out the system-specific routines to sys_*.f for easy porting. I cleaned up some minor problems to do with porting to LF90. I fixed it so there are no newlines between segments of blade element data if there is only one section. I renamed STRLEN to STR_LEN and moved it into the sys_*.f files. For LF90, I use it to call LEN_TRIM. I moved GETARG to the sys_*.f files and renamed it GET_ARG. I had to create one using GETCL for LF90. I also needed to create a PARSE routine to break the command line into tokens (words). I put it in sys_pcl.f. 2.00 17-Jun-1996 M. Buhl I added the ECN 3D effects for Cl and Cd. I moved MAX_ITER from a compiled parameter to an input variable. I fixed it so that when we fail to converge, we actually see -999.99 instead of some other number. I added one digit of precision to the dimensional output variables. I created a new program PROP2WTP that converts PROP files to WT_Perf files. It uses the same include files and also the gen_use and sys_* files as WT_Perf. This should make it easier for folks to use this new program. 2.01 03-Oct-1996 M. Buhl I changed the FORMAT statement used to output I_SHFT so it was compatible with integers. I put in a test to make sure N_SEG doesn't exceed MAX_SEG (Thanks for finding that one, Palmer!). I added 2.02 26-Nov-1996 M. Buhl Palmer Carlin discovered that for high tip speed ratios and large pitch angles, the turbine acts like a fan and the angle of attack becomes a fairly large negative number. If the lift and drag tables do not cover the potential range, the interpolation routine would return silly values. I changed GET_COEF so that it prints an error message and stops. 2.03 08-May-1997 M. Buhl I eliminated the test for alpha being less than alpha_stall for the loss calculations. I eliminated the dummy argument N_SEG from PS_LIFT and PS_DRAG. I modified PRAND so that I don't waste time on calculations when the losses will be very small. I simplified the calculation of the advanced brake model. 2.04 30-May-1997 M. Buhl I decided that the thrust and torque per unit length for the blade element data should not be multiplied by the number of blades. It is now output as per blade. 2.05 17-Nov-1997 M. Buhl I changed the date format to use dd-mmm-ccyy. I also changed a lot of stuff to use F90 intrinsics. I ported to the DEC Visual Fortran compiler. Peter Schaffarczyk helped me find a way to make the code friendlier. If one entered a hub height so small the blade struck the ground, then the shear equations would blow up. I put in a check to make sure the hub was high enough during the input phase. 2.06 06-Feb-1998 M. Buhl I ported WT_Perf to Sun Fortran 90 and may a few minor changes. 2.07 20-Aug-1998 M. Buhl I changed the axial induction-factor calculation to eliminate applying the tip-loss correction factor twice. The new equation is 4aF(1-a)=Ch instead of 4aF(1-aF)=Ch. I also modified the use of Glauert's empirical formula so that the coefficients of the quadratic are now a function of the losses. I also eliminated the IND_FACT routine and simplified the calculation of both the inducation factors (IF) so that the new IF is the average of the old and the proposed IFs. I also changed the IF iteration tolerance to 1e-7 and changed it so both a and a' use the same tolerance. The old version made the a' 10 times harder to converge. I added the program name, version, and version date to the blade element output files. 2.08 16-Dec-1998 M. Buhl I modified INT2LSTR to compute the length of the resulting string. 2.10 23-Jun-1999 M. Buhl I modified the induction-factor calculations so that they used the drag terms. This is how BLADED does it. 2.11 07-Oct-1999 M. Buhl I modified the output format for the Cp data when generating column- delimited files so that the numbers line up correctly. 2.12 08-Oct-1999 M. Buhl I modified the induction convergence so it uses a method similar to AeroDyn to prevent jumping over the solution. 2.20 25-Oct-2000 M. Buhl I removed the drag terms from the induction equations that I had added in v2.10. I cleaned out some alpha-code left over from the code runoff. 2.21 25-Jan-2001 M. Buhl Jason Jonkman found that the pitch values listed in the output file did not agree with that in the input file. For some unknown reason, I was adding the tip twist to the pitch value for the output. 3.00a-mlb 17-Nov-2003 M. Buhl I rewrote the code in Fortran 95. I made some changes to the input file and disabled all the 3D stuff. I fixed it so it used the standard NWTC routines. I made very few changes to the algorithms. I got identical answers for the original test case. 3.00b-mlb 18-Mar-2004 M. Buhl I eliminated the old style of including airfoil tables in the main input file and changed it so it uses AeroDyn input files. I also created a new style for the airfoil tables and the code reads both styles. The airfoil-reading routines were put into NWTC_Subs. I added Reynolds number interpolation. I reordered the main input file some. I modified the induction equations so that the user can choose whether to include the drag terms or not. I added the option to decide whether to use the old PROP induction or the newer PROPX/AeroDyn algorithm. I added the PROPX algorithm. I moved the output sections of the input file to the end of the file. I fixed the flap-load equation to compute it at the hub radius and to account for the fact that rotor could be preconed. I replaced the equations to calculate the element Ct, Cp, and Cq with equations Pat Moriarty gave me. It improved the correlation to the rotor Cp. I added the total losses to the element file. 3.00c-mlb 22-Apr-2004 M. Buhl I added the variable "Yaw" to the input file and modified WTP_Subs.f90\GetData() to read it. I modified the calculation for the minimum number of sectors to also check for yaw error. I modified the VWndNorm and VWndTang calculations to account for yaw. I created new non-dimensional variables for hub radius and hub height so that it is clear in the code which is being used at any given time and to avoid repetetive multiplications. I rederived the equations for the normal and tangential wind speed and used them in WTP_Subs.f90\GetVel(). 3.00d-mlb 22-Apr-2004 M. Buhl I changed the blade-element data to mimic what we plan to make AeroDyn look like in the future and allowed variably spaced elements. I modified it so that only unique airfoil tables are read in as is done in AeroDyn. 3.00e-mlb 12-May-2004 M. Buhl I changed all occurances of Rn to Re to use the most-common notation for Reynolds number. I eliminated most calling arguments on WTP_Subs.f90\GetVel() because they conflicted with the ones in the WTP_Data() module. I retained only VWndNorm. I got rid of the old speed stepping logic because it had been replaced long ago by the DO counters. It was sometimes causing the last step to be skipped. 3.00f-mlb 15-Jun-2004 M. Buhl I added the new combined-case parameter-specification format. I moved almost all of the analysis and I/O from the main program to subroutines in WTP_Subs.f90. They are CombCase, ParmAnal (the old method), and RotAnal, which is the inner part of the analysis (covers all sectors and segments). Many variables were moved from the main program to WTP_Mods. I had to make changes to the output section of the input file. I added the new KFact flag to the output section of the input file. This flag allows the users to say if (s)he wants output in K. For example, thrust would be in kN instead of N. I added an extra digit of precision to the output. 3.10a-mlb 22-Jun-2004 M. Buhl I added Cq as an output parameter for combined-case analyses. 3.10b-mlb 02-Jul-2004 M. Buhl I modified the code to work with the new version of the NWTC library (v1.00a-mlb). In Crunch.f90\Crunch(), I changed the call to SetVersion to a call to SetProg and renamed SetVersion.f90 to SetProg.f90 and renamed that routine. I added the initialization of the program name to that routine and removed ProgName and ProgVer from WTP_Mods.f90\ProgGen(); those variables are now in NWTC_Mods\ProgMod().