Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze...

56
Tecniche di programmazione in chimica computazionale Expressions, operations and variables Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12

Transcript of Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze...

Page 1: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Tecniche di programmazione in chimicacomputazionale

Expressions, operations and variables

Emanuele Coccia

Dipartimento di Scienze Chimiche e Farmaceutiche

E. Coccia (DSCF) Tecniche di programmazione 1 / 12

Page 2: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Constants

Integer: 2 etc.

Floating point: 2.0, 2.d0 etc.String: ”Hello, world!”Define a constant using parameter (param.f90)

E. Coccia (DSCF) Tecniche di programmazione 2 / 12

Page 3: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Constants

Integer: 2 etc.Floating point: 2.0, 2.d0 etc.

String: ”Hello, world!”Define a constant using parameter (param.f90)

E. Coccia (DSCF) Tecniche di programmazione 2 / 12

Page 4: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Constants

Integer: 2 etc.Floating point: 2.0, 2.d0 etc.String: ”Hello, world!”

Define a constant using parameter (param.f90)

E. Coccia (DSCF) Tecniche di programmazione 2 / 12

Page 5: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Constants

Integer: 2 etc.Floating point: 2.0, 2.d0 etc.String: ”Hello, world!”Define a constant using parameter (param.f90)

E. Coccia (DSCF) Tecniche di programmazione 2 / 12

Page 6: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Variables

Memory location with three attributes:

1 name (case insensitive, ABC equal to aBC)2 Data type (declared at the beginning of the program)3 Value (initializing is good practice): declaration, standard

input, assignment

Assignment statement: variable = expressionExample assign.f90

E. Coccia (DSCF) Tecniche di programmazione 3 / 12

Page 7: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Variables

Memory location with three attributes:1 name (case insensitive, ABC equal to aBC)

2 Data type (declared at the beginning of the program)3 Value (initializing is good practice): declaration, standard

input, assignment

Assignment statement: variable = expressionExample assign.f90

E. Coccia (DSCF) Tecniche di programmazione 3 / 12

Page 8: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Variables

Memory location with three attributes:1 name (case insensitive, ABC equal to aBC)2 Data type (declared at the beginning of the program)

3 Value (initializing is good practice): declaration, standardinput, assignment

Assignment statement: variable = expressionExample assign.f90

E. Coccia (DSCF) Tecniche di programmazione 3 / 12

Page 9: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Variables

Memory location with three attributes:1 name (case insensitive, ABC equal to aBC)2 Data type (declared at the beginning of the program)3 Value (initializing is good practice): declaration, standard

input, assignment

Assignment statement: variable = expressionExample assign.f90

E. Coccia (DSCF) Tecniche di programmazione 3 / 12

Page 10: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Variables

Memory location with three attributes:1 name (case insensitive, ABC equal to aBC)2 Data type (declared at the beginning of the program)3 Value (initializing is good practice): declaration, standard

input, assignment

Assignment statement: variable = expression

Example assign.f90

E. Coccia (DSCF) Tecniche di programmazione 3 / 12

Page 11: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Variables

Memory location with three attributes:1 name (case insensitive, ABC equal to aBC)2 Data type (declared at the beginning of the program)3 Value (initializing is good practice): declaration, standard

input, assignment

Assignment statement: variable = expressionExample assign.f90

E. Coccia (DSCF) Tecniche di programmazione 3 / 12

Page 12: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Variable declaration

Explicit declaration

Implicit declaration: integer variable if its name begins with(I-N)Also possible to customize directives for the implicitdeclarationBetter to always start a Fortran code with implicit none

E. Coccia (DSCF) Tecniche di programmazione 4 / 12

Page 13: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Variable declaration

Explicit declarationImplicit declaration: integer variable if its name begins with(I-N)Also possible to customize directives for the implicitdeclaration

Better to always start a Fortran code with implicit none

E. Coccia (DSCF) Tecniche di programmazione 4 / 12

Page 14: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Variable declaration

Explicit declarationImplicit declaration: integer variable if its name begins with(I-N)Also possible to customize directives for the implicitdeclarationBetter to always start a Fortran code with implicit none

E. Coccia (DSCF) Tecniche di programmazione 4 / 12

Page 15: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radians

sin(x): x real in radianstan(x): x real in radiansexp(x): x reallog(x): x real > 0log10(x): x real > 0sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 16: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radians

tan(x): x real in radiansexp(x): x reallog(x): x real > 0log10(x): x real > 0sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 17: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radianstan(x): x real in radians

exp(x): x reallog(x): x real > 0log10(x): x real > 0sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 18: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radianstan(x): x real in radiansexp(x): x real

log(x): x real > 0log10(x): x real > 0sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 19: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radianstan(x): x real in radiansexp(x): x reallog(x): x real > 0

log10(x): x real > 0sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 20: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radianstan(x): x real in radiansexp(x): x reallog(x): x real > 0log10(x): x real > 0

sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 21: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radianstan(x): x real in radiansexp(x): x reallog(x): x real > 0log10(x): x real > 0sqrt(x): x real ≥ 0

acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 22: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radianstan(x): x real in radiansexp(x): x reallog(x): x real > 0log10(x): x real > 0sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)

mod(x,n): both x and n real or integer...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 23: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radianstan(x): x real in radiansexp(x): x reallog(x): x real > 0log10(x): x real > 0sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer

...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 24: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radianstan(x): x real in radiansexp(x): x reallog(x): x real > 0log10(x): x real > 0sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer...

add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 25: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Fortran intrinsic functions

cos(x): x real in radianssin(x): x real in radianstan(x): x real in radiansexp(x): x reallog(x): x real > 0log10(x): x real > 0sqrt(x): x real ≥ 0acos(x): -1 ≤ x ≤ 1(radians)mod(x,n): both x and n real or integer...add d (e.g., dcos(x)) for real*8

E. Coccia (DSCF) Tecniche di programmazione 5 / 12

Page 26: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arrays

Structured data type: vectors, matrices, more complicatedstructures

Array of any type (integer, single and double precision etc.)Intrinsic Fortran functions:

maxval(x)minval(x)sum(x)dot_product(a,x)matmul(A,B)

E. Coccia (DSCF) Tecniche di programmazione 6 / 12

Page 27: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arrays

Structured data type: vectors, matrices, more complicatedstructures

Array of any type (integer, single and double precision etc.)

Intrinsic Fortran functions:maxval(x)minval(x)sum(x)dot_product(a,x)matmul(A,B)

E. Coccia (DSCF) Tecniche di programmazione 6 / 12

Page 28: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arrays

Structured data type: vectors, matrices, more complicatedstructures

Array of any type (integer, single and double precision etc.)Intrinsic Fortran functions:

maxval(x)minval(x)sum(x)dot_product(a,x)matmul(A,B)

E. Coccia (DSCF) Tecniche di programmazione 6 / 12

Page 29: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arrays

Group of ordinary (scalar) variables

Work on array elements, on a subset of array and/or on thewhole arrayInitialize arrays as ordinary variablesExamples array.f90 and matmul.f90Dynamical arrays: example alloc.f90

E. Coccia (DSCF) Tecniche di programmazione 7 / 12

Page 30: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arrays

Group of ordinary (scalar) variablesWork on array elements, on a subset of array and/or on thewhole array

Initialize arrays as ordinary variablesExamples array.f90 and matmul.f90Dynamical arrays: example alloc.f90

E. Coccia (DSCF) Tecniche di programmazione 7 / 12

Page 31: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arrays

Group of ordinary (scalar) variablesWork on array elements, on a subset of array and/or on thewhole arrayInitialize arrays as ordinary variables

Examples array.f90 and matmul.f90Dynamical arrays: example alloc.f90

E. Coccia (DSCF) Tecniche di programmazione 7 / 12

Page 32: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arrays

Group of ordinary (scalar) variablesWork on array elements, on a subset of array and/or on thewhole arrayInitialize arrays as ordinary variablesExamples array.f90 and matmul.f90

Dynamical arrays: example alloc.f90

E. Coccia (DSCF) Tecniche di programmazione 7 / 12

Page 33: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arrays

Group of ordinary (scalar) variablesWork on array elements, on a subset of array and/or on thewhole arrayInitialize arrays as ordinary variablesExamples array.f90 and matmul.f90Dynamical arrays: example alloc.f90

E. Coccia (DSCF) Tecniche di programmazione 7 / 12

Page 34: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic expressions

n1 + n2

Composed of terms (n1 and n2) and operators (+)Computational form to run operations into the computerEvaluation: executing the operations specified in a givenexpression

E. Coccia (DSCF) Tecniche di programmazione 8 / 12

Page 35: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition

- subtraction* multiplication/ division** power

Binary operators:

x + 32 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 36: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition- subtraction

* multiplication/ division** power

Binary operators:

x + 32 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 37: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition- subtraction* multiplication

/ division** power

Binary operators:

x + 32 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 38: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition- subtraction* multiplication/ division

** power

Binary operators:

x + 32 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 39: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition- subtraction* multiplication/ division** power

Binary operators:

x + 32 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 40: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition- subtraction* multiplication/ division** power

Binary operators:

x + 3

2 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 41: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition- subtraction* multiplication/ division** power

Binary operators:

x + 32 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 42: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition- subtraction* multiplication/ division** power

Binary operators:

x + 32 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 43: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition- subtraction* multiplication/ division** power

Binary operators:

x + 32 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 44: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Arithmetic operators

Simple arithmetic operators:+ addition- subtraction* multiplication/ division** power

Binary operators:

x + 32 ∗ x + 3 ∗ y

(2 ∗ x) + (3 ∗ y)

2 ∗ (x + 3) ∗ y

Power > multiplication/division > addition/subtraction

E. Coccia (DSCF) Tecniche di programmazione 9 / 12

Page 45: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Other operators

Relational:.eq. (==).ne. (/=).lt. (<).le. (<=).gt. (>).ge. (>=)

Logical:.not..and..or.

String: // to concatenate two strings

E. Coccia (DSCF) Tecniche di programmazione 10 / 12

Page 46: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Other operators

Relational:.eq. (==).ne. (/=).lt. (<).le. (<=).gt. (>).ge. (>=)

Logical:.not..and..or.

String: // to concatenate two strings

E. Coccia (DSCF) Tecniche di programmazione 10 / 12

Page 47: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Other operators

Relational:.eq. (==).ne. (/=).lt. (<).le. (<=).gt. (>).ge. (>=)

Logical:.not..and..or.

String: // to concatenate two strings

E. Coccia (DSCF) Tecniche di programmazione 10 / 12

Page 48: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Other expressions

Relational expression:n1.eq.n2

Logical expression:expr1.or.expr2

Priority: arithmetic > relational > logical

E. Coccia (DSCF) Tecniche di programmazione 11 / 12

Page 49: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Other expressions

Relational expression:n1.eq.n2

Logical expression:expr1.or.expr2

Priority: arithmetic > relational > logical

E. Coccia (DSCF) Tecniche di programmazione 11 / 12

Page 50: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Other expressions

Relational expression:n1.eq.n2

Logical expression:expr1.or.expr2

Priority: arithmetic > relational > logical

E. Coccia (DSCF) Tecniche di programmazione 11 / 12

Page 51: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Type conversion

Automatic type conversion

The expression1 + 2.3

in Fortran becomes1.0 + 2.3

Assignment statement for real variable total

total = 0

“0” is converted into “0.0”

n = 1.9

integer n contains “1”Explicit conversion: int(), real(), dble()Example conv.f90

E. Coccia (DSCF) Tecniche di programmazione 12 / 12

Page 52: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Type conversion

Automatic type conversionThe expression

1 + 2.3

in Fortran becomes1.0 + 2.3

Assignment statement for real variable total

total = 0

“0” is converted into “0.0”

n = 1.9

integer n contains “1”Explicit conversion: int(), real(), dble()Example conv.f90

E. Coccia (DSCF) Tecniche di programmazione 12 / 12

Page 53: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Type conversion

Automatic type conversionThe expression

1 + 2.3

in Fortran becomes1.0 + 2.3

Assignment statement for real variable total

total = 0

“0” is converted into “0.0”

n = 1.9

integer n contains “1”Explicit conversion: int(), real(), dble()Example conv.f90

E. Coccia (DSCF) Tecniche di programmazione 12 / 12

Page 54: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Type conversion

Automatic type conversionThe expression

1 + 2.3

in Fortran becomes1.0 + 2.3

Assignment statement for real variable total

total = 0

“0” is converted into “0.0”

n = 1.9

integer n contains “1”Explicit conversion: int(), real(), dble()Example conv.f90

E. Coccia (DSCF) Tecniche di programmazione 12 / 12

Page 55: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Type conversion

Automatic type conversionThe expression

1 + 2.3

in Fortran becomes1.0 + 2.3

Assignment statement for real variable total

total = 0

“0” is converted into “0.0”

n = 1.9

integer n contains “1”

Explicit conversion: int(), real(), dble()Example conv.f90

E. Coccia (DSCF) Tecniche di programmazione 12 / 12

Page 56: Tecniche di programmazione in chimica computazionale...Emanuele Coccia Dipartimento di Scienze Chimiche e Farmaceutiche E. Coccia (DSCF) Tecniche di programmazione 1 / 12. Constants

Type conversion

Automatic type conversionThe expression

1 + 2.3

in Fortran becomes1.0 + 2.3

Assignment statement for real variable total

total = 0

“0” is converted into “0.0”

n = 1.9

integer n contains “1”Explicit conversion: int(), real(), dble()Example conv.f90

E. Coccia (DSCF) Tecniche di programmazione 12 / 12