一份basic文件转化成c文件(自己收藏)

 
basic的原文件,先通过BCX转化器,转化一下,注意转化过来的东东,错误是N的多哦。
得动手自己修改:
10   REM  *****************************************************************
20   REM  *      IEEE METHOD  -  TRANSIENT OR STEADY STATE CALCULATION
30   REM  *    OF BARE OVERHEAD CONDUCTOR TEMPERATURE OR THERMAL RATING
40   REM  *                 LAST MODIFIED  11 / 7 / 97  BY DAD
50   REM  *                PROGRAM NAME IS  " IEEE738SI.BAS "
60   REM  *                  LANGUAGE IS  " QUICK BASIC "
70   REM  *         ASSUMES SI UNITS FOR INPUT FILE
80   REM  *
90   REM  *
240  REM  *   IN COMPARISON WITH THE  1986  VERSION OF THIS PROGRAM, PROVIDED
250  REM  *   BY THE IEEE, THE  1993  VERSION ADDED THE FOLLLOWING FEATURES:
260  REM  *
290  REM  *      -  INITIAL CONDUCTOR TEMP OR CURRENT CAN BE USED IN
300  REM  *         TRANSIENT CALCULATIONS
330  REM  *      -  VERY SHORT DURATION  " FAULT "  CURRENTS AS LARGE AS 1E6
340  REM  *         AMPERES FOR TIMES AS SHORT AS  0.01  SEC CAN BE USED
350  REM  *      -  THE ORIGINAL NUMERICAL ITERATION METHOD HAS BEEN
360  REM  *         REPLACED WITH A MUCH MORE EFFICIENT METHOD
370  REM  *      -  FOR ACSR CONDUCTOR, THE HEAT CAPACITY OF THE STEEL CORE
380  REM  *         AND THE OUTER ALUM STRANDS ARE ENTERED SEPARATELY.
390  REM  *
392  REM  *   THIS VERSION IS CONSISTENT WITH IEEE STD  738 - 2006
394  REM  *      -  THE SOLAR MODEL ALLOWS ANY HOUR AND LATITUDE
396  REM  *      -  THE AIR PROPERTIES ARE CALCULATED WITH CLOSED FORM EQUATIONS
398  REM  *      -  THIS PROGRAM AND EQUATIONS USE SI UNITS
400  REM  **************************************************************
410  REM  ***********************************
420  REM  *  INITIALIZE VARIABLES AND ARRAYS  *
430  REM  ***********************************
440  DIM ATCDR( 1000 )
450  DIM TIME( 1000 )
460  FLAG1  =   0
470  XIDUMMY  =   0
480  XIPRELOAD  =   0
490  XISTEP  =   0
500  TCDR  =   0
510  TCDRPRELOAD  =   0
520  TCDRMAX  =   0
530  IORTPRELOAD  =   0
540  DELTIME  =   0
550  FS1  =   0
560  FS2  =   0
570  FS3  =   0
580  X$  =  STRING$( 56 45 )
590  REM  *******************************
600  REM  *  START REPEAT CALCULATION HERE
610  REM  *******************************
620  FOR KI  =   1  TO  1000
630  ATCDR(KI)  =   0
640  TIME(KI)  =   0
650  NEXT KI
660  NFLAG  =   0
670  PI  =   3.141593
672  PIANG  =  PI  /   180 !
680  IF FLAG1  =   99  GOTO  1120
690  REM  ************************************************
700  REM  *  SPECIFY DATA INPUT ASCII FILE NAME
710  REM  ************************************************
720  CLS
730  INPUT  " ENTER INPUT FILE NAME  " , F$: OPEN F$ FOR INPUT AS # 1
780  REM  ***********************************
790  REM  *   SPECIFY HOW DATA IS TO BE OUTPUT
800  REM  ***********************************
810  PRINT  " DO YOU WANT THE OUTPUT TO GO TO SCREEN ONLY(0), FILE ONLY(1), "
820  INPUT  "        OR TO BOTH SCREEN AND FILE(2)?  " , SORF
830  IF SORF  <>   0  AND SORF  <>   1  AND SORF  <>   2  THEN GOTO  810
840  IF SORF  <>   0  THEN INPUT  " ENTER OUTPUT FILE NAME   " , FOUT$: OPEN FOUT$ FOR OUTPUT AS # 2
845  INPUT  " DO YOU WANT DEBUG CHECKS? YES (0), NO(1)  " , DEBUG
850  REM  ************************************************************
860  REM  *  ENTER DATA FROM INPUT FILE
870  REM  ************************************************************
880  GOSUB  8000
1120  REM  *****************************************
1130  REM  *  CALCULATE SOLAR HEAT INPUT TO CONDUCTOR
1140  REM  *****************************************
1150  GOSUB  5000
1160  REM  **************************************************************
1170  REM  *  CALCULATE THERMAL COEF OF RESISTANCE  &  WIND ANGLE CORRECTION
1180  REM  **************************************************************
1190  GOSUB  9000
1200  REM  ********************************
1210  REM  *  SELECT THE CALCULATION DESIRED
1220  REM  ********************************
1230  ON NSELECT GOTO  1500 1240 1460 1460
1240  REM  ********************************************************************
1250  REM  *                    FOR NSELECT  =   2
1260  REM  *  GO TO AMPACITY SUBROUTINE TO CALCULATE THE STEADY STATE
1270  REM  *  CURRENT (TR) GIVEN THE STEADY STATE CONDUCTOR TEMPERATURE (TCDR)
1280  REM  *  THE CONDUCTOR TEMPERATURE IS GIVEN SO ONLY ONE PASS THROUGH
1290  REM  *  THE SUBROUTINE IS REQUIRED.
1300  REM  ********************************************************************
1310  TCDR  =  TCDRPRELOAD
1320  GOSUB  15000
1330  GOTO  1730
1340  REM  ********************************************************************
1350  REM
1360  REM  ********************************************************************
1370  REM  *                    FOR NSELECT  =   1 , 3 ,OR  4
1380  REM  *  GO TO AMPACITY SUBROUTINE REPEATEDLY IN ORDER TO CALCULATE
1390  REM  *  THE STEADY STATE CURRENT (TR) CORRESPONDING TO TRIAL VALUES OF
1400  REM  *  CONDUCTOR TEMPERATURE (TCDR).  IF T = 1  THEN THE OUTPUT OF THE
1410  REM  *  SUBROUTINE, TR, IS THE STEADY STATE CURRENT FOR
1420  REM  *  WHICH A STEADY STATE TEMPERATURE WAS TO BE FOUND.
1430  REM  *  IF T = 3  OR  4  AND IORTPRELOAD = 1 , THEN TR IS THE INITIAL PRE - STEP
1440  REM  *  CHANGE CURRENT FOR WHICH AN INITIAL TEMPERATURE WAS TO BE CALCULATED.
1450  REM  *********************************************************************
1460  ON IORTPRELOAD GOTO  1500 1650
1470  REM  ********************************************
1480  REM  *  CALCULATE TCDR GIVEN XIDUMMY  =  XIPRELOAD  *
1490  REM  ********************************************
1500  XIDUMMY  =  XIPRELOAD
1510  NFLAG  =   0
1520  GOSUB  13000
1530  TCDRPRELOAD  =  TCDR
1540  REM  ***************************************************************
1550  REM  *  FOR NSELECT  =   1   THE PROGRAM HAS FOUND THE STEADY STATE CONDUCTOR
1560  REM  *  TEMPERATURE (TCDRPRELOAD) CORRESPONDING TO THE GIVEN STEADY STATE
1570  REM  *  CURRENT (XIPRELOAD) AND CONTROL IS PASSED TO THE PRINTOUT SECTION
1580  REM  ***************************************************************
1590  IF NSELECT  =   1  THEN  1730
1600  REM  *****************************************************************
1610  REM  *  FOR NSELECT  =   3  OR  4 , THE PROGRAM HAS DETERMINED (IORTPRELOAD = 1 ) OR BEEN
1620  REM  *  GIVEN (IORTPRELOAD = 2 ) THE INITIAL STEADY STATE CONDUCTOR TEMPERATURE
1630  REM  *  AND CONTROL PASSES TO FURTHUR TRANSIENT  CALCULATIONS
1640  REM  *****************************************************************
1650  IF NSELECT  =   4  THEN GOSUB  10000
1660  REM  *************************************************************
1670  REM  *  BEGIN CALCULATION OF CONDUCTOR TEMP AS A FUNCTION OF TIME
1680  REM  *  FOR A STEP INCREASE IN ELECTRICAL CURRENT,  NSELECT  =   3
1690  REM  *************************************************************
1700  ET  =   3600 !
1710  XISTEP  =  XISTEP
1720  GOSUB  11000
1730  REM  *************************
1740  REM  *  PRINT RESULTS TO SCREEN
1750  REM  *************************
1760  IF SORF  =   0  OR SORF  =   2  THEN GOSUB  6000
1770  REM  ***********************
1780  REM  *  WRITE RESULTS TO FILE
1790  REM  ***********************
1800  IF SORF  =   1  OR SORF  =   2  THEN GOSUB  16000
1810  REM IF FS  =   1  GOTO  1880
1820  IF NS  <  NSETS THEN GOTO  880  ELSE CLOSE # 1
1830  IF SORF  =   1  OR SORF  =   2  THEN CLOSE # 2
1840  GOTO  1930
1850  REM  ********************************************
1860  REM  *  SETUP TO REPEAT PROGRAM CALCULATIONS WITH NEW DATA
1870  REM  ********************************************
1880  REM INPUT  " DO YOU WANT TO RUN THE PROGRAM AGAIN (YES = 1, NO = 2) " , YN
1890  REM IF YN  <>   1  AND YN  <>   2  THEN GOTO  1880
1900  REM IF YN  =   2  GOTO  1920
1910  REM IF YN  =   1  THEN FLAG1  =   99 : RESTORE: GOTO  620
1920  REM IF SORF  =   1  OR SORF  =   2  THEN CLOSE # 2
1930  END
5000  REM  /////////////////////////////////////////////////////////
5010  REM  /  SUBROUTINE TO CALCULATE CONDUCTOR SOLAR HEAT GAIN (QS)
5020  REM  /////////////////////////////////////////////////////////
5030  IF SUN.TIME  >=   24  THEN  5560
5040  DEG.TO.RAD  =  PI  /   180 !
5050  CDR.LAT.RAD  =  CDR.LAT.DEG  *  DEG.TO.RAD
5060  REM  *  SOLAR DECLINATION
5070  DECL.DEG  =   23.4583   *  SIN((( 284   +  NDAY)  /   365 *   2   *  PI)
5080  DECL.RAD  =  DECL.DEG  *  DEG.TO.RAD
5090  REM  *  SOLAR ANGLE RELATIVE TO NOON
5100  HOUR.ANG.DEG  =  (SUN.TIME  -   12 *   15
5110  HOUR.ANG.RAD  =  HOUR.ANG.DEG  *  DEG.TO.RAD
5120  REM  *  FIND SOLAR ALTITUDE  -  H3
5130  H3ARG  =  COS(CDR.LAT.RAD)  *  COS(DECL.RAD)  *  COS(HOUR.ANG.RAD)  +  SIN(CDR.LAT.RAD)  *  SIN(DECL.RAD)
5140  H3.RAD  =  ATN(H3ARG  /  SQR( 1   -  H3ARG  ^   2 ))
5150  H3.DEG  =  H3.RAD  /  DEG.TO.RAD
5160
5170  IF A3  =   1  THEN  5290
5180  REM  ***************************************************************
5190  REM  *  SOLAR HEATING (Q3) AT EARTH SURFACE (W / M2) IN CLEAR AIR (P6)
5200  REM  ***************************************************************
5210  Q3  =   - 42.2391   +   63.8044   *  H3.DEG  -   1.922   *  H3.DEG  ^   2
5220  Q3  =  Q3  +  . 034692   *  H3.DEG  ^   3   -   3.6112E-04   *  H3.DEG  ^   4
5230  Q3  =  Q3  +   1.9432E-06   *  H3.DEG  ^   5   -   4.0761E-09   *  H3.DEG  ^   6
5240  B$  =   " CLEAR "
5250  GOTO  5330
5260  REM  *****************************************************************
5270  REM  *  SOLAR HEAT (Q3) AT EARTH SURFACE (W / M2) IN INDUSTRIAL AIR (P6)
5280  REM  *****************************************************************
5290  Q3  =   53.1821   +   14.211   *  H3.DEG  +  . 66138   *  H3.DEG  ^   2
5300  Q3  =  Q3  -  . 031658   *  H3.DEG  ^   3   +   5.4654E-04   *  H3.DEG  ^   4
5310  Q3  =  Q3  -   4.3446E-06   *  H3.DEG  ^   5   +   1.3236E-08   *  H3.DEG  ^   6
5320  B$  =   " INDUSTRIAL "
5330  REM  *  CALCULATE SOLAR AZIMUTH VARIABLE, CHI
5335  IF DEBUG  =   0  THEN PRINT # 2 "  Q3 =  " ; Q3
5340  CHI.DENOM  =  SIN(CDR.LAT.RAD)  *  COS(HOUR.ANG.RAD)  -  COS(CDR.LAT.RAD)  *  TAN(DECL.RAD)
5350  CHI  =  SIN(HOUR.ANG.RAD)  /  CHI.DENOM
5360  REM  *  CALCULATE SOLAR AZIMUTH CONSTANT, CAZ
5370  IF HOUR.ANG.DEG  <   0  AND CHI  >=   0  THEN
        CAZ 
=   0
5380  ELSEIF HOUR.ANG.DEG  >=   0  AND CHI  <   0  THEN
        CAZ 
=   360
5390  ELSE
        CAZ 
=   180
5495  END IF
5400  REM  *  CALCULATE SOLAR AZIMUTH IN DEGREES, Z4.DEG
5410  Z4.DEG  =  CAZ  +  ATN(CHI) / DEG.TO.RAD
5420  Z4.RAD  =  Z4.DEG  *  DEG.TO.RAD
5510  Z1.RAD  =  Z1.DEG  *  DEG.TO.RAD
5520  E1  =  COS(H3.RAD)  *  COS(Z4.RAD  -  Z1.RAD)
5530  E2.RAD  =  ATN(SQR( 1   /  E1  ^   2   -   1 ))
5540  QS  =  ABSORP  *  Q3  *  SIN(E2.RAD)  *  D  /   1000   *  ( 1   +  . 0001148   *  CDR.ELEV  -   1.108E-08   *  CDR.ELEV  ^   2 )
5545  IF DEBUG  =   0  THEN PRINT # 2 "  QS =  " ; QS
5550  GOTO  5570
5560  QS  =   0 !
5570  RETURN
6000  REM  //////////////////////////////////////////////
6010  REM  /  SUBROUTINE TO PRINT OUTPUT TO MONITOR SCREEN
6020  REM  //////////////////////////////////////////////
6030  REM  *****************
6040  REM  *  PRINT TO SCREEN
6050  REM  *****************
6060  CLS
6070  PRINT
6080  PRINT X$
6090  PRINT  "  IEEE STD 738-2006 METHOD OF CALCULATION "
6100  PRINT
6110  PRINT  " AIR TEMPERATURE =  " ; TAMB;  "  DEG C  & " ;
6130  PRINT  " WIND SPEED IS  " ; VWIND;  "  M / SEC "
6140  PRINT USING  " THE ANGLE BETWEEN WIND AND CONDUCTOR IS ### DEG " ; WINDANG.DEG
6150  PRINT USING  " THE CONDUCTOR IS #####. M ABOVE SEA LEVEL; " ; CDR.ELEV
6160  PRINT USING  " AND ###.# DEG FROM NORTH;  AT A LATITUDE OF ###.# DEG " ; Z1.DEG; CDR.LAT
6170  PRINT  " THE SUN TIME IS  " ; SUN.TIME;  " HOURS & " "  THE ATMOSPHERE IS  " ; B$
6180  PRINT
6240  PRINT  " CONDUCTOR DIAMETER IS  " ; D;  "  MM "
6250  PRINT USING  " CONDUCTOR RESISTANCE IS ##.#### OHMS/KM AT #### DEG C " ; RLO  *   1000 ; TLO
6260  PRINT USING  "                     AND ##.#### OHMS/KM AT #### DEG C " ; RHI  *   1000 ; THI
6270  PRINT  " COEF OF EMISSIVITY =  " ; EMISS;  "  & COEF OF ABSORPTIVITY =  " ; ABSORP
6280  IF NSELECT  =   3  OR NSELECT  =   4  GOTO  6490
6290  PRINT
6350  PRINT USING  " SOLAR HEAT INPUT IS   ####.### WATTS PER CONDUCTOR METER " ; QS
6360  PRINT USING  " RADIATION COOLING IS  ####.### WATTS PER CONDUCTOR METER " ; QR
6370  PRINT USING  " CONVECTIVE COOLING IS ####.### WATTS PER CONDUCTOR METER " ; QC
6380  PRINT
6390  IF NSELECT  =   1  THEN GOTO  6440
6400  PRINT USING  " GIVEN A MAXIMUM CONDUCTOR TEMPERATURE OF #####.# DEG C, " ; TCDRPRELOAD
6410  PRINT USING  " THE STEADY STATE THERMAL RATING IS ######.# AMPERES " ; TR
6420  GOSUB  7000
6430  RETURN
6440  IF XIPRELOAD  =   1.111  THEN XIPRELOAD  =   0
6450  PRINT USING  " GIVEN A CONSTANT CURRENT OF #####.# AMPERES, " ; XIPRELOAD
6460  PRINT USING  " THE CONDUCTOR TEMPERATURE IS ####.# DEG C " ; TCDRPRELOAD
6470  GOSUB  7000
6480  RETURN
6490  REM PRINT
6500  PRINT  "     ******* TRANSIENT THERMAL CALCULATIONS ******* "
6510  PRINT USING  " INITIAL STEADY STATE CONDUCTOR TEMP =   ###.# DEG C " ; TCDRPRELOAD
6520  IF IORTPRELOAD  =   1  THEN PRINT USING  " FOR A PRE-STEP STEADY STATE CURRENT = #####.# AMPERES " ; XIPRELOAD
6530  IF HNH  =   2  THEN GOTO  6610
6550  PRINT USING  "                       HEAT CAPACITY =  ####.# WATTS-SEC/M-C " ; HEATCAP
6560  GOTO  6630
6610  PRINT USING  "                   CORE HEAT CAPACITY = ####.# WATTS-SEC/M-C " ; HEATCORE
6620  PRINT USING  "    OUTER STRAND LAYERS HEAT CAPACITY = ####.# WATTS-SEC/M-C " ; HEATOUT
6630  IF NSELECT  =   4  THEN  6670
6640  PRINT  " THE TOTAL TIME OF INTEREST AFTER THE CURRENT "
6650  IF SORM  =   0  THEN PRINT USING  " INCREASES TO #######.# AMPS = ####.#### SECONDS " ; XISTEP; TT
6660  IF SORM  =   1  THEN PRINT USING  " INCREASES TO #######.# AMPS = ####.#### MINUTES " ; XISTEP; TT  /   60
6670  PRINT USING  " CALCULATION TIME INTERVAL =           ###.#### SECONDS " ; DELTIME
6680  IF ((ATCDR( 2 -  TAMB)  /  (ATCDR(KTIMEMAX)  -  TAMB))  <  . 05  THEN GOTO  6710
6690  PRINT  "  CALCULATION ACCURACY WOULD IMPROVE IF THIS TIME INTERVAL WERE REDUCED  "
6700  REM PRINT
6710  IF FLAG  =   0  OR HEATCORE  =   0  THEN  6730
6720  PRINT  " CORE HEAT CAPACITY IS IGNORED SINCE STEP DURATION LESS THAN 60 SEC "
6730  IF NSELECT  =   4  GOTO  6870
6740  IF ATCDR(KTIMEMAX)  <  TCDRMAX THEN GOTO  6780
6750  PRINT USING  " IT TAKES ####.#### SEC (####.#### MIN)  " ; TIME(KTIMEMAX); TIME(KTIMEMAX)  /   60 !
6760  PRINT  " TO REACH THE MAXIMUM ALLOWABLE CONDUCTOR TEMPERATURE  "
6770  PRINT USING  " OF ####.# DEGREES C " ; TCDRMAX
6780  GOSUB  7000
6790  FOR K  =   1  TO KTIMEMAX
6800  IF SORM  =   0  THEN PRINT USING  " TIME=#####.#### SEC   CDRTEMP= ####.# DEG C " ; TIME(K); ATCDR(K)
6810  IF SORM  =   1  THEN PRINT USING  " TIME=#####.#### MIN   CDRTEMP= ####.# DEG C " ; TIME(K)  /   60 ; ATCDR(K)
6820  IF K  <>   20  AND K  <>   40  AND K  <>   60  AND K  <>   80  THEN GOTO  6840
6830  GOSUB  7000
6840  NEXT K
6850  IF KTIMEMAX  <   20  THEN GOSUB  7000
6860  RETURN
6870  PRINT USING  " THE TRANSIENT THERMAL RATING =      ########.# AMPERES " ; XISTEP
6880  PRINT  " THAT IS, WITH THIS CURRENT, THE CDR TEMPERATURE JUST REACHES  "
6890  IF TT  >   60  THEN PRINT USING  " THE MAXIMUM OF ####.# DEG C IN ##.#### MINUTES " ; TCDRMAX; TT  /   60 !
6900  IF TT  <=   60  THEN PRINT USING  " THE MAXIMUM OF ####.# DEG C IN ###.#### SECONDS " ; TCDRMAX; TT
6910  GOSUB  7000
6920  RETURN
7000  REM  //////////////////////////////////////
7010  REM  /   SUBROUTINE TO FREEZE MONITOR SCREEN
7020  REM  //////////////////////////////////////
7030  PRINT X$
7040  PRINT  " PRESS PRTSC TO PRINT OR ANY KEY TO CONTINUE "
7050  FOR P  =   1  TO  1000000 !
7060  D$  =  INKEY$: IF LEN(D$)  <>   0  THEN  7090
7070  NEXT P
7080  CLS
7090  RETURN
8000  REM  ////////////////////////////////////////////////
8010  REM  /  SUBROUTINE TO ENTER INPUT DATA FROM ASCII FILE
8020  REM  ////////////////////////////////////////////////
8030  IF NS  =   0  THEN INPUT # 1 , FILENAM$, Z$: INPUT # 1 , NSETS, Z$
8040  NS  =  NS  +   1
8050  INPUT # 1 , COMMENT$, Z$
8060  REM INPUT # 1 , MOREIN, Z$
8070  REM INPUT # 1 , MOREOUT, Z$
8080  INPUT # 1 , NSELECT, Z$
8090  IF NSELECT  =   1  THEN  8130
8100  IF NSELECT  =   3  OR NSELECT  =   4  THEN  8180
8110  INPUT # 1 , TCDRPRELOAD, Z$
8120  GOTO  8300
8130  INPUT # 1 , XIPRELOAD, Z$
8140  GOTO  8300
8150  REM  *****************
8160  REM  *   TRANSIENT DATA
8170  REM  *****************
8180  INPUT # 1 , IORTPRELOAD, Z$
8190  IF IORTPRELOAD  =   1  THEN INPUT # 1 , XIPRELOAD, Z$
8200  IF IORTPRELOAD  =   2  THEN INPUT # 1 , TCDRPRELOAD, Z$
8210  IF NSELECT  =   4  THEN INPUT # 1 , TCDRMAX, Z$ ELSE TCDRMAX  =   1000
8220  IF NSELECT  =   3  THEN INPUT # 1 , XISTEP, Z$
8230  INPUT # 1 , SORM, Z$
8240  INPUT # 1 , TT, Z$
8250  INPUT # 1 , DELTIME, Z$
8260  IF SORM  =   1  THEN TT  =  TT  *   60
8270  REM  **************
8280  REM  *  WEATHER DATA
8290  REM  **************
8300  INPUT # 1 , TAMB, Z$
8310  INPUT # 1 , VWIND, Z$
8320  INPUT # 1 , WINDANG.DEG, Z$
8340  REM  *****************
8350  REM  *   CONDUCTOR DATA
8360  REM  *****************
8370  INPUT # 1 , C$, Z$
8380  INPUT # 1 , D, Z$
8390  INPUT # 1 , TLO, THI, Z$
8400  INPUT # 1 , RLO, RHI, Z$
8430  RLO  =  RLO  /   1000
8440  RHI  =  RHI  /   1000
8450  IF NSELECT  =   1  OR NSELECT  =   2  THEN  8510
8460  INPUT # 1 , HNH, Z$
8470  IF HNH  =   1  THEN INPUT # 1 , HEATOUT, Z$: HEATCORE  =   0
8480  IF HNH  =   2  THEN INPUT # 1 , HEATOUT, HEATCORE, Z$
8490  REM
8500  REM
8510  HEATCAP  =  HEATOUT  +  HEATCORE
8520  INPUT # 1 , EMISS, ABSORP, Z$
8530  INPUT # 1 , CDR.ELEV, Z$
8540  INPUT # 1 , Z1.DEG, Z$
8550  REM
8560  REM  *********************
8570  REM  *   SOLAR HEATING DATA
8580  REM  *********************
8590  INPUT # 1 , CDR.LAT, Z$
8600  INPUT # 1 , SUN.TIME, NDAY, Z$
8610  INPUT # 1 , A3, B$, Z$
8620  RETURN
9000  REM  ///////////////////////////////////////////////////////////////////////
9010  REM  /  SUBROUTINE TO CALCULATE THERM COEF OF RAC  &  HEATCAP  &  WIND CORRECTION
9020  REM  ///////////////////////////////////////////////////////////////////////
9030  REM  **********************************************************
9040  REM  *  SETUP LINEAR CONDUCTOR RESISTANCE EQ AS FUNCTION OF TEMP
9042  REM  *  B IN OHM / M - C OR OHM / FT - C AND B1 IN OHM / M OR OHM / FT
9050  REM  **********************************************************
9060  B  =  (RHI  -  RLO)  /  (THI  -  TLO)
9070  B1  =  RLO  -  B  *  TLO
9080  REM  *****************************************************
9090  REM  *  SET UP LINEAR HEAT CAPACITY EQS AS FUNCTION OF TEMP
9100  REM  *****************************************************
9110  REM  ***************************************************
9120  REM  *  CORRECTION FACTOR (YC) FOR NON - PERPENDICULAR WIND
9130  REM  ***************************************************
9140  WINDANG.RAD  =   1.570796   -  WINDANG.DEG  *  PIANG
9150  YC  =   1.194   -  SIN(WINDANG.RAD)  -  . 194   *  COS( 2 !   *  WINDANG.RAD)  +  . 368   *  SIN( 2 !   *  WINDANG.RAD)
9160  RETURN
10000  REM  ///////////////////////////////////////////////////////////////
10010  REM  /   SUBROUTINE TO CALCULATE STARTING VALUE FOR CURRENT ITERATION
10020  REM  /   BY ASSUMING ADIABATIC HEATING DURING TIME TT
10030  REM  ///////////////////////////////////////////////////////////////
10040  TCDR  =  (TCDRMAX  +  TAMB)  /   2
10050  IF TT  <   60  THEN HEATCAP  =  HEATOUT ELSE HEATCAP  =  HEATOUT  +  HEATCORE
10060  GOSUB  15000
10070  AT  =  SQR(HEATCAP  *  (TCDRMAX  -  TAMB)  /  TT)  /  W4
10080  TCDR  =  TCDRPRELOAD
10090  NFLAG  =   1
10100  GOSUB  13000
10110  RETURN
11000  REM  ///////////////////////////////////////////////////////////
11010  REM  /  SUBROUTINE CALCS CDR TEMP VS TIME FOR STEP CHANGE CURRENT
11020  REM  ///////////////////////////////////////////////////////////
11030  IF NSELECT  =   4  THEN PRINT USING  " TRYING A CURRENT OF #######.#### AMPS " ; XISTEP
11040  FLAG  =   0
11050  ATCDR( 1 =  TCDRPRELOAD
11060  TCDR  =  ATCDR( 1 )
11070  GOSUB  15000
11080  K  =   1
11090  ATCDR(K  +   1 =  TCDR  +  (W4  ^   2   *  XISTEP  ^   2   +  QS  -  QR  -  QC)  *  DELTIME  /  HEATCAP
11100  TIME(K  +   1 =  TIME(K)  +  DELTIME
11110  TCDR  =  ATCDR(K  +   1 )
11115  IF NSELECT  =   4  GOTO  11130
11120  PRINT  " TIME =  " ; TIME(K  +   1 );  "  SECONDS /  " " CDR TEMP =  " ; TCDR;  " DEG C "
11130  IF NSELECT  =   3  AND TCDR  >  TCDRMAX THEN  11280
11140  REM  ********************************************************************
11150  REM  *
11160  REM  ********************************************************************
11170  GOSUB  15000
11180  K  =  K  +   1
11190  IF K  =   3000  THEN PRINT  " TIME INTERVAL TOO SMALL.  ARRAY OUT OF BOUNDS  " : GOTO  1880
11200  IF TIME(K)  <  TT THEN  11090
11210  IF XISTEP  =   0  AND TCDR  >  TCDRMAX THEN  11220  ELSE  11250
11220  PRINT  " EVEN IF THE CURRENT IS REDUCED TO ZERO AMPS, THE CONDUCTOR "
11230  PRINT USING  " TEMPERATURE WILL NOT DECREASE TO ####.# DEG C IN ####.# MINUTES " ; TCDRMAX; TT  /   60
11240  GOTO  1880
11250  REM  **********************************
11260  REM  *  CHECK FOR SHORT DURATION FAULTS
11270  REM  **********************************
11280  IF TIME(K)  >=   60  OR FLAG  =   1  OR HEATCORE  =   0  OR TT  <   60  THEN GOTO  11320
11290  HEATCAP  =  HEATOUT
11300  FLAG  =   1
11310  GOTO  11050
11320  KTIMEMAX  =  K
11330  RETURN
12000  REM  ////////////////////////////////////////////////////
12010  REM  /   SUBROUTINE ITERATES TO FIND CONDUCTOR TEMPERATURE
12020  REM  /   GIVEN THE CONDUCTOR CURRENT
12030  REM  ////////////////////////////////////////////////////
12040  IF NFLAG  =   0  THEN TCDR  =  X: GOSUB  15000 : TEMP  =  XIDUMMY  -  TR: RETURN
12050  IF NFLAG  =   1  THEN XISTEP  =  X: GOSUB  11000
12060  IF TCDRPRELOAD  <=  TCDRMAX THEN TEMP  =  TCDRMAX  -  TCDR: RETURN
12070  IF TCDRPRELOAD  >  TCDRMAX THEN TEMP  =  TCDR  -  TCDRMAX: RETURN
13000  REM  ////////////////////////////////////////////////////////////////
13010  REM  /  SUBROUTINE RTMI MUELLER - S ITERATION METHOD SELECTS A CURRENT
13020  REM  /  WHICH JUST RAISES TCDR TO TCDMAX IN THE TIME TT.  THIS CURRENT
13030  REM  /  IS THE TRANSIENT RATING OF THE CONDUCTOR.  IT DOES THIS BY
13040  REM  /  REPEATEDLY GUESSING A CURRENT  -  XISTEP  -  CALCULATING TCDR AT TT
13050  REM  /  AND COMPARING THE CALCULATED TCDR TO TCDRMAX.  ROUTINE SUPPLIED
13060  REM  /  COURTESY OF BILL HOWINGTON.
13070  REM  /////////////////////////////////////////////////////////////////
13080  REM  *  START BY PREPARING TO ITERATE
13090  REM  *******************************
13100  XLI  =   0 : XRI  =   0 : EPS  =  . 049 : IEND  =   20 : X  =   0
13110  GOSUB  14000
13120  IER  =   0 : XL  =  XLI: XR  =  XRI: X  =  XL: TOL  =  X
13130  GOSUB  12000
13140  F  =  TEMP: IF XLI  =  XRI OR F  =   0  THEN  13530
13150  FL  =  F: X  =  XR: TOL  =  X
13160  GOSUB  12000
13170  F  =  TEMP: IF F  =   0  THEN  13530
13180  FR  =  F: IF (SGN(FL)  +  SGN(FR))  =   0  THEN  13200  ELSE  13760
13190  REM  ************************************************
13200  REM BASIC ASSUMPTION FL * FR LESS THAN  0  IS SATISFIED.
13210  REM  ************************************************
13220  I  =   0
13230  REM  ********************
13240  REM START ITERATION LOOP
13250  REM  ********************
13260  I  =  I  +   1
13270  REM  ********************
13280  REM START BISECTION LOOP
13290  REM  ********************
13300  FOR JK  =   1  TO IEND
13310  X  =  . 5   *  (XL  +  XR): TOL  =  X: GOSUB  12000
13320  F  =  TEMP: IF F  =   0  THEN  13530
13330  IF (SGN(F)  +  SGN(FR))  =   0  THEN  13370  ELSE  13380
13340  REM  ***************************************************************
13350  REM INTERCHANGE XL AND XR IN ORDER TO GET THE SAME SIGN IN F AND FR
13360  REM  ***************************************************************
13370  TOL  =  XL: XL  =  XR: XR  =  TOL: TOL  =  FL: FL  =  FR: FR  =  TOL
13380  TOL  =  F  -  FL: DA  =  F  *  TOL: DA  =  DA  +  DA
13390  IF (DA  -  FR  *  (FR  -  FL))  >=   0  THEN  13410
13400  IF (I  -  IEND)  <=   0  THEN  13570
13410  XR  =  X: FR  =  F
13420  REM  ***********************************************
13430  REM TEST ON SATISFACTORY ACCURACY IN BISECTION LOOP
13440  REM  ***********************************************
13450  TOL  =  EPS
13460  IF (ABS(FR  -  FL)  -  TOL)  <=   0  THEN  13530
13470  NEXT JK
13480  REM  *****************************************************************
13490  REM END OF BISECTION LOOP  -  NO CONVERGENCE AFTER IEND ITERATION STEPS
13500  REM FOLLOWED BY IEND SUCCESSIVE STEPS OF BISECTION
13510  REM  *****************************************************************
13520  IER  =   1 : GOTO  13780
13530  RETURN
13540  REM  ******************************************************************
13550  REM COMPUTATION OF ITERATED X - VALUE BY INVERSE PARABOLIC INTERPOLATION
13560  REM  ******************************************************************
13570  DA  =  FR  -  F: DX  =  (X  -  XL)  *  FL  *  ( 1   +  F  *  (DA  -  TOL)  /  (DA  *  (FR  -  FL))) /  TOL
13580  XM  =  X: FM  =  F: X  =  XL  -  DX: TOL  =  X
13590  GOSUB  12000
13600  F  =  TEMP: IF F  =   0  THEN  13530
13610  REM  ***********************************************
13620  REM TEST ON SATISFACTORY ACCURACY IN ITERATION LOOP
13630  REM  ***********************************************
13640  TOL  =  EPS
13650  IF (ABS(F)  -  TOL)  <=   0  THEN  13530
13660  REM  **********************************
13670  REM PREPARATION OF NEXT BISECTION LOOP
13680  REM  **********************************
13690  IF (SGN(F)  +  SGN(FL))  <>   0  THEN  13710
13700  XR  =  X: FR  =  F: GOTO  13260
13710  XL  =  X: FL  =  F: XR  =  XM: FR  =  FM: GOTO  13260
13720  REM  ****************************************
13730  REM END OF ITERATION LOOP
13740  REM ERROR RETURN IN CASE OF WRONG INPUT DATA
13750  REM  ****************************************
13760  IF XHI  <>  XLO THEN  13770  ELSE RETURN
13770  IER  =   2 : JK  =   0
13780  BEEP: PRINT  " NUMBER OF ITERATIONS=  " ; JK
13790  PRINT  " ITERATION ROUTINE CONDITION CODE,IER=  " ; IER
13800  IF IER  =   2  THEN PRINT  " TCDR OUT OF TEMPERATURE RANGE "
13810  IF IER  =   1  THEN PRINT  " NO CONVERGENCE IN SUBROUTINE TRANS "
13820  STOP
14000  REM  ////////////////////////////////////////////////////////////
14010  REM  /  SUBROUTINE GUESS TO DETERMINE INITIAL BOUNDS FOR ITERATION
14020  REM  ////////////////////////////////////////////////////////////
14030  IF NFLAG  =   0  THEN XLO  =  TAMB: XHI  =   1000 : DIV  =   10
14040  IF NFLAG  =   1  THEN XLO  =   0 : XHI  =   10   *  AT: DIV  =   10
14050  CHA  =  (XHI  -  XLO)  /  DIV: NUM  =  INT(DIV): X  =  XLO
14060  GOSUB  12000
14070  FO  =  TEMP
14080  FOR JK  =   1  TO NUM
14090  X  =  XLO  +  JK  *  CHA: GOSUB  12000
14100  FF  =  TEMP: IF (SGN(FF)  +  SGN(FO))  =   0  THEN  14140
14110  FO  =  FF
14120  NEXT JK
14130  XLI  =  XLO: XRI  =  XHI: RETURN
14140  XRI  =  X: XLI  =  X  -  CHA: RETURN
15000  REM  /////////////////////////////////////////////////////////////////
15010  REM  /  SUBROUTINE T0 CALCULATE THERMAL RATING GIVEN A CDR TEMP (TCDR),
15020  REM  /  AND CONDUCTOR PARAMETERS AND WEATHER CONDITIONS
15030  REM  /////////////////////////////////////////////////////////////////
15040  REM PRINT USING  " TRYING A TCDR OF ####.### DEG C " ; TCDR
15050  REM  *********************************************************
15060  REM  *  CALC CONDUCTOR HEAT LOSS (QR) BY RADIATION (WATTS / M)
15070  REM  *********************************************************
15080  T3  =  TCDR  +   273
15090  T4  =  TAMB  +   273
15102  QR  =  . 0178   *  EMISS  *  D  *  ((T3  /   100 ^   4   -  (T4  /   100 ^   4 )
15110  REM  ******************************************************************
15120  REM  *  CALC CONDUCTOR HEAT LOSS BY CONVECTION (WATTS / M)
15130  REM  ******************************************************************
15140  T5  =  (TCDR  +  TAMB)  /   2
15160  U1  =   1.458E-06   *  (T5  +   273 ^   1.5   /  (T5  +   383.4 )
15172  P1  =  ( 1.2932   -  . 0001525   *  CDR.ELEV  +   6.379E-09   *  CDR.ELEV  ^   2 /  ( 1   +  . 00367   *  T5)
15180  K1  =  . 02424   +   7.477E-05   *  T5  -   4.407E-09   *  T5  ^   2
15181  IF DEBUG  =   0  THEN PRINT # 2 " U1,P1,K1 =  " ; U1, P1, K1
15182  REM  ******************************************************************
15184  REM  *  CALC CONDUCTOR HEAT LOSS (QC) BY NATURAL CONVECTION (WATTS / M)
15186  REM  ******************************************************************
15188  IF (TCDR  -  TAMB)  <   0 !  THEN TCDR  =  TAMB  +  . 1
15191  QC  =  . 0205   *  P1  ^  . 5   *  D  ^  . 75   *  (TCDR  -  TAMB)  ^   1.25
15192  IF VWIND  =   0  THEN  15450
15194  REM  *****************************************************************
15196  REM  *  CALC CONDUCTOR HEAT LOSS (QCF) BY FORCED CONVECTION (WATTS / M)
15198  REM  *****************************************************************
15202  Z  =  D  *  P1  *  VWIND  /  U1
15212  Q1  =  . 0119   *  Z  ^  . 6   *  K1  *  (TCDR  -  TAMB)
15222  Q2  =  ( 1.01   +  . 0372   *  Z  ^  . 52 *  K1  *  (TCDR  -  TAMB)
15230  IF Q1  -  Q2  <=   0  THEN  15260
15240  QCF  =  Q1
15250  GOTO  15270
15260  QCF  =  Q2
15265  IF DEBUG  =   0  THEN PRINT # 2 " QCF =  " ; QCF
15270  QCF  =  QCF  *  YC
15370  REM  ***********************************************************
15380  REM  *  SELECT LARGER OF CONVECTIVE HEAT LOSSES (QC VERSUS QCF)
15390  REM  ***********************************************************
15400  IF QCF  <  QC THEN  15450
15410  QC  =  QCF
15420  REM  ***************************************
15430  REM  *  CALC SUM OF STEADY STATE HEAT FLOWS
15440  REM  ***************************************
15450  R5  =   - QS  +  QC  +  QR
15460  REM  ************************************************
15470  REM  *  CALC SQRT OF CONDUCTOR RESISTANCE IN OHMS / FT
15480  REM  ************************************************
15492  W4  =  SQR(B1  +  B  *  TCDR)
15500  IF R5  <=   0  THEN TR  =   0 : GOTO  15560
15510  R4  =  R5  ^  . 5
15520  REM  **************************************************
15530  REM  *  CALCULATE THERMAL RATING (AMPACITY) IN AMPERES
15540  REM  **************************************************
15550  TR  =  R4  /  W4
15560  RETURN
16000  REM  /////////////////////////////////////////
16010  REM  /  SUBROUTINE TO WRITE OUTPUT DATA TO FILE
16020  REM  /////////////////////////////////////////
16030  PRINT # 2 ,
16040  PRINT # 2 ,
16050  PRINT # 2 , X$
16060  PRINT # 2 "  IEEE STD 738-2006 METHOD FOR CALCULATION OF "
16070  PRINT # 2 " BARE OVERHEAD CONDUCTOR TEMPERATURES & THERMAL RATINGS "
16080  PRINT # 2 " INPUT DATA FILE NAME IS  " ; F$
16090  PRINT # 2 , COMMENT$
16100  PRINT # 2 , C$
16110  PRINT # 2 " AIR TEMPERATURE IS  " ; TAMB;  "  DEG C "
16180  PRINT # 2 " WIND SPEED IS  " ; VWIND;  "  M/SEC "
16190  PRINT # 2 , USING  " ANGLE BETWEEN WIND AND CONDUCTOR IS ### DEG " ; WINDANG.DEG
16200  PRINT # 2 " COEFFICIENT OF EMISSIVITY IS  " ; EMISS
16210  PRINT # 2 " COEFFICIENT OF ABSORPTIVITY IS  " ; ABSORP
16220  PRINT # 2 " LINE DIRECTION IS ### DEG FROM NORTH " ; Z1.DEG;  "  AND THE ATMOSPHERE IS  " ; B$
16230  IF NSELECT  =   3  OR NSELECT  =   4  THEN GOTO  16450
16240  PRINT # 2 ,
16250  PRINT # 2 ,
16260  PRINT # 2 " STEADY STATE THERMAL CALCULATIONS "
16320  PRINT # 2 , USING  " QS IS ####.### WATTS PER METER OF CONDUCTOR  " ; QS
16330  PRINT # 2 , USING  " QR IS ####.### WATTS PER METER OF CONDUCTOR  " ; QR
16340  PRINT # 2 , USING  " QC IS ####.### WATTS PER METER OF CONDUCTOR  " ; QC
16350  PRINT # 2 ,
16360  IF NSELECT  =   1  THEN GOTO  16400
16370  PRINT # 2 , USING  " GIVEN A MAXIMUM CONDUCTOR TEMPERATURE OF ####.# DEG C, " ; TCDRPRELOAD
16380  PRINT # 2 , USING  " THE STEADY STATE THERMAL RATING IS ##### AMPERES " ; TR
16390  GOTO  16430
16400  IF XIPRELOAD  =   1.111  THEN XIPRELOAD  =   0
16410  PRINT # 2 , USING  " GIVEN A CONSTANT CURRENT OF ##### AMPERES " ; XIPRELOAD
16420  PRINT # 2 , USING  " THE CONDUCTOR TEMPERATURE IS ####.# DEG C " ; TCDRPRELOAD
16430  REM
16440  GOTO  16740
16450  PRINT # 2 ,
16460  PRINT # 2 ,
16470  PRINT # 2 "      TRANSIENT THERMAL CALCULATIONS  "
16480  PRINT # 2 , USING  " INITIAL STEADY STATE CDR TEMP IS ###.# DEG C " ; TCDRPRELOAD
16490  IF IORTPRELOAD  =   2  THEN PRINT # 2 ,
16500  IF IORTPRELOAD  =   1  THEN PRINT # 2 , USING  " FOR A GIVEN INITIAL CURRENT OF ##### AMPERES, " ; XIPRELOAD
16505  IF HNH  =   2  THEN GOTO  16545
16515  PRINT # 2 , USING  "                       HEAT CAPACITY =  ####.#WATTS-SEC/M- C " ; HEATCAP
16520  GOTO  16570
16545  PRINT # 2 , USING  "                   CORE HEAT CAPACITY = ####.# WATTS- SEC/M-C " ; HEATCORE
16550  PRINT # 2 , USING  "    OUTER STRAND LAYERS HEAT CAPACITY = ####.# WATTS- SEC/M-C " ; HEATOUT
16570  IF NSELECT  =   4  THEN  16610
16580  PRINT # 2 " THE MAXIMUM TIME OF INTEREST AFTER THE STEP CURRENT "
16590  IF SORM  =   0  THEN PRINT # 2 , USING  " INCREASES TO #######.# AMPS IS ####.#### SECONDS " ; XISTEP; TT
16600  IF SORM  =   1  THEN PRINT # 2 , USING  " INCREASES TO #######.# AMPS IS ####.#### MINUTES " ; XISTEP; TT  /   60
16610  PRINT # 2 , USING  " THE MAX ALLOWABLE CONDUCTOR TEMPERATURE IS ####.# DEG C " ; TCDRMAX
16620  IF NSELECT  =   4  GOTO  16680
16630  FOR I  =   1  TO KTIMEMAX
16640  IF SORM  =   0  THEN PRINT # 2 , USING  " TIME=###.#### SEC   CDRTEMP= ###.# DEG C " ; TIME(I); ATCDR(I)
16650  IF SORM  =   1  THEN PRINT # 2 , USING  " TIME=###.### MIN   CDRTEMP= ###.# DEG C " ; TIME(I)  /   60 ; ATCDR(I)
16660  NEXT I
16670  GOTO  16730
16680  PRINT # 2 , USING  " THE TRANSIENT THERMAL RATING IS ########.# AMPERES " ; XISTEP
16690  PRINT # 2 " THAT IS, WITH THIS CURRENT, THE CONDUCTOR TEMPERATURE JUST REACHES  "
16700  PRINT # 2 , USING  " THE MAXIMUM ALLOWABLE CDR TEMP OF ####.# DEG C " ; TCDRMAX
16710  IF TT  >   60  THEN PRINT # 2 , USING  " IN ####.## MINUTES " ; TT  /   60
16720  IF TT  <   60  THEN PRINT # 2 , USING  " IN ###.#### SECONDS " ; TT
16730  PRINT # 2 , X$
16740  RETURN
20000  REM  /////////////////////
20010  REM  /  COMMENTS ON PROGRAM
20020  REM  /////////////////////
20030  REM  *
20040  REM  *   THE PROGRAM DOES NOT CALCULATE ANY INTERNAL RADIAL OR AXIAL
20050  REM  *   TEMPERATURE GRADIENTS.  THIS IS NORMALLY NOT A SOURCE OF
20060  REM  *   SIGNIFICANT ERROR EXCEPT FOR INTERNALLY COMPLEX CONDUCTORS
20070  REM  *   SUCH AS FIBER - OPTIC SHIELD WIRE AND FOR NON - HOMOGENEOUS CONDUCTORS
20080  REM  *   FOR FAULT CURRENTS OF LESS THAN  1  MINUTE.  THE PROGRAM DOES NOT
20090  REM  *   APPLY TO INTERNALLY COMPLEX CONDUCTORS, IT DOES CALCULATE A WORST
20100  REM  *   CASE ESTIMATE OF TEMPERATURE / RATING FOR ACSR OR ACSR / AW BY NEGLECTING
20110  REM  *   THE HEAT STORAGE CAPACITY OF THE RELATIVELY POORLY CONDUCTING CORE
20120  REM  *   FOR STEP CURRENTS WHICH PERSIST FOR LESS THAN ONE MINUTE.
20130  REM  *   THE VARIATION IN SPECIFIC HEAT WITH TEMPERATURE IS NEGLECTED.
20140  REM  *   ADDED COMMENTS  7 / 97  DAD
20150  REM  *   ADDED SI FORMULAS, SOLAR EQUATIONS, AND CHANGED AIR PARAMETERS
转化后的C文件可以正常执行的:
/****************************************************************/
/*       Created with BCX -- The BASIC To C Translator          */
/*            BCX (c) 1999, 2000 by Kevin Diggins               */
/****************************************************************/

#include 
< windows.h >       /* Windows Specific Header File */
#include 
< windowsx.h >      /* Windows Specific Header File */
#include 
< commctrl.h >      /* Windows Specific Header File */
#include 
< mmsystem.h >      /* Windows Specific Header File */
#include 
< shellapi.h >      /* Windows Specific Header File */
#include 
< winsock.h >       /* Windows Specific Header File */
#include 
< stdio.h >
#include 
< string .h >
#include 
< stddef.h >
#include 
< stdlib.h >
#include 
< ctype.h >
#include 
< setjmp.h >
#include 
< math.h >
#include 
< time.h >
#include 
< cstdlib >
/* ------------------------ */
/*     System Variables     */
/* ------------------------ */

static  COORD cursor;
static  HANDLE hConsole;
static   int  color_fg  =   7 ;
static   int  color_bg  =   0 ;
static  jmp_buf  GosubStack[ 100 ];
static   int       GosubNdx;
static    int   StrCnt;
static    char  StrFunction [ 64 ][ 257 ];
static    char  InputBuffer [ 257 ];

/* ------------------- */
/*  User's Constants   */
/* ------------------- */


/* ----------------------- */
/*  User Global Variables  */
/* ----------------------- */

static    int     FLAG1;
static    double     XIDUMMY;
static    double     XIPRELOAD;
static    int     XISTEP;
static    double     TCDR;
static    double     TCDRPRELOAD;
static    int     TCDRMAX;
static    double     IORTPRELOAD;
static    int     DELTIME;
static    int     FS1;
static    int     FS2;
static    int     FS3;
static    char    XXX [ 257 ] = {'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-'} ;
double  X;
char    B [ 257 ];
double  BB;
static    int     A3;
static    int     NDAY;
double     H3ARG;
static    int   KI;
static    int     NFLAG;
double   PI;
double   PIANG;
FILE 
*   F1;
long   SORF;
char    FOUT [ 257 ];
int     DEBUG;
FILE 
*   F2;
int   GG;
int     NSELECT;
int     ET;
int     NS;
int     NSETS;
double     Q3;
double     ATCDR [ 1001 ];
int     TIME [ 1001 ];
int  DIV;
double  DA;
double  FR;
int  SUNTIME;
double  DEGTORAD;
double  CDRLATRAD;
double  CDRLATDEG;
double  DECLDEG;
double  DECLRAD;
double  H3RAD;
double  H3DEG;
double  HOURANGDEG;
double  HOURANGRAD;
double  CHIDENOM;
double  CHI;
int  CAZ;
double  ABSORP;
double  Z4DEG;
double  Z4RAD;
double  E2RAD;
double  CDRELEV;
double  Z1RAD;
double  Z1DEG;
double  E1;
double  QS;
double  D;
char  D1[ 220 ];
double  TAMB;
double  EMISS;
double  USING;
double  VWIND;
double  QCF;
double  CDRLAT;
double  RLO;
double  TLO;
double  RHI;
double  QR;
double  QC;
double  TR;
double  THI;
double  HEATCAP;
double  HEATCORE;
int  HEATOUT;   // double
double  TT;
double  HEATOUTELSEHEATCAP;
double  AT;
double  W4;
double  DX;
double  R4;
double  R5;
double  TCDRTAMB;
char  INKEY[ 20 ];
double  T5;
double  U1;
double  P1;
double  K1;
double  Q1;
double  Q2;
char  C[ 220 ];
char  t[ 10 ];
int  I;
int  JK;
int  HNH;
int  SORM;
int  KTIMEMAX;
int  FLAG;
int  K  =   1 ;
int  P;
int  tcdrmax;
char  Z[ 220 ];
char  FILENAM[ 220 ];
// double Z;
double  WINDANGDEG;
char  FT[ 220 ];
char  FG[ 220 ];
char  COMMENT[ 220 ];
//  float F;
char  F [ 257 ];
char  FFF[ 257 ];
float  F8;
float  FL;
float  FM;
double  B1;
int  YC;
double  WINDANGRAD;
double  XLI;
double  XRI;
double  XM;
double  XHI;
double  XLO;
double  EPS;
double  grat;
int  IEND;
float  TEMP;
int  IER;
double  XL;
double   XR;
double  CHA;
double  TOL;
double  T3;
double  T4;
int  NUM;
double  FO;
double  FF;

double  value  =   0.0 ;
char   *  p;
char  temp[ 128 ] = {0} ;

/* ---------------------- */
/*  Standard Prototypes   */
/* ---------------------- */

float  sgn ( float );
float  Abs ( float );
char   * string  ( int char   * );
int  len ( char   * );
int  fInt ( float );
void  cls();
void  locate ( int , int , int );


/* --------------------- */
/*  Run Time Functions   */
/* --------------------- */


float  sgn ( float  a)
{
    
if(a<0)
    
{
        
return -1;
    }

    
if(a>0)
    
{return 1;}
    
return 0;
}


char   * string  ( int  count,  char   * a)
{
    
static char t [257];
    
static int i;
    
if (++StrCnt==64) StrCnt = 0;
    sprintf(t,
"%s","");
    
for(i=1;i<=count;i++)
    
{
        sprintf(t,
"%s%s",t,a);
    }

    sprintf(StrFunction[StrCnt],
"%s",t);
    
return StrFunction[StrCnt];
}



int  len ( char   * d)
{return strlen(d);}

int  fInt ( float  a)
{
    
return a+0.5;
}



float  Abs ( float  a)
{
    
if(a<0)
    
{return a*(-1);}
    
else
    
{return a;}
}


void  cls ()
{
    DWORD ret;
    
int attr;
    cursor.X 
= 0;
    cursor.Y 
= 0;
    FillConsoleOutputCharacter(hConsole,
32,2000,cursor,&ret);
    attr 
= color_fg + color_bg * 16;
    FillConsoleOutputAttribute (hConsole,attr,
2000,cursor,&ret);
    locate(
1,1,1);
}


void  locate( int  row, int  col, int  show)
{
    CONSOLE_CURSOR_INFO cci;
    cursor.X 
= col-1;
    cursor.Y 
= row-1;
    SetConsoleCursorPosition(hConsole,cursor);
    cci.bVisible 
= show;
    SetConsoleCursorInfo(hConsole,
&cci);
}


void  splitstrng( char   *  str)
{
  
for(int i=0;i<strlen(str);i++)
   
{
     
if((str[i]==' '&& (str[i+1]==' '))
      
{
         str[i]
='
调试的文本:
" FILE SI_TRTMP.TXT "                " FILE DESCRIPTION "
1                                  " NUMBER OF DATA SETS IS "
" CDR TEMP VS TIME CALC "            " COMMENT ON FIRST DATA SET "
3                                  " SELECT CALCULATION "
1                                  " PRE-STEP AMP(1) OR TEMP(2) "
400                                " PRE-STEP CURRENT "
1200                               " POST-STEP CURRENT "
1                                  " UNITS OF STEP MIN(1) OR SEC(0) "
15                                 " STEP DURATION IN ABOVE UNITS "
60                                 " CALC TIME INTERVAL (SEC) "
40                                 " AMBIENT TEMP IN DEG C IS "
0.61                               " WIND SPEED (M/SEC) "
90                                 " ANGLE BETWEEN WIND & CDR AXIS IN DEG "
" 400 MM2 DRAKE 26/7 ACSR "          " CONDUCTOR DESCRIPTION "
28.12                              " CONDUCTOR DIAMETER (MM) "
25 , 75                              " MIN & MAX CDR TEMP IN DEG C "
0.07284 0.08689                   " MIN & MAX CDR RAC (OHMS/KM) "
2                                  " CONDUCTOR HAS A STEEL CORE "
1066 .,  243                         " HEAT CAP OF OUTER & CORE STRANDS (W-SEC/M-C) "
0.5 0.5                           " COEF OF EMISS AND SOLAR ABSORP "
0 .                                " CDR ELEV ABOVE SEA LEVEL IN FEET "
45                                 " CDR DIR IN DEG CW FROM NORTH "
43                                 " CDR LATITUDE IN DEGREES "
12 161                      " SOLAR HOUR (2PM=14) OR 99(NO SUN) & DAY OF THE YEAR "
0 " CLEAR "                         " AIR CLARITY - CLEAR(0), INDUST(1) "

你可能感兴趣的:(一份basic文件转化成c文件(自己收藏))