AN INTRODUCTION TO FORTRAN AND NUMERICAL MODELING

Size: px
Start display at page:

Download "AN INTRODUCTION TO FORTRAN AND NUMERICAL MODELING"

Transcription

1 AN INTRODUCTION TO FORTRAN AND NUMERICAL MODELING Dr. L. W. Shwartz Department of Mehanial Engineering University of Delaware September, 2000 INTRODUCTION The first part of this short doument ontains a brief desription of the Unix operating system as well as a minimal set of ommands and proedures in the FORTRAN omputer language. The purpose is to get you up any running as quikly as possible in order to do useful numerial work on the omputer. Many other ommands and proedures exist, but having many different ways to do the same thing is often onfusing. After you an use these basis, you an hange to other ommands that may be more intuitive for you. The seond part will disuss a number of engineering problems. For eah problem, a simplified mathematial model will be developed. Eah model will be translated into a Fortran omputer program. Results of running eah program will help use to understand how eah of the engineering systems works. Results will be presented graphially in both two and three dimensions using the Gnuplot program. Exerises that will help you develop your programming and modeling skills are distributed through the setions. PART I: PROGRAMMING BASICS 1.1. GETTING STARTED The Unix operating system. The University of Delaware uses Unix as the operating system for its main omputers. All other universities use Unix as do most large orporations whose prinipal businesses involves siene and engineering. Unix allows any user to use any of the omputers in the system or network from the Personal Computer (PC) or Workstation on his or her desk. Of ourse the proper permissions are neessary. The main University omputer system is known as The Composers beause eah omputer is named after a famous omposer of musi. You probably read your on opland. We will do our sientifi omputing on strauss. A more omplete name for strauss is strauss.udel.edu. Many PC s that are hard-wired into the University system, suh as the mahines in Pearson room 116, aess the omposers using an appliation alled Exeed. There are many other ways of getting onto the system. You will need a username and password. 1

2 When you get on strauss, you will be in your home diretory. There may be subdiretories there already or you an reate them yourself. Think of your home diretory as a big folder that an hold many smaller folders. Eah smaller folder an have still smaller folders. Eah folder an also ontain files. These files may be data sets, omputer programs, pitures, et. A personal mahine that uses Unix is alled a Workstation (or Unix Box by the pros!). These mahines use a graphial user interfae alled Xwindows. With Xwindows it is possible to make the desktop look very muh like MS Windows on a PC or the desktop on a Maintosh. Within Xwindows (or X for short!) you an drag files into folders, double-lik to open, et. It is possible to install Linux, a free version of Unix, on any PC. For info, visit the UD Linux Users Group website. You will then have all the advantages of a Workstation at zero ost. When Linux is installed, you an run either DOS/Windows or Linux on the same PC (but not both at the same time, although the Linux guys are working on that very issue.) Virtually all Linux programs are free and an be freely given out. Linux is now the seond most popular PC operating system. A short list of Unix ommands. Firstly, Unix is ase sensitive. Use lower ase, i.e. forget about the shift key. All ommands are followed by a arriage return (CR). Speifially CR means press the ENTER key on the keyboard. ls Lists the ontents of the urrent diretory. ls -l is like ls but provides more information about the list of files: size of file, reation date, ownership, et. man The online manual in Unix. For information on ls or any other ommand, type, for example, man ls (CR). Typing man man (CR) will give information about the man ommand. Get out of man by typing q for quit. mkdir anyname (CR) reates a subdiretory in the urrent diretory alled anyname. d anyname moves you into the subdiretory alled anyname. Just typing d without a diretory name returns you to your home diretory. d.. moves you up one level in the diretory struture. pwd means print working diretory. p filename newopy. Copies the file alled filename into the new file alled newopy. mv filename newname. Changes the name of a file ( moves it). f77 program.f -o runname. Compile the program alled program.f and all the exeutable file runname. Run the program by typing runname (CR). If -o... is omitted, the default name for the exeutable is a.out. To stop a running exeutable (if it is not doing what you want for example), type trl, meaning depress the key labelled trl and the key simultaneously. xterm reates a new terminal window (requires X). 2

3 xterm & The ampersand returns ontrol to the alling window after opening the new terminal window. Thus both windows are usable simultaneously. textedit filename. Multi-featured file editor with pull down menus, opy-paste, et. (requires X). If filename exits, textedit opens it; otherwise it reates a new file named filename. You an use the mouse buttons to save as, save and quit telnet mahine opens onnetion to omputer with internet name or address mahine, e.g. telnet strauss, telnet strauss.udel.edu. ftp mahine opens onnetion to remote omputer mahine speifially to send or reeive files. exit loses terminal window or telnet onnetion. pine to read or send mail. pio filename. Pio is an editor that an be used when X is not available. The look is similar to pine. lpr filename. Generi Unix print ommand to send filename to a printer. You will probably need to find out what the speifi name is for the printer you want to use. gnuplot alls the plotting routine gnuplot. The gnuplot ommand set terminal dumb displays poor-quality ommand window graphis when X is not available STEPS IN WRITING A COMPUTER PROGRAM What do you want to do? Every little thing must be explained ompletely. Flowharts an be used to map out the logial flow in a omputer program. An example of a flowhart will be given below. Mathematial desription. What formulas do you want to use? The origin of the name: FORmula TRANslation = FORTRAN Write the program. Save it in a file alled myprogram.f for example. Compiling the program produes an exeutable version that the mahine understands. f77 myprogram.f auses the exeutable file alled a.out to be produed. Run the program by typing a.out (CR) De-bugging: Programs almost never run the first time... don t get disouraged. A little utility alled ftnhek an help you find mistakes. When you get numbers... do they make sense? You an hand-hek a few of them using a alulator. 3

4 1.3. PROGRAMMING IN THE FORTRAN LANGUAGE Type your program into the window reated by the Openwindows text editor. You an use the Edit ommands (right mouse button) to Copy and Paste. Almost all statements start in olumn 7. When you get a new line by hitting (CR), hit the spae bar 6 times. Only olumns 7 to 72 ontain the FORTRAN statements. Exeptions: 1. in olumn 1 for a omment (it s ignored by ompiler. It is just for you, so you know later what you are doing). 2. Entering a number in olumn 6 is a ontinuation allowing you write really long statements. Try to avoid very long statements sine they are hard to read! 3. Statement numbers an be typed into olumns 1 to 5. Thus the largest statement number is A little program alled myprogram.f is shown in the figure on the following page. It ontains omment statements saying what eah line does. You an ompile the program by typing f77 myprogram in the ommand window; then you exeute the program by typing a.out. O.k., now you do it. Just type in the non-omment lines and try some numbers. Did the program ompile orretly? If not, what did the ompiler tell you? Is it helpful? If you still have problems, try typing ftnhek myprogram.f This may give you suffiient information to solve your problem. My program ompiles and runs suessfully. The dialog in the x-term ommand window is given in Fig. 2. 4

5 the line below names the program program myprogram the following 4 lines are used to read a number that you type into the ommand window. write(6,100) 100 format( please type in the first number ) read(5,110)a 110 format(f10.0) The first line above auses the omputer to write please type in the first number into the ommand window. The third line reads the number that you type and assigns the value that you type to a variable alled a. The omputer waits for you to hit (CR) after you type the number before it will do anything else. The 2nd and 4th lines are format statements. They provide info telling the read and write statements exatly what to do. Speifially, the write statement says, write on unit=6, the information ontained in format statement 100. Note the use of the quotes. The read statement says, read from unit=5, the number a where a is written using the format f10.0. This means that the "field" is a maximum of 10 haraters long and that you will put in the deimal point. Thus numbers like are ok, but 2341 is no good (no deimal) and is no good (too long). write(6,200) 200 format( please type in the seond number ) read(5,110)b Just like before. Notie that sine the format for reading b is the same as for reading a, it is not repeated. In fat there annot be 2 lines that have the same statement number. =a+b The above obviously auses the omputer to add the numbers a and b and store the answer in the variable alled. write(6,300) 300 format( the answer is,2x,f15.5) The answer is typed into the ommand window What will atually appear is the answer is Notie that eah piee of the format statement is divided by ommas. The 2x means skip 2 plaes. f15.5 means write, using the same type of deima fration format, using 5 plaes after the deimal point. end All fortran programs should end with an end statement. Fig. 1: The program myprogram.f as it would appear in a text editor window. The lines beginning with are omments. They are ignored by FORTRAN. 5

6 > g77 myprogram.f > a.out please type in the first number 2. please type in the seond number 1.45 the answer is > Fig.2: The ommand window showing the dialog for the program myprogram.f. The symbol is the prompt whih means the omputer is waiting for you to type in a ommand VARIABLES The omputer an store a number in one of 2 ways: (i) as an integer, or (ii) as a real number. An integer is stored exatly, meaning the number 1234 is stored in the omputer memory as 1234 with no deimal point. In fat, if you type a deimal point for an integer number, you will be told that you have made a mistake. A real number, on the other hand is stored as a deimal fration. A format statement in myprogram.f has the speifiation f10.5. This means that the number is a real number. So-alled real numbers often are not stored exatly by the omputer. The way it works is that about seven signifiant figures are saved in the mahine plus an exponent, i.e. a power of 10. Thus, for example the number (1/3000) is stored as x 10. The last digit 4 is wrong, of ourse; that s beause the omputer really only saves 6.7 digits in the portion of the word alled the mantissa. The number -3 is stored in the exponent part of the word and is stored exatly. The plae in the memory of the omputer where a number is stored is alled a word. The word size used for integers is different from the size used for real numbers. For both integer words and real words, there is a largest possible number that an be stored. Finally, sine there are two types of numbers, how does the omputer know whether a given variable is to be interpreted as a real number or as an integer number? It is possible to delare the type of number eah variable is, but it is easier (and safer) to use the default settings. These are: Any variable whose first letter is i, j, k, l, m or n is taken to be an integer Any other first letter, that is a-h and o-z is taken to be real. And remember, all variables must start with a letter, not a number. Thus a2 is an aeptible variable name but 2a is not. Suppose I wanted to assign a very big number to a variable, or to write or read a very big number from the ommand window. Say the number is Using the f-format 6

7 that we introdued, we would need to use a lot of zeros as plae holders. Instead, of ourse, we want to use sientifi notation. In fortran, this format is alled floating point form or exponential form and a proper FORTRAN assignment statement would be av=6.023e23 Other aeptable forms are av=.6023e24 av=6023.e20 av= e020 While the last form is o.k., there is no good reason for writing the number this way sine the extra zeros onvey no extra information ARITHMETIC OPERATIONS The standard arithmeti operations work just the way you expet; thus addition is +, substration is -, division is / but note multipliation uses the *. Also, raising a number to an exponent uses **. A ompliated statement using several variables and arithmeti operations must be written on a single line. We an t draw a fration, for example, with a numerator lying above a denominator. For this reason, we will use parentheses ( ) in pairs. Suppose I want to program the formula for the drag oeffiient (of a ar, say), An aeptable FORTRAN statement would be drag=dr/(.5*rho*v**2*a) There are several things to note here: 1. I have written as The parentheses are used to signify that all of left out ( ), viz drag=dr/.5*rho*v**2*a belongs in the denominator. If I had the formula would have been interpreted inorretly as 7

8 3. The exponentiation, in FORTRAN, is done first; thus v**2*a means not. If you are not sure, in a ompliated expression, that the operations are being done orretly, there is nothing wrong with inserting an extra set of ( ). Thus another perfetly fine way of writing the statement is drag=dr/(.5*rho*(v**2)*a) This also makes it a bit easier to read. All parentheses must be mathed; if you have four ( but only three ) in an assignment statement, you will get an error message and the program will not ompile. 4. The names used for the variables are arbitrary exept that, beause they are to be interpreted as real numbers, they all start with a-h or o-z. I ould have used r instead of rho, et CONVERSIONS BETWEEN REAL & INTEGER NUMBERS & VARIABLES The statement ri=i onverts an integer number on the right of the equal sign to a real number on the left. More exatly, what it does is to reate a new real variable ri and sets its value equal to the urrent value in i. Thus if i = -2 then ri will be set equal to (-2.). Note the deimal point, it is very important. It is what distinguishes a real number from an integer. The bakward onversion is more interesting. Suppose ri = 2.3, what will the following statement do? i = ri Well, sine i has to be an integer, it an t be set equal to 2.3. Instead it will trunate to the integer value i = 2 (without the deimal point of ourse). This an be very useful sometimes, but it an also ause problems. Suppose the drag formula had been oded as drag=dr/((1/2)*rho*(v**2)*a) 8

9 It will not work! The reason is that neither 1 nor 2 have deimal points. Thus they are both onsidered to be integers. Moreover the quotient 1/2 is also interpreted as an integer and is assigned the trunated value 0. Finally, beause the zero is in the denominator, drag will be assigned the value and will be printed out as Inf. Using real and integer variables or numbers in the same expression is alled mixed mode arithmeti. It is a ommon ause of mistakes and the best programming pratie is to onsistently avoid this mixing in a given FORTRAN statement. Thus all numerial onstants in formulas should be oded with a deimal point. Exponents like the 2 in v**2 an be written using an integer; however v**2. is also o.k BASIC SUPPLIED FUNCTIONS In addition to to the arithmeti operations and the exponentiation operator **, there are a number of standard funtions supplied with FORTRAN. Familar ones, with sample FORTRAN statements are sine osine tangent natural log base 10 log artangent absolute value square root yy=sin(x/2.) z=os(x/2./b) a=tan(2.5*b) q=alog(ss) q=alog10(x/2.) yy=atan(x/2.) z2=abs(z) z=sqrt(x**2 + y**2) Beause eah of these funtions alulates a real value, funtions whose names do not naturally start with a-h or o-z have an a attahed to the beginning of their names. Thus the base 10 or ommon logarithm is alled alog10 rather than log10. Also the ation of the sqrt funtion is no different from what you would get if you wrote z=(x**2 + y**2)**.5 instead. Maximums and minimums: There are several different funtions for seleting the maximum and minimum values from a set of numbers. Examples of these funtions are: real max of reals real max of integers integer max of integers integer max of reals yy=amax1(a,b,) yy=amax0(i,j,kk,mmm) kkr=max0(i,j,kk) k=max1(a,b) 9

10 The orresponding funtions that assign the minimum rather than maximum values are exatly the same, exept max is replaed by min. Also the pattern here is not too hard to remember. If the value you are alulating is to be an integer, the funtions that alulate the max or min start with the letter m whih is part of list i-n that is used to name integers. If the value you are alulating is real then the funtion is amax... rather than max... sine the a implies the answer is to be real. Also if the arguments are integers, the funtion name ends in 0, while if the arguments are reals, the funtion name ends in 1. As examples yy=amin1(2.3, -1., -1.e-2) assigns the value -1. to yy. Notie that I an use either the frational or the exponential way of writing a onstant. Also ibig=max1(2.3, -1., -1.e-2) sets ibig to 2 (without a period of ourse) beause it first finds the maximum among the real values inside the ( ) and then it trunates that real value into an integer value THE LOGICAL IF STATEMENT AND SOME OPERATORS Sometimes we need to perform a alulation only if a partiular statement is true. The funtion that does this is alled the logial if. The syntax is if(ondition)fortran statement The ondition is either true or false. If the statement is true, then the fortran statement is exeuted. If the ondition turns out to be false, the statement is not exeuted. Very often, the ondition involves determining whether one number is greater than (or less than) another. There are six relational operators that we need. They are equal to not equal to greater than less than greater than or equal to less than or equal to.eq..ne..gt..lt..ge..le. We also need the logial operators 10

11 .and..or. The operator.and. is used to ombine two onditions. statement1.and. statement2 is true if both statements are true. If one or both is false, then the ombination is false. The operator.or. is true if one of the statements is true. If both are true, it is also true. Notie the periods (.) on either side of ne,and, et. They are part of the operators and must be inluded. Example: The Inome Tax Table The little program in Fig. 3 alulates your United States Inome Tax. Your tax is, of ourse, determined by your inome. The United States Inome Tax is based on your so-alled adjusted gross inome (agi). Under an old Tax Rate Shedule, whih we will use, there are only three brakets : inome less than $3000/year, inome between $3000 and $24650, and inome greater than $ A different tax formula is used for eah of these brakets. Speifially, the marginal tax rates are zero, 15%, and 28% respetively. A flowhart is used to help write the omputer program. It is shown in Fig. 3FC. Tests are shown in boxes with pointed ends. The answer to eah test is either yes (Y) or no (N). Instrutions or alulations that need to be exeuted are given in retangles. The diretion of flow is from top to bottom. A FORTRAN program alled ustax.f, orresponding to the flowhart is shown in Fig. 3. Note the use of the logial if and the logial operator.and.. Exerise The inome tax table in ustax.f is the old table. Taxes were raised for high inome earners about five years ago. Two new brakets were added: inome above $100,000 is taxed at 31 % and inome above $250,000 is taxed at 36%. Modify ustax.f to aount for the new tax table. Run it at least five times to make sure that it works. Submit a listing of the new program and the results of your runs. 11

12 program ustax write(6,100) 100 format( what is your adjusted gross inome? Enter. ) read(5,110)agi 110 format(f12.0) if(agi.le.3000.)tax=0. if((agi.gt.3000.).and.(agi.le )) 1 tax=.15*(agi-3000.) if(agi.gt )tax= *(agi ) write(6,200)tax 200 format( your tax is $,f12.2) end Figure 3: The program ustax.f Read inome agi Y agi < $3000 N tax = 0 Y $3000 < agi < $24650 N tax =.15*(agi ) Y agi > $24650 N tax = *(agi ) stop Fig. 3FC: Flowhart for inome tax alulation. 12

13 1.3.6 READING NUMBERS FROM A FILE; THE OPEN STATEMENT A hiken farmer needs to find the average weight of eggs his hens are laying on a partiular day. He takes a random sample, say 10 or 20 eggs, and reords the weight of eah, in grams, in a file alled weight.dat. (He reates and types the weights into a file using the Openwindows Text Editor, putting eah weight on a separate line.) We have been hired to write a short FORTRAN program to alulate and print out the average weight. The first thing we need to do is to tell our program where to find the data. We assign a unit number to the data file weight.dat. We an hoose a small positive integer number for the unit, exept that we an t use unit=5 or unit=6 beause they are reserved for reading from, and writing onto, the ommand window. We also need to open the data file that our program is going to read from. By the way, the farmer doesn t always use the same number of sample weights on a given day and the program must be flexible enough to use a variable number of eggs. A FORTRAN program alled average.f is shown in Fig. 4. Also shown is the data file and the dialog in the ommand window. The program inludes the open statement open(unit=4,file= weight.dat,status= old ) Notie that there are three speifiations, separated by ommas. The first is unit=4 whih tells the program that the read statement should refer to that unit number, i.e. read(4,100)weight The seond tells it that unit 4 is the file weight.dat. The last speifiation says that the file weight.dat already exists, that is, it is an old file. Other status speifiations are new and unknown. New is used if you want the program to reate a file that into whih you are going to write information. Unknown is used if you wish to write repeatedly onto the same file and over-write the data that existed there before. When you examine the program average.f you will see a number of new ommands that we haven t talked about yet. An example is the rewind 4 ommand. Let s explain what the logi is. Suppose the file did not ontain any data at all. Then, if we did not aount for this possibility, the empty file would supply, in effet a zero value for the weight. But this is wrong, of ourse. So first we test to see if the first line ontains a weight by testing it using if(weight.gt.0.)goto 10 This statement inludes something else that we haven t seen before: goto 10. It tells the program that the next statement that should be exeuted is the one labeled as 10. The goto 13

14 program average open(unit=4,file= weight.dat,status= old ) n=0 sumwt=0. read(4,100)weight 100 format(f10.0) rewind 4 if(weight.gt.0.)goto 10 write(6,200) 200 format( The file is empty,...stop ) stop 10 ontinue read(4,100)weight if(weight.le.0.)goto 20 n=n+1 sumwt=sumwt+weight goto ontinue alulate average weight rn=n wtav=sumwt/rn write(6,300)n,wtav 300 format( The number of samples is,i4, Average weight =, e15.5) stop end Figure 4: The program average.f Figure 5: The data file weight.dat > g77 average.f > a.out The number of samples is 4 Average weight = E+02 > Figure 6: The ommand window for running average.f 14

15 statement is sometimes alled a transfer of ontrol statement. It ould also be written with a spae, i.e. as go to, if you prefer. So the whole statement means, if the weight is greater than zero, exeute statement 10 next. Suppose this is not true; then you don t go to 10. Instead you exeute the write statement saying that the file is empty and you stop. stop is a FORTRAN ommand meaning that the program is to terminate here and now. There an be many stop ommands in a program but only one end. So why did we rewind unit 4 after the first read ommand? First, rewind means go to the top of the file. Think of it as if a pointer exists in the file and every time a line is read, the pointer moves down one line. Rewind was neessary beause the number was read just as a test to see if the file was empty. Usually, unless the farmer messed up, the file will not be empty, in whih ase that first weight needs to be read again. Let s now onsider the logi in the program. The integer number n is being used as a ounter to see how many weights are being read before an empty line is enountered. This is done using the statement n=n+1 The variable sumwt is an aumulator. Every time we read a non-zero weight, we add it to sumwt using the statement sumwt=sumwt+weight When the program finally reads a zero weight, ontrol is transferred to line 20 by the statement if(weight.le.0.)goto 20 and then the average weight is alulated using wtav=sumwt/rn Notie that we used the ommand rn=n in order to avoid mixed-mode arithmeti. We always try to program to take into aount possible ways the program ould fail. Thus we use the relational operator.le. rather than.eq. Why? A negative weight makes no sense and we want to stop the program. How ould this happen? Well, anything is possible and.le. is safer than.eq. A more serious potential problem is in the loop starting at 10 ontinue and ending at the unonditional goto statement goto 10. Every time the program reahes goto 10, ontrol is transferred to 10 ontinue. Fortunately there is the test statement 15

16 if(weight.le.0.)goto 20 in the loop that allows the program to get out of the loop. If that statement were not there, the loop would lassify as an endless loop. The omputer would endlessly yle, reading zero weights as n inreased to ridiulously large values. Additional protetion against an endless loop ould have been provided by putting the fail-safe statement if(n.gt.1000)stop into the loop. This assumes, of ourse, that the farmer would never intentionally insert more than 1000 weights into the file weight.dat. Finally, the program average.f inludes the two statements 10 ontinue and 20 ontinue The word ontinue is a dummy ommand and is used when we wish merely to mark a position in the program by the line number. 16

17 1.3.7 DO-LOOPS Another way of preventing the possibility of an endless loop is to use a do-loop. Do-loops are a very important and powerful part of FORTRAN programming. A do-loop starts will the statement do 50 jjj=1,jmax and ends with the statement 50 ontinue In the do statement, 50 (or some other number) is the statement number, jjj is an integer variable, and jmax is an integer variable or an integer onstant representing the maximum value of jjj. jjj will be inremented by one for eah pass through the do-loop. Figure 7 shows the modified portion of the program of average.f where a do-loop has been used to replae the unonditional goto. We will use do-loops for other purposes below. 10 ontinue do 50 jj=1,100 read(4,100)weight if(weight.le.0.)goto 20 n=n+1 sumwt=sumwt+weight 50 ontinue 20 ontinue alulate average weight. Figure 7: Modifiation to program average.f illustrating use of a do-loop A more general form of the do-loop ommand is do 100 i = istart,iend,inrement where the inrement an be either a positive or negative integer. In the latter ase, iend would need to be less than istart. 17

18 1.3.8 SUBSCRIPTED VARIABLES AND THE DIMENSION STATEMENT There are many reasons why we might want to onsider a group of numbers as members of the same lass and assign a ommon name to them. Suppose, for example, that a person who sells fenes needs a program to alulate the total length of the perimeter of an irregularly-shaped piee of land. We are given the artesian oordinates for the loation of the (previously-ereted) fene posts on the boundary of the plot of land. The FORTRAN program peri.f, the input data file, and the ommand window are shown in the figures program peri Calulates the total perimeter length of a polygon, given the (x,y) oordinates of the verties. dimension x(100),y(100) open(unit=4,file= xydata.dat,status= old ) read(4,*)nvert do 20 n=1,nvert 20 read(4,*)x(n),y(n) sumlen=0. do 40 i=1,nvert-1 dis2=(x(i+1)-x(i))**2+(y(i+1)-y(i))**2 sumlen=sumlen+sqrt(dis2) 40 ontinue dis2=(x(nvert)-x(1))**2+(y(nvert)-y(1))**2 sumlen=sumlen+sqrt(dis2) perim=sumlen print 110, nvert,perim 110 format(2x, Number of verties =,i5, Total perimeter =,e14.6, 1 feet ) stop end Figure 8: The program peri.f Figure 9: The data file xydata.dat that is read by peri.f 18

19 > g77 peri.f > a.out Number of verties = 4 Total perimeter = E+02 feet > Figure 10: The ommand window after running peri.f FUNCTION SUBPROGRAMS AND SUBROUTINES Eah of the FORTRAN programs onsidered so far onsists of a single main program. When writing large ompliated programs, it is good pratie to divide up the program into a main program and one or more subprograms. There are several reasons for doing this: 1. It an make the program easier to understand beause the logial flow is more lear. 2. It an make it easier to find mistakes sine the ompiler will tell the programmer in whih subprogram the diffiulty probably is. Consider the so-alled funtion subprogram. It works like the basi supplied funtions sin(x), abs(y), et. exept that the programmer supplies his own way of alulating the partiular funtion. As an example, onsider again an inome tax alulation. In the previous example, we did not onsider one aspet of the tax ode, the dedutions allowed for dependents. This is an amount that is subtrated from the adjusted gross inome before the tax table is applied to the rest. Suppose the dedution for eah dependent is $3000 unless the adjusted gross inome is greater than $100,000 in whih ase the dedution, per dependent is only $2000. Suppose also that there are only two tax rates; 15 per ent on inome up to $30,000 and 28 per ent on the inome above this. [We will use this formula even though there is a little problem with it; the dedution should be gradually redued, rather than as a step jump.] A FORTRAN program that uses two different funtion subprograms to solve this inome tax problem is shown in Fig

20 program taxdep program to alulate inome tax with two different dedutions for dependents. Illustrates use of funtion subprograms. ommon/inome/agi write(6,100) 100 format( what is your adjusted gross inome? Enter. ) read(5,110)agi 110 format(f12.0) write(6,120) 120 format( Enter number of dependents as an integer ) read(5,130)idep 130 format(i5) if(agi.le )tax=tax1(idep) if(agi.gt )tax=tax2(idep) tax=amax1(tax,0.) write(6,200)tax 200 format( your tax is $,f12.2) end funtion tax1(i) ommon/inome/agi ri=i ti=agi-3000.*ri if(ti.gt.30000)goto 10 tax1=.15*ti return 10 ontinue tax1=.15* tax1=tax1+.28*(ti ) return end funtion tax2(i) ommon/inome/agi ri=i ti=agi-2000.*ri if(ti.gt.30000)goto 10 tax2=.15*ti return 10 ontinue tax2=.15* tax2=tax2+.28*(ti ) return end Figure 11: The program taxdep.f 20

21 In the program, the user supplies the adjusted gross inome (agi) and the number of dependents. Then, depending on agi, either one or the other of the funtions tax1 or tax2 is alled. The argument of eah funtion is idep, the number of dependents. The two funtion subprograms are loated in the file after the mainprogram taxdep. They are the same exept for the dedution-per-dependent in the fourth line of eah subprogram and. Beause the Openwindows Text Editor has ut-paste apability, it is easy to generate tax2 by starting with a opy of tax1 and making the appropriate hanges. Notie some other things as well: 1. The seond line in eah subprogram, as well as in the main program is a named ommon delaration ommon/inome/agi Obviously eah funtion tax1 or tax2 needs to know what the agi is. This is aomplished by using the ommon delaration whih tells eah subprogram to store or find the number in the same loation in the omputer memory, i.e. in a ommon loation. The name of the partiular ommon region in memory was alled inome. If there is only one ommon blok, as here, the name ould be omitted. A number of different variables or dimensioned arrays an be put in a single ommon blok. If more than one item is mentioned in a ommon statement, the items are separated by ommas. 2. The two piees of information that tax1 and tax2 need are the agi and the number of dependents idep. idep is transferred as the argument of eah funtion while agi is transferred via ommon. Atually both number ould have been transferred by the funtion all. We ould have used instead tax=tax1(idep,agi) In this ase the ommon statements would not have been neessary (and should not be used). Of ourse the number and type (real or integer) of funtion arguments must be the same in the title of the funtion as they are when they are alled. Thus if the above two arguments are used, we must also hange the funtion title to funtion tax1(i,agi) Notie that the name of the variable does not neessarily have to be the same in the funtion all as it is in the funtion name. Here we used idep in the all and just i in the name. 3. In eah funtion the ommand return appears twie. Return transfers ontrol bak to the main program after the tax value has been alulated. A funtion that uses logi, like the ones used here, will typially have more than one return. 21

22 Subroutines A subroutine works muh like a funtion subprogram exept it has more powerful apability. As we have seem, a funtion subprogram is used to return one alulated value to the main program. A subroutine, on the other hand, an do just about any task that might otherwise be done in the main program. Often very long omputer programs have a very short main program. The main program basially ontains a sequene of alls to a number of subroutines. The subroutines do most of the atual work; the main program ats like a table of ontents. It tells what the program is about without going into any of the details. For example, the program peri.f an be re-written to use a subroutine to do the perimeter alulation and another subroutine to do the printing. Figure 8-1 shows perisub.f, the modified version of peri.f. program perisub Calulates the total perimeter length of a polygon, given the (x,y) oordinates of the verties. ommon nvert,x(100),y(100) open(unit=4,file= xydata.dat,status= old ) read(4,*)nvert do 20 n=1,nvert 20 read(4,*)x(n),y(n) all al(perim) all pprint(nvert,perim) stop end subroutine al(perim) ommon nvert,x(100),y(100) sumlen=0. do 40 i=1,nvert-1 dis2=(x(i+1)-x(i))**2+(y(i+1)-y(i))**2 sumlen=sumlen+sqrt(dis2) 40 ontinue dis2=(x(nvert)-x(1))**2+(y(nvert)-y(1))**2 sumlen=sumlen+sqrt(dis2) perim=sumlen return end subroutine pprint(nvert,perim) print 110, nvert,perim 110 format(2x, Number of verties =,i5, Total perimeter =,e14.6, 1 feet ) return end Figure 8-1: Modifiations to program peri.f illustrating use of subroutines. Eah subroutine is invoked using the word all and eah subroutine has a return statement 22

23 to transfer ontrol bak to the main program. Subroutine al requires information from the main program. This information an be provided either by putting the numbers in ommon or by passing then through as arguments of the subroutine all. The ommon blok is used to transfer the variable nvert and the two dimensioned arrays x(100) and y(100). The all is used to transfer the alulated variable perim bak to the main program. When dimensioned arrays are mentioned in ommon, that is the plae where they are dimensioned and a separate dimension statement should not be given. The subroutine pprint needs the numbers nvert and perim. They are both passed through the subroutine all. We ould have also used a separate subroutine to read the data instead of reading it in the main program. See if you an make that work. If you do that, the main program would then only onsist of alls to the subprograms. Note that the main program and the subroutines are all inluded in the same file. They are all ompiled together by the single ommand f77 perisub.f DRAWING PLOTS OF YOUR OUTPUT; THE GNUPLOT UTILITY Most UNIX systems have a publi-domain easy-to-use plotting program alled gnuplot that works in X-windows. Lets identify the problem in the tax rate shedule used by the program taxdep.f. The problem with the tax algorithm is that inreasing your inome from just under $100,000 to just over $100,000 auses a step-jump inrease in your tax; you an atually have less money after taxes if you make a little more. To see how bad this problem is, let s use taxdep.f to alulate the tax for inomes from $1000 to $200,000 in inrements of $1000. Rather than run the program 200 times, we will put a do-loop in the program (See Fig. 12). We just show, in this figure, the modified main program, alled taxdep1. We do not need to make any hanges in the two funtions tax1 and tax2. 23

24 program taxdep1 dimension gross(500),tx(500),rate(500),ati(500) ommon/inome/agi idep=4 do 20 ii=1,200 ri=ii agi=1000.*ri gross(ii)=agi if(agi.le )tax=tax1(idep) if(agi.gt )tax=tax2(idep) tax=amax1(tax,0.) tx(ii)=tax rate(ii)=tx(ii)/gross(ii) ati(ii)=gross(ii)-tx(ii) 20 ontinue open(unit=3,file= txresult,status= unknown ) do 40 i=1,200 write(3,200)gross(i),tx(i),rate(i),ati(i) 200 format(4e15.5) 40 ontinue lose(unit=3) end Figure 12: Modifiations to main program taxdep taxdep1 We use the dimension statement to reate four arrays, eah of length 500. The dimension statement should be the first statement after the title (ignoring any omments, of ourse). The four arrays, in order, will ontain the gross inome, the alulated tax (tx), the tax rate (rate), and the aftertax-inome (ati). The number of dependents (idep) is set to 4 in the program. There are atually two do-loops in the program. The first (do 20...) alulates the tax, as before, as well as the rate and the ati. As these values are alulated, they are saved in the dimensioned arrays. The seond do-loop (do 40...) writes the arrays into a file alled txresult. Note the use of the open and lose statements for unit=3. The lose statement is new to us. Using it is good programming pratie. Modern omputer proessors use pipelining. This means, in effet, that they do more than one thing at a time. Expliitly losing the file prevents problems that an sometimes happen beause of pipelining. Notie that we use e rather than f format to write the numbers into the file txresult. The output numbers an be either quite large or quite small and the e-format an be ounted on to work while the f-format might overflow. 24

25 Notie that the maximum dimension, i.e. 500, is greater than the maximum value of ii or i used in the program. This is fine. What would be no good is if the program tried to alulate an array element whose index is larger than 500. Figure 13 shows the after-tax-inomes alulated for gross inomes between $97,000 and $105,000. This plot is reated by gnuplot whih is invoked simply by typing gnuplot at the prompt in the ommand window. The dialog is shown in Fig After-Tax Inome ($) txresult gross inome $ Figure 13: After tax inome plotted using gnuplot. > gnuplot G N U P L O T Linux version 3.7 pathlevel 0.2 last modified Wed Aug 18 14:06:10 CEST 1999 Type help to aess the on-line referene manual The gnuplot FAQ is available from < ig25/gnuplot-faq/> Send omments and requests for help to <info-gnuplot@dartmouth.edu> Send bugs, suggestions and mods to <bug-gnuplot@dartmouth.edu> Terminal type set to x11 gnuplot> set grid gnuplot> plot[97000:105000] txresult u 1:4 with linesp gnuplot> set xlabel gross inome ($) gnuplot> set title After-Tax Inome ($) gnuplot> plot[97000:105000] txresult u 1:4 with linesp gnuplot> Figure 14: The dialog used to reate the gnuplot shown in Fig

26 Gnuplot is alled by typing gnuplot in the ommand window as shown. The next few lines are written by gnuplot giving you information about the authors, et. The gnuplot prompt is gnuplot> as shown. The datafile txresult ontains 4 olumns of numbers reated by running the program taxdep1.f. The first olumn ontains the gross inome numbers and the fourth olumn the orresponding values of ati, the after tax inome. The plot ommand plot[97000:105000] txresult u 1:4 with linesp means plot, with horizontal axis values from to , the ontents of file txresult using the data from olumn 1 as the x data and the data from olumn 4 as the y data. Make the plot using linespoints, that is put a big dot at eah data point and onnet the data points with lines. The simplest gnuplot ommand plot txresult would plot using the default settings that the x olumn is olumn 1 and the y olumn is olumn 2. All pairs (x,y) are plotted and the points are marked with dots. They are not onneted with lines. Gnuplot has many other apabilities inluding three-dimensional plotting. A full manual an be found on the Web. It also has a good on-line help faility invoked by typing help at the gnuplot> prompt. 26

27 Some exerises The equation is alled transendental. There is no diret proedure for solving transendental equations like there is for solving quadrati equations, for example. One method is alled iteration. In this method, we find a sequene of numbers using We ontinue to use the formula until the onverge, thst is until the values don t hange any more. (i) Write a Fortran program to solve. Find orret to 6 signifiant figures. Chek your answer with a hand alulator. (ii) Any iteration requires a starting value, say, and I haven t told you what value to use. Does that mean that all starting values will give the same final result for? Try a number of values of and say, in words, what happens. (iii) Iteration methods do not always work. Consider where is a positive onstant. Try iteration for =.2 and =5. What happens? Find a ondition on that guarantees onvergene. (iv) Gnuplot an onveniently be used to solve transendental equations beause it an plot many funtions automatially. Also, one an set the and ranges of the plot. This an be used to zoom in on the answer. How many values of satisfy Find eah of these values orret to 5 signifiant figures. 27

An Event Display for ATLAS H8 Pixel Test Beam Data

An Event Display for ATLAS H8 Pixel Test Beam Data An Event Display for ATLAS H8 Pixel Test Beam Data George Gollin Centre de Physique des Partiules de Marseille and University of Illinois April 17, 1999 g-gollin@uiu.edu An event display program is now

More information

represent = as a finite deimal" either in base 0 or in base. We an imagine that the omputer first omputes the mathematial = then rounds the result to

represent = as a finite deimal either in base 0 or in base. We an imagine that the omputer first omputes the mathematial = then rounds the result to Sientifi Computing Chapter I Computer Arithmeti Jonathan Goodman Courant Institute of Mathemaial Sienes Last revised January, 00 Introdution One of the many soures of error in sientifi omputing is inexat

More information

Chapter 2: Introduction to Maple V

Chapter 2: Introduction to Maple V Chapter 2: Introdution to Maple V 2-1 Working with Maple Worksheets Try It! (p. 15) Start a Maple session with an empty worksheet. The name of the worksheet should be Untitled (1). Use one of the standard

More information

Background/Review on Numbers and Computers (lecture)

Background/Review on Numbers and Computers (lecture) Bakground/Review on Numbers and Computers (leture) ICS312 Mahine-Level and Systems Programming Henri Casanova (henri@hawaii.edu) Numbers and Computers Throughout this ourse we will use binary and hexadeimal

More information

Outline: Software Design

Outline: Software Design Outline: Software Design. Goals History of software design ideas Design priniples Design methods Life belt or leg iron? (Budgen) Copyright Nany Leveson, Sept. 1999 A Little History... At first, struggling

More information

Reading Object Code. A Visible/Z Lesson

Reading Object Code. A Visible/Z Lesson Reading Objet Code A Visible/Z Lesson The Idea: When programming in a high-level language, we rarely have to think about the speifi ode that is generated for eah instrution by a ompiler. But as an assembly

More information

1 The Knuth-Morris-Pratt Algorithm

1 The Knuth-Morris-Pratt Algorithm 5-45/65: Design & Analysis of Algorithms September 26, 26 Leture #9: String Mathing last hanged: September 26, 27 There s an entire field dediated to solving problems on strings. The book Algorithms on

More information

Reading Object Code. A Visible/Z Lesson

Reading Object Code. A Visible/Z Lesson Reading Objet Code A Visible/Z Lesson The Idea: When programming in a high-level language, we rarely have to think about the speifi ode that is generated for eah instrution by a ompiler. But as an assembly

More information

13.1 Numerical Evaluation of Integrals Over One Dimension

13.1 Numerical Evaluation of Integrals Over One Dimension 13.1 Numerial Evaluation of Integrals Over One Dimension A. Purpose This olletion of subprograms estimates the value of the integral b a f(x) dx where the integrand f(x) and the limits a and b are supplied

More information

Drawing lines. Naïve line drawing algorithm. drawpixel(x, round(y)); double dy = y1 - y0; double dx = x1 - x0; double m = dy / dx; double y = y0;

Drawing lines. Naïve line drawing algorithm. drawpixel(x, round(y)); double dy = y1 - y0; double dx = x1 - x0; double m = dy / dx; double y = y0; Naïve line drawing algorithm // Connet to grid points(x0,y0) and // (x1,y1) by a line. void drawline(int x0, int y0, int x1, int y1) { int x; double dy = y1 - y0; double dx = x1 - x0; double m = dy / dx;

More information

Calculation of typical running time of a branch-and-bound algorithm for the vertex-cover problem

Calculation of typical running time of a branch-and-bound algorithm for the vertex-cover problem Calulation of typial running time of a branh-and-bound algorithm for the vertex-over problem Joni Pajarinen, Joni.Pajarinen@iki.fi Otober 21, 2007 1 Introdution The vertex-over problem is one of a olletion

More information

Algorithms for External Memory Lecture 6 Graph Algorithms - Weighted List Ranking

Algorithms for External Memory Lecture 6 Graph Algorithms - Weighted List Ranking Algorithms for External Memory Leture 6 Graph Algorithms - Weighted List Ranking Leturer: Nodari Sithinava Sribe: Andi Hellmund, Simon Ohsenreither 1 Introdution & Motivation After talking about I/O-effiient

More information

HEXA: Compact Data Structures for Faster Packet Processing

HEXA: Compact Data Structures for Faster Packet Processing Washington University in St. Louis Washington University Open Sholarship All Computer Siene and Engineering Researh Computer Siene and Engineering Report Number: 27-26 27 HEXA: Compat Data Strutures for

More information

On - Line Path Delay Fault Testing of Omega MINs M. Bellos 1, E. Kalligeros 1, D. Nikolos 1,2 & H. T. Vergos 1,2

On - Line Path Delay Fault Testing of Omega MINs M. Bellos 1, E. Kalligeros 1, D. Nikolos 1,2 & H. T. Vergos 1,2 On - Line Path Delay Fault Testing of Omega MINs M. Bellos, E. Kalligeros, D. Nikolos,2 & H. T. Vergos,2 Dept. of Computer Engineering and Informatis 2 Computer Tehnology Institute University of Patras,

More information

Pipelined Multipliers for Reconfigurable Hardware

Pipelined Multipliers for Reconfigurable Hardware Pipelined Multipliers for Reonfigurable Hardware Mithell J. Myjak and José G. Delgado-Frias Shool of Eletrial Engineering and Computer Siene, Washington State University Pullman, WA 99164-2752 USA {mmyjak,

More information

UCSB Math TI-85 Tutorials: Basics

UCSB Math TI-85 Tutorials: Basics 3 UCSB Math TI-85 Tutorials: Basis If your alulator sreen doesn t show anything, try adjusting the ontrast aording to the instrutions on page 3, or page I-3, of the alulator manual You should read the

More information

Year 11 GCSE Revision - Re-visit work

Year 11 GCSE Revision - Re-visit work Week beginning 6 th 13 th 20 th HALF TERM 27th Topis for revision Fators, multiples and primes Indies Frations, Perentages, Deimals Rounding 6 th Marh Ratio Year 11 GCSE Revision - Re-visit work Understand

More information

Finding the Equation of a Straight Line

Finding the Equation of a Straight Line Finding the Equation of a Straight Line You should have, before now, ome aross the equation of a straight line, perhaps at shool. Engineers use this equation to help determine how one quantity is related

More information

Graphs in L A TEX. Robert A. Beeler. January 8, 2017

Graphs in L A TEX. Robert A. Beeler. January 8, 2017 Graphs in L A TEX Robert A. Beeler January 8, 2017 1 Introdution This doument is to provide a quik and dirty guide for building graphs in L A TEX. Muh of the doument is devoted to examples of things that

More information

CleanUp: Improving Quadrilateral Finite Element Meshes

CleanUp: Improving Quadrilateral Finite Element Meshes CleanUp: Improving Quadrilateral Finite Element Meshes Paul Kinney MD-10 ECC P.O. Box 203 Ford Motor Company Dearborn, MI. 8121 (313) 28-1228 pkinney@ford.om Abstrat: Unless an all quadrilateral (quad)

More information

PHYS 3437: Computational Methods in Physics, Assignment 2

PHYS 3437: Computational Methods in Physics, Assignment 2 PHYS 3437: Computational Methods in Physis, Assignment 2 Set January 27th due Feb 26th NOTE: This assignment is potentially quite lengthy if you are urrently developing your programming skills. If so,

More information

Compilation Lecture 11a. Register Allocation Noam Rinetzky. Text book: Modern compiler implementation in C Andrew A.

Compilation Lecture 11a. Register Allocation Noam Rinetzky. Text book: Modern compiler implementation in C Andrew A. Compilation 0368-3133 Leture 11a Text book: Modern ompiler implementation in C Andrew A. Appel Register Alloation Noam Rinetzky 1 Registers Dediated memory loations that an be aessed quikly, an have omputations

More information

Multiple Assignments

Multiple Assignments Two Outputs Conneted Together Multiple Assignments Two Outputs Conneted Together if (En1) Q

More information

PASCAL 64. "The" Pascal Compiler for the Commodore 64. A Data Becker Product. >AbacusiII Software P.O. BOX 7211 GRAND RAPIDS, MICK 49510

PASCAL 64. The Pascal Compiler for the Commodore 64. A Data Becker Product. >AbacusiII Software P.O. BOX 7211 GRAND RAPIDS, MICK 49510 PASCAL 64 "The" Pasal Compiler for the Commodore 64 A Data Beker Produt >AbausiII Software P.O. BOX 7211 GRAND RAPIDS, MICK 49510 7010 COPYRIGHT NOTICE ABACUS Software makes this pakage available for use

More information

WORKSHOP 20 CREATING PCL FUNCTIONS

WORKSHOP 20 CREATING PCL FUNCTIONS WORKSHOP 20 CREATING PCL FUNCTIONS WS20-1 WS20-2 Problem Desription This exerise involves reating two PCL funtions that an be used to easily hange the view of a model. The PCL funtions are reated by reording

More information

Type of document: Usebility Checklist

Type of document: Usebility Checklist Projet: JEGraph Type of doument: Usebility Cheklist Author: Max Bryan Version: 1.30 2011 Envidate GmbH Type of Doumet Developer guidelines User guidelines Dutybook Speifiation Programming and testing Test

More information

Review (Law of sines and cosine) cosines)

Review (Law of sines and cosine) cosines) Date:03/7,8/01 Review 6.1-6. Objetive: Apply the onept to use the law of the sines and osines to solve oblique triangles Apply the onept to find areas using the law of sines and osines Agenda: Bell ringer

More information

Analysis of input and output configurations for use in four-valued CCD programmable logic arrays

Analysis of input and output configurations for use in four-valued CCD programmable logic arrays nalysis of input and output onfigurations for use in four-valued D programmable logi arrays J.T. utler H.G. Kerkhoff ndexing terms: Logi, iruit theory and design, harge-oupled devies bstrat: s in binary,

More information

ZDT -A Debugging Program for the Z80

ZDT -A Debugging Program for the Z80 ZDT -A Debugging Program for the Z80 il I,, 1651 Third Ave.. New York, N.Y. 10028 (212) 860-o300 lnt'l Telex 220501 ZOT - A DEBUGGING PROGRAM FOR THE ZAO Distributed by: Lifeboat Assoiates 1651 Third Avenue

More information

COMP 181. Prelude. Intermediate representations. Today. Types of IRs. High-level IR. Intermediate representations and code generation

COMP 181. Prelude. Intermediate representations. Today. Types of IRs. High-level IR. Intermediate representations and code generation Prelude COMP 181 Intermediate representations and ode generation November, 009 What is this devie? Large Hadron Collider What is a hadron? Subatomi partile made up of quarks bound by the strong fore What

More information

Introductory Programming, IMM, DTU Systematic Software Test. Software test (afprøvning) Motivation. Structural test and functional test

Introductory Programming, IMM, DTU Systematic Software Test. Software test (afprøvning) Motivation. Structural test and functional test Introdutory Programming, IMM, DTU Systemati Software Test Peter Sestoft a Programs often ontain unintended errors how do you find them? Strutural test Funtional test Notes: Systemati Software Test, http://www.dina.kvl.dk/

More information

A Novel Validity Index for Determination of the Optimal Number of Clusters

A Novel Validity Index for Determination of the Optimal Number of Clusters IEICE TRANS. INF. & SYST., VOL.E84 D, NO.2 FEBRUARY 2001 281 LETTER A Novel Validity Index for Determination of the Optimal Number of Clusters Do-Jong KIM, Yong-Woon PARK, and Dong-Jo PARK, Nonmembers

More information

Dynamic Programming. Lecture #8 of Algorithms, Data structures and Complexity. Joost-Pieter Katoen Formal Methods and Tools Group

Dynamic Programming. Lecture #8 of Algorithms, Data structures and Complexity. Joost-Pieter Katoen Formal Methods and Tools Group Dynami Programming Leture #8 of Algorithms, Data strutures and Complexity Joost-Pieter Katoen Formal Methods and Tools Group E-mail: katoen@s.utwente.nl Otober 29, 2002 JPK #8: Dynami Programming ADC (214020)

More information

Connection Guide. Installing the printer locally (Windows) What is local printing? Installing the printer using the Software and Documentation CD

Connection Guide. Installing the printer locally (Windows) What is local printing? Installing the printer using the Software and Documentation CD Page 1 of 7 Connetion Guide Installing the printer loally (Windows) Note: When installing a loally attahed printer, if the operating system is not supported y the Software and Doumentation CD, then the

More information

System-Level Parallelism and Throughput Optimization in Designing Reconfigurable Computing Applications

System-Level Parallelism and Throughput Optimization in Designing Reconfigurable Computing Applications System-Level Parallelism and hroughput Optimization in Designing Reonfigurable Computing Appliations Esam El-Araby 1, Mohamed aher 1, Kris Gaj 2, arek El-Ghazawi 1, David Caliga 3, and Nikitas Alexandridis

More information

1. The collection of the vowels in the word probability. 2. The collection of real numbers that satisfy the equation x 9 = 0.

1. The collection of the vowels in the word probability. 2. The collection of real numbers that satisfy the equation x 9 = 0. C HPTER 1 SETS I. DEFINITION OF SET We begin our study of probability with the disussion of the basi onept of set. We assume that there is a ommon understanding of what is meant by the notion of a olletion

More information

EXODUS II: A Finite Element Data Model

EXODUS II: A Finite Element Data Model SAND92-2137 Unlimited Release Printed November 1995 Distribution Category UC-705 EXODUS II: A Finite Element Data Model Larry A. Shoof, Vitor R. Yarberry Computational Mehanis and Visualization Department

More information

Algorithms, Mechanisms and Procedures for the Computer-aided Project Generation System

Algorithms, Mechanisms and Procedures for the Computer-aided Project Generation System Algorithms, Mehanisms and Proedures for the Computer-aided Projet Generation System Anton O. Butko 1*, Aleksandr P. Briukhovetskii 2, Dmitry E. Grigoriev 2# and Konstantin S. Kalashnikov 3 1 Department

More information

ENGINEERING update FOR 2.0 PRINTGEN. A C Page 1 of 120 PRINTGEN. Engineering Update (DAA -170)

ENGINEERING update FOR 2.0 PRINTGEN. A C Page 1 of 120 PRINTGEN. Engineering Update (DAA -170) o ENGINEERING update FOR 2.0 A-09-01159-01-C Page 1 of 120 Speifiations Subjet to Change. Convergent Tehnologies and NGEN are registered trademarks of Convergent Tehnologies, In. Convergent, CT-DBMS, CT-MAIL,

More information

SAND Unlimited Release Printed November 1995 Updated November 29, :26 PM EXODUS II: A Finite Element Data Model

SAND Unlimited Release Printed November 1995 Updated November 29, :26 PM EXODUS II: A Finite Element Data Model SAND92-2137 Unlimited Release Printed November 1995 Updated November 29, 2006 12:26 PM EXODUS II: A Finite Element Data Model Gregory D. Sjaardema (updated version) Larry A. Shoof, Vitor R. Yarberry Computational

More information

Colouring contact graphs of squares and rectilinear polygons de Berg, M.T.; Markovic, A.; Woeginger, G.

Colouring contact graphs of squares and rectilinear polygons de Berg, M.T.; Markovic, A.; Woeginger, G. Colouring ontat graphs of squares and retilinear polygons de Berg, M.T.; Markovi, A.; Woeginger, G. Published in: nd European Workshop on Computational Geometry (EuroCG 06), 0 Marh - April, Lugano, Switzerland

More information

A DYNAMIC ACCESS CONTROL WITH BINARY KEY-PAIR

A DYNAMIC ACCESS CONTROL WITH BINARY KEY-PAIR Malaysian Journal of Computer Siene, Vol 10 No 1, June 1997, pp 36-41 A DYNAMIC ACCESS CONTROL WITH BINARY KEY-PAIR Md Rafiqul Islam, Harihodin Selamat and Mohd Noor Md Sap Faulty of Computer Siene and

More information

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Test I Solutions

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Test I Solutions Department of Eletrial Engineering and Computer iene MAACHUETT INTITUTE OF TECHNOLOGY 6.035 Fall 2016 Test I olutions 1 I Regular Expressions and Finite-tate Automata For Questions 1, 2, and 3, let the

More information

Whole Numbers. Whole Numbers. Solutions. Curriculum Ready.

Whole Numbers. Whole Numbers. Solutions. Curriculum Ready. Whole Numbers Whole Numbers Solutions Curriulum Ready www.mathletis.om Copyright 009 P Learning. All rights reserved. First edition printed 009 in Australia. A atalogue reord for this book is available

More information

'* ~rr' _ ~~ f' lee : eel. Series/1 []J 0 [[] "'l... !l]j1. IBM Series/1 FORTRAN IV. I ntrod uction ...

'* ~rr' _ ~~ f' lee : eel. Series/1 []J 0 [[] 'l... !l]j1. IBM Series/1 FORTRAN IV. I ntrod uction ... ---- --- - ----- - - - --_.- --- Series/1 GC34-0132-0 51-25 PROGRAM PRODUCT 1 IBM Series/1 FORTRAN IV I ntrod ution Program Numbers 5719-F01 5719-F03 0 lee : eel II 11111111111111111111111111111111111111111111111

More information

Triangles. Learning Objectives. Pre-Activity

Triangles. Learning Objectives. Pre-Activity Setion 3.2 Pre-tivity Preparation Triangles Geena needs to make sure that the dek she is building is perfetly square to the brae holding the dek in plae. How an she use geometry to ensure that the boards

More information

Grade 6. Mathematics. Student Booklet SPRING 2009 RELEASED ASSESSMENT QUESTIONS. Assessment of Reading, Writing and Mathematics, Junior Division

Grade 6. Mathematics. Student Booklet SPRING 2009 RELEASED ASSESSMENT QUESTIONS. Assessment of Reading, Writing and Mathematics, Junior Division Grade 6 Assessment of Reading, Writing and Mathematis, Junior Division Student Booklet Mathematis SPRING 2009 RELEASED ASSESSMENT QUESTIONS Please note: The format of these booklets is slightly different

More information

Department of Electrical and Computer Engineering University of Wisconsin Madison. Fall

Department of Electrical and Computer Engineering University of Wisconsin Madison. Fall Department of Eletrial and Computer Engineering University of Wisonsin Madison ECE 553: Testing and Testable Design of Digital Systems Fall 2014-2015 Assignment #2 Date Tuesday, September 25, 2014 Due

More information

FORTRAN Programming in Nuclear Medicine

FORTRAN Programming in Nuclear Medicine FORTRAN Programming in Nulear Mediine Till Noever Emory University Hospital, Atlanta, Georgia This is the seond in a series of four ontinuing Eduation artiles on omputers in nulear mediine. After studying

More information

Constructing Transaction Serialization Order for Incremental. Data Warehouse Refresh. Ming-Ling Lo and Hui-I Hsiao. IBM T. J. Watson Research Center

Constructing Transaction Serialization Order for Incremental. Data Warehouse Refresh. Ming-Ling Lo and Hui-I Hsiao. IBM T. J. Watson Research Center Construting Transation Serialization Order for Inremental Data Warehouse Refresh Ming-Ling Lo and Hui-I Hsiao IBM T. J. Watson Researh Center July 11, 1997 Abstrat In typial pratie of data warehouse, the

More information

Gray Codes for Reflectable Languages

Gray Codes for Reflectable Languages Gray Codes for Refletable Languages Yue Li Joe Sawada Marh 8, 2008 Abstrat We lassify a type of language alled a refletable language. We then develop a generi algorithm that an be used to list all strings

More information

The Mathematics of Simple Ultrasonic 2-Dimensional Sensing

The Mathematics of Simple Ultrasonic 2-Dimensional Sensing The Mathematis of Simple Ultrasoni -Dimensional Sensing President, Bitstream Tehnology The Mathematis of Simple Ultrasoni -Dimensional Sensing Introdution Our ompany, Bitstream Tehnology, has been developing

More information

Extracting Partition Statistics from Semistructured Data

Extracting Partition Statistics from Semistructured Data Extrating Partition Statistis from Semistrutured Data John N. Wilson Rihard Gourlay Robert Japp Mathias Neumüller Department of Computer and Information Sienes University of Strathlyde, Glasgow, UK {jnw,rsg,rpj,mathias}@is.strath.a.uk

More information

The recursive decoupling method for solving tridiagonal linear systems

The recursive decoupling method for solving tridiagonal linear systems Loughborough University Institutional Repository The reursive deoupling method for solving tridiagonal linear systems This item was submitted to Loughborough University's Institutional Repository by the/an

More information

CA Test Data Manager 4.x Implementation Proven Professional Exam (CAT-681) Study Guide Version 1.0

CA Test Data Manager 4.x Implementation Proven Professional Exam (CAT-681) Study Guide Version 1.0 Implementation Proven Professional Study Guide Version 1.0 PROPRIETARY AND CONFIDENTIAL INFORMATION 2017 CA. All rights reserved. CA onfidential & proprietary information. For CA, CA Partner and CA Customer

More information

Incremental Mining of Partial Periodic Patterns in Time-series Databases

Incremental Mining of Partial Periodic Patterns in Time-series Databases CERIAS Teh Report 2000-03 Inremental Mining of Partial Periodi Patterns in Time-series Dataases Mohamed G. Elfeky Center for Eduation and Researh in Information Assurane and Seurity Purdue University,

More information

Connection Guide. Installing the printer locally (Windows) What is local printing? Installing the printer using the Software and Documentation CD

Connection Guide. Installing the printer locally (Windows) What is local printing? Installing the printer using the Software and Documentation CD Connetion Guide Page 1 of 5 Connetion Guide Installing the printer loally (Windows) Note: If the Software and Doumentation CD does not support the operating system, you must use the Add Printer Wizard.

More information

Folding. Hardware Mapped vs. Time multiplexed. Folding by N (N=folding factor) Node A. Unfolding by J A 1 A J-1. Time multiplexed/microcoded

Folding. Hardware Mapped vs. Time multiplexed. Folding by N (N=folding factor) Node A. Unfolding by J A 1 A J-1. Time multiplexed/microcoded Folding is verse of Unfolding Node A A Folding by N (N=folding fator) Folding A Unfolding by J A A J- Hardware Mapped vs. Time multiplexed l Hardware Mapped vs. Time multiplexed/mirooded FI : y x(n) h

More information

And, the (low-pass) Butterworth filter of order m is given in the frequency domain by

And, the (low-pass) Butterworth filter of order m is given in the frequency domain by Problem Set no.3.a) The ideal low-pass filter is given in the frequeny domain by B ideal ( f ), f f; =, f > f. () And, the (low-pass) Butterworth filter of order m is given in the frequeny domain by B

More information

with respect to the normal in each medium, respectively. The question is: How are θ

with respect to the normal in each medium, respectively. The question is: How are θ Prof. Raghuveer Parthasarathy University of Oregon Physis 35 Winter 8 3 R EFRACTION When light travels from one medium to another, it may hange diretion. This phenomenon familiar whenever we see the bent

More information

8 : Learning Fully Observed Undirected Graphical Models

8 : Learning Fully Observed Undirected Graphical Models 10-708: Probabilisti Graphial Models 10-708, Spring 2018 8 : Learning Fully Observed Undireted Graphial Models Leturer: Kayhan Batmanghelih Sribes: Chenghui Zhou, Cheng Ran (Harvey) Zhang When learning

More information

OvidSP Quick Reference Card

OvidSP Quick Reference Card OvidSP Quik Referene Card Searh in any of several dynami modes, ombine results, apply limits, use improved researh tools, develop strategies, save searhes, set automati alerts and RSS feeds, share results...

More information

What are Cycle-Stealing Systems Good For? A Detailed Performance Model Case Study

What are Cycle-Stealing Systems Good For? A Detailed Performance Model Case Study What are Cyle-Stealing Systems Good For? A Detailed Performane Model Case Study Wayne Kelly and Jiro Sumitomo Queensland University of Tehnology, Australia {w.kelly, j.sumitomo}@qut.edu.au Abstrat The

More information

- 1 - S 21. Directory-based Administration of Virtual Private Networks: Policy & Configuration. Charles A Kunzinger.

- 1 - S 21. Directory-based Administration of Virtual Private Networks: Policy & Configuration. Charles A Kunzinger. - 1 - S 21 Diretory-based Administration of Virtual Private Networks: Poliy & Configuration Charles A Kunzinger kunzinge@us.ibm.om - 2 - Clik here Agenda to type page title What is a VPN? What is VPN Poliy?

More information

Recursion examples: Problem 2. (More) Recursion and Lists. Tail recursion. Recursion examples: Problem 2. Recursion examples: Problem 3

Recursion examples: Problem 2. (More) Recursion and Lists. Tail recursion. Recursion examples: Problem 2. Recursion examples: Problem 3 Reursion eamples: Problem 2 (More) Reursion and s Reursive funtion to reverse a string publi String revstring(string str) { if(str.equals( )) return str; return revstring(str.substring(1, str.length()))

More information

Dynamic Algorithms Multiple Choice Test

Dynamic Algorithms Multiple Choice Test 3226 Dynami Algorithms Multiple Choie Test Sample test: only 8 questions 32 minutes (Real test has 30 questions 120 minutes) Årskort Name Eah of the following 8 questions has 4 possible answers of whih

More information

Direct-Mapped Caches

Direct-Mapped Caches A Case for Diret-Mapped Cahes Mark D. Hill University of Wisonsin ahe is a small, fast buffer in whih a system keeps those parts, of the ontents of a larger, slower memory that are likely to be used soon.

More information

1. Introduction. 2. The Probable Stope Algorithm

1. Introduction. 2. The Probable Stope Algorithm 1. Introdution Optimization in underground mine design has reeived less attention than that in open pit mines. This is mostly due to the diversity o underground mining methods and omplexity o underground

More information

8 Instruction Selection

8 Instruction Selection 8 Instrution Seletion The IR ode instrutions were designed to do exatly one operation: load/store, add, subtrat, jump, et. The mahine instrutions of a real CPU often perform several of these primitive

More information

Total 100

Total 100 CS331 SOLUTION Problem # Points 1 10 2 15 3 25 4 20 5 15 6 15 Total 100 1. ssume you are dealing with a ompiler for a Java-like language. For eah of the following errors, irle whih phase would normally

More information

Definitions Homework. Quine McCluskey Optimal solutions are possible for some large functions Espresso heuristic. Definitions Homework

Definitions Homework. Quine McCluskey Optimal solutions are possible for some large functions Espresso heuristic. Definitions Homework EECS 33 There be Dragons here http://ziyang.ees.northwestern.edu/ees33/ Teaher: Offie: Email: Phone: L477 Teh dikrp@northwestern.edu 847 467 2298 Today s material might at first appear diffiult Perhaps

More information

Connection Guide. Supported operating systems. Installing the printer using the Software and Documentation CD. Connection Guide

Connection Guide. Supported operating systems. Installing the printer using the Software and Documentation CD. Connection Guide Connetion Guide Page 1 of 6 Connetion Guide Supported operating systems Using the software CD, you an install the printer software on the following operating systems: Windows 8.1 Windows Server 2012 R2

More information

Query Evaluation Overview. Query Optimization: Chap. 15. Evaluation Example. Cost Estimation. Query Blocks. Query Blocks

Query Evaluation Overview. Query Optimization: Chap. 15. Evaluation Example. Cost Estimation. Query Blocks. Query Blocks Query Evaluation Overview Query Optimization: Chap. 15 CS634 Leture 12 SQL query first translated to relational algebra (RA) Atually, some additional operators needed for SQL Tree of RA operators, with

More information

MATH STUDENT BOOK. 12th Grade Unit 6

MATH STUDENT BOOK. 12th Grade Unit 6 MATH STUDENT BOOK 12th Grade Unit 6 Unit 6 TRIGONOMETRIC APPLICATIONS MATH 1206 TRIGONOMETRIC APPLICATIONS INTRODUCTION 3 1. TRIGONOMETRY OF OBLIQUE TRIANGLES 5 LAW OF SINES 5 AMBIGUITY AND AREA OF A TRIANGLE

More information

Multi-Piece Mold Design Based on Linear Mixed-Integer Program Toward Guaranteed Optimality

Multi-Piece Mold Design Based on Linear Mixed-Integer Program Toward Guaranteed Optimality INTERNATIONAL CONFERENCE ON MANUFACTURING AUTOMATION (ICMA200) Multi-Piee Mold Design Based on Linear Mixed-Integer Program Toward Guaranteed Optimality Stephen Stoyan, Yong Chen* Epstein Department of

More information

CA Release Automation 5.x Implementation Proven Professional Exam (CAT-600) Study Guide Version 1.1

CA Release Automation 5.x Implementation Proven Professional Exam (CAT-600) Study Guide Version 1.1 Exam (CAT-600) Study Guide Version 1.1 PROPRIETARY AND CONFIDENTIAL INFORMATION 2016 CA. All rights reserved. CA onfidential & proprietary information. For CA, CA Partner and CA Customer use only. No unauthorized

More information

OFF-LINE ROBOT VISION SYSTEM PROGRAMMING USING A COMPUTER AIDED DESIGN SYSTEM S. SRIDARAN. Thesis submitted to the Faculty of the

OFF-LINE ROBOT VISION SYSTEM PROGRAMMING USING A COMPUTER AIDED DESIGN SYSTEM S. SRIDARAN. Thesis submitted to the Faculty of the OFF-LINE ROBOT VISION SYSTEM PROGRAMMING USING A COMPUTER AIDED DESIGN SYSTEM by S. SRIDARAN Thesis submitted to the Faulty of the Virginia Polytehni Institute and State University in partial fulfillment

More information

Algebra Lab Investigating Trigonometri Ratios You an use paper triangles to investigate the ratios of the lengths of sides of right triangles. Virginia SOL Preparation for G.8 The student will solve realworld

More information

Interconnection Styles

Interconnection Styles Interonnetion tyles oftware Design Following the Export (erver) tyle 2 M1 M4 M5 4 M3 M6 1 3 oftware Design Following the Export (Client) tyle e 2 e M1 M4 M5 4 M3 M6 1 e 3 oftware Design Following the Export

More information

Automatic Physical Design Tuning: Workload as a Sequence Sanjay Agrawal Microsoft Research One Microsoft Way Redmond, WA, USA +1-(425)

Automatic Physical Design Tuning: Workload as a Sequence Sanjay Agrawal Microsoft Research One Microsoft Way Redmond, WA, USA +1-(425) Automati Physial Design Tuning: Workload as a Sequene Sanjay Agrawal Mirosoft Researh One Mirosoft Way Redmond, WA, USA +1-(425) 75-357 sagrawal@mirosoft.om Eri Chu * Computer Sienes Department University

More information

Define - starting approximation for the parameters (p) - observational data (o) - solution criterion (e.g. number of iterations)

Define - starting approximation for the parameters (p) - observational data (o) - solution criterion (e.g. number of iterations) Global Iterative Solution Distributed proessing of the attitude updating L. Lindegren (21 May 2001) SAG LL 37 Abstrat. The attitude updating algorithm given in GAIA LL 24 (v. 2) is modified to allow distributed

More information

BSPLND, A B-Spline N-Dimensional Package for Scattered Data Interpolation

BSPLND, A B-Spline N-Dimensional Package for Scattered Data Interpolation BSPLND, A B-Spline N-Dimensional Pakage for Sattered Data Interpolation Mihael P. Weis Traker Business Systems 85 Terminal Drive, Suite Rihland, WA 995-59-946-544 mike@vidian.net Robert R. Lewis Washington

More information

CA Agile Requirements Designer 2.x Implementation Proven Professional Exam (CAT-720) Study Guide Version 1.0

CA Agile Requirements Designer 2.x Implementation Proven Professional Exam (CAT-720) Study Guide Version 1.0 Exam (CAT-720) Study Guide Version 1.0 PROPRIETARY AND CONFIDENTIAL INFORMATION 2017 CA. All rights reserved. CA onfidential & proprietary information. For CA, CA Partner and CA Customer use only. No unauthorized

More information

Test Case Generation from UML State Machines

Test Case Generation from UML State Machines Test Case Generation from UML State Mahines Dirk Seifert To ite this version: Dirk Seifert. Test Case Generation from UML State Mahines. [Researh Report] 2008. HAL Id: inria-00268864

More information

Active Compliant Motion Control for Grinding Robot

Active Compliant Motion Control for Grinding Robot Proeedings of the 17th World Congress The International Federation of Automati Control Ative Compliant Motion Control for Grinding Robot Juyi Park*, Soo Ho Kim* and Sungkwun Kim** *Daewoo Shipbuilding

More information

Performance of Histogram-Based Skin Colour Segmentation for Arms Detection in Human Motion Analysis Application

Performance of Histogram-Based Skin Colour Segmentation for Arms Detection in Human Motion Analysis Application World Aademy of Siene, Engineering and Tehnology 8 009 Performane of Histogram-Based Skin Colour Segmentation for Arms Detetion in Human Motion Analysis Appliation Rosalyn R. Porle, Ali Chekima, Farrah

More information

Series/1 GA File No i=:: IBM Series/ Battery Backup Unit Description :::5 ~ ~ >-- ffi B~88 ~0 (] II IIIIII

Series/1 GA File No i=:: IBM Series/ Battery Backup Unit Description :::5 ~ ~ >-- ffi B~88 ~0 (] II IIIIII Series/1 I. (.. GA34-0032-0 File No. 51-10 a i=:: 5 Q 1 IBM Series/1 4999 Battery Bakup Unit Desription B88 0 (] o. :::5 >-- ffi "- I II1111111111IIIIII1111111 ---- - - - - ----- --_.- Series/1 «h: ",

More information

PathRings. Manual. Version 1.0. Yongnan Zhu December 16,

PathRings. Manual. Version 1.0. Yongnan Zhu   December 16, PathRings Version 1.0 Manual Yongnan Zhu E-mail: yongnan@umb.edu Deember 16, 2014-1 - PathRings This tutorial introdues PathRings, the user interfae and the interation. For better to learn, you will need

More information

Curriculum for Excellence LEVEL 3 (Book 3b)

Curriculum for Excellence LEVEL 3 (Book 3b) Note :- This sample shows the first 4 of 20 Mental tests along with their 4 Support sheets, the ontents list and a blank Pupil Reord list. Mental Mathematis Pak Curriulum for Exellene LEVEL 3 (Book 3b)

More information

Tavultesoft Keyboard Manager. User s Guide and Reference. Tavultesoft

Tavultesoft Keyboard Manager. User s Guide and Reference. Tavultesoft Tavultesoft Keyboard Manager User s Guide and Referene VERSION 4.0 Tavultesoft This doumentation may be freely opied, but the opyright notie must not be altered or removed. No part of this doumentation

More information

arxiv: v1 [cs.db] 13 Sep 2017

arxiv: v1 [cs.db] 13 Sep 2017 An effiient lustering algorithm from the measure of loal Gaussian distribution Yuan-Yen Tai (Dated: May 27, 2018) In this paper, I will introdue a fast and novel lustering algorithm based on Gaussian distribution

More information

Menu. X + /X=1 and XY+X /Y = X(Y + /Y) = X

Menu. X + /X=1 and XY+X /Y = X(Y + /Y) = X Menu K-Maps and Boolean Algera >Don t ares >5 Variale Look into my... 1 Karnaugh Maps - Boolean Algera We have disovered that simplifiation/minimization is an art. If you see it, GREAT! Else, work at it,

More information

Solutions to Tutorial 2 (Week 9)

Solutions to Tutorial 2 (Week 9) The University of Syney Shool of Mathematis an Statistis Solutions to Tutorial (Week 9) MATH09/99: Disrete Mathematis an Graph Theory Semester, 0. Determine whether eah of the following sequenes is the

More information

An Optimized Approach on Applying Genetic Algorithm to Adaptive Cluster Validity Index

An Optimized Approach on Applying Genetic Algorithm to Adaptive Cluster Validity Index IJCSES International Journal of Computer Sienes and Engineering Systems, ol., No.4, Otober 2007 CSES International 2007 ISSN 0973-4406 253 An Optimized Approah on Applying Geneti Algorithm to Adaptive

More information

Performance Improvement of TCP on Wireless Cellular Networks by Adaptive FEC Combined with Explicit Loss Notification

Performance Improvement of TCP on Wireless Cellular Networks by Adaptive FEC Combined with Explicit Loss Notification erformane Improvement of TC on Wireless Cellular Networks by Adaptive Combined with Expliit Loss tifiation Masahiro Miyoshi, Masashi Sugano, Masayuki Murata Department of Infomatis and Mathematial Siene,

More information

MatLab Basics: Data type, Matrices, Graphics

MatLab Basics: Data type, Matrices, Graphics MatLa Basis: Data type, Matries, Graphis 1 Plotting Data 0.8 0.6 0.4 os(t/10) 0.2 0-0.2-0.4-0.6 X: 78 Y: 0.05396-0.8-1 0 10 20 30 40 50 60 70 80 90 100 t Figure y MIT OCW. MatLa logial har NUMERIC ell

More information

Lawrence Livermore National. Laboratory. Oil Shale Process Model (OSP) Code Development Manual. C. B. Thorsness and D. F. Aldis.

Lawrence Livermore National. Laboratory. Oil Shale Process Model (OSP) Code Development Manual. C. B. Thorsness and D. F. Aldis. UCRL-MA-119225 Oil Shale Proess Model (OSP) Code Development Manual C. B. Thorsness and D. F. Aldis Deember 6, 1994 Lawrene Livermore National Laboratory DISCLAIMER This doument was prepared as an aount

More information

Cracked Hole Finite Element Modeling

Cracked Hole Finite Element Modeling Craked Hole Finite Element Modeling (E-20-F72) Researh Report Submitted to: Lokheed Martin, Program Manager: Dr. Stephen P. Engelstad Prinipal Investigator: Dr. Rami M. Haj-Ali Shool of Civil and Environmental

More information

A {k, n}-secret Sharing Scheme for Color Images

A {k, n}-secret Sharing Scheme for Color Images A {k, n}-seret Sharing Sheme for Color Images Rastislav Luka, Konstantinos N. Plataniotis, and Anastasios N. Venetsanopoulos The Edward S. Rogers Sr. Dept. of Eletrial and Computer Engineering, University

More information

Xpander Rack Mount 2 Gen 3 HPC Version User Guide

Xpander Rack Mount 2 Gen 3 HPC Version User Guide Xpander Rak Mount 2 Gen 3 HPC Version User Guide Xpander Rak Mount 2 is a 2U rak mount PCI Express (PCIe) expansion enlosure that enables onnetion of two passively-ooled aelerators to a host omputer. The

More information