Download presentation
Presentation is loading. Please wait.
1
CHARACTER DATA MET 50
2
Character data We have extensively used REAL and INTEGER data types. There is also: CHARACTER data COMPLEX data LOGICAL data 12/1/2011 MET 50, FALL 2011 2
3
Character data COMPLEX numbers take the form: Z = X + iY where X and Y are both real numbers and i 2 = -1, so that i = (-1) 12/1/2011 MET 50, FALL 2011 3
4
Character data Z = X + iY X is called the real part of Z {denoted Re(Z)} REAL (X) value Y is called the imaginary part of Z {denoted Im(Z)} AIMAG (X) value 12/1/2011 MET 50, FALL 2011 4
5
Character data Fortran stores Z as two real numbers: X and Y When you write PRINT*,Z You get:(12.0, -9.0) 12/1/2011 MET 50, FALL 2011 5
6
Character data CHARACTER DATA Letters, spaces, punctuation marks Combined into something called a STRING 12/1/2011 MET 50, FALL 2011 6
7
Character data Written in code as follows: “STRING” or ‘STRING’ 12/1/2011 MET 50, FALL 2011 7
8
Character data Declared as follows: CHARACTER (n) :: string Where “n” is the length = number of characters in the string 12/1/2011 MET 50, FALL 2011 8
9
Character data example: CHARACTER (3) :: month Then “month” is type character with 3 elements, such as jan feb mar Perhaps you want to print a table of results with the month printed at the top … see later for format! 12/1/2011 MET 50, FALL 2011 9
10
Character data Other ways to declare: CHARACTER (LEN=n) :: string1 CHARACTER :: string2 Length in 2 nd example is assumed to be ONE!!! 12/1/2011 MET 50, FALL 2011 10
11
Character data Other ways to declare: CHARACTER :: stringa*10, stringb*20, stringc*25 12/1/2011 MET 50, FALL 2011 11
12
Character data To specify the value of a string: CHARACTER (8) :: name name=“John Doe” Note that the space counts as a character!! CHARACTER (21) :: filename filename=“temperature_data_2005” 12/1/2011 MET 50, FALL 2011 12
13
Character data Formatted read/write of a string: In the FORMAT statement, use the descriptor: “An” As in: format (1x, I5, A20, F10.2) Options: “I”, “F”, “E”, and now…”A” (also “D”…last slides) 12/1/2011 MET 50, FALL 2011 13
14
Character data Unformatted read/write: CHARACTER (3) :: MONTH INTEGER :: NUMBER READ*,MONTH, NUMBER You might enter: “JAN” 150 12/1/2011 MET 50, FALL 2011 14
15
Character data Defects of character (hahaha!) If a string is read in that is too long, it is truncated on the right. CHARACTER (6) :: DAY DAY = “WEDNESDAY” DAY is stored as WEDNES 12/1/2011 MET 50, FALL 2011 15
16
Character data If a string is read in that is too short, it is padded with blanks on the right. CHARACTER (12) :: DAY DAY = “WEDNESDAY” DAY is stored as “WEDNESDAY ” 12/1/2011 MET 50, FALL 2011 16
17
Character data Character data can be “added” !!! The operation is called: concatenation “cat” for short character :: first*5, second*6, third*11 first = ‘minor’ second = ‘ thing’ third = first // second produces… third = ‘minor thing’ 12/1/2011 MET 50, FALL 2011 17
18
Character data Useful??? Creation of file names inside some code… character :: first*9, second*4, third*9 character :: title*22 first = ‘data-for-’ third = ‘-smoothed’ DO YEAR = 1,10 if (year == 10) then second = ‘2010’ title = first // second // third endif ! Produces title = ‘data-for-2010-smoothed’ OPEN (15, file=‘title’) END DO 12/1/2011 MET 50, FALL 2011 18
19
Character data DOUBLE PRECISION data… Suppose you declare: REAL :: TEMP and later print a value with PRINT*,TEMP a number with certain number of digits after the decimal. 12/1/2011 MET 50, FALL 2011 19
20
Character data Instead if you declare: DOUBLE PRECISION:: TEMP and later print a value with PRINT*,TEMP a number with DOUBLE the number of digits after the decimal. Double precision! 12/1/2011 MET 50, FALL 2011 20
21
Character data This may happen if you get some code that has run on a high- end machine (e.g., 64-bit) and you now want to run it on a cheapo workstation (e.g., 16- bit) … less resolution of numbers … less accuracy See page 230 !! 12/1/2011 MET 50, FALL 2011 21
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.