| 1 | ! (C) Copyright 2014- ECMWF. |
|---|
| 2 | ! |
|---|
| 3 | ! This software is licensed under the terms of the Apache Licence Version 2.0 |
|---|
| 4 | ! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. |
|---|
| 5 | ! |
|---|
| 6 | ! In applying this licence, ECMWF does not waive the privileges and immunities |
|---|
| 7 | ! granted to it by virtue of its status as an intergovernmental organisation |
|---|
| 8 | ! nor does it submit to any jurisdiction. |
|---|
| 9 | |
|---|
| 10 | MODULE PARKIND1 |
|---|
| 11 | ! |
|---|
| 12 | ! *** Define usual kinds for strong typing *** |
|---|
| 13 | ! |
|---|
| 14 | IMPLICIT NONE |
|---|
| 15 | PUBLIC |
|---|
| 16 | SAVE |
|---|
| 17 | ! |
|---|
| 18 | ! Integer Kinds |
|---|
| 19 | ! ------------- |
|---|
| 20 | ! |
|---|
| 21 | INTEGER, PARAMETER :: JPIT = SELECTED_INT_KIND(2) |
|---|
| 22 | INTEGER, PARAMETER :: JPIS = SELECTED_INT_KIND(4) |
|---|
| 23 | INTEGER, PARAMETER :: JPIM = SELECTED_INT_KIND(9) |
|---|
| 24 | INTEGER, PARAMETER :: JPIB = SELECTED_INT_KIND(12) |
|---|
| 25 | |
|---|
| 26 | !Special integer type to be used for sensative adress calculations |
|---|
| 27 | !should be *8 for a machine with 8byte adressing for optimum performance |
|---|
| 28 | #ifdef ADDRESS64 |
|---|
| 29 | INTEGER, PARAMETER :: JPIA = JPIB |
|---|
| 30 | #else |
|---|
| 31 | INTEGER, PARAMETER :: JPIA = JPIM |
|---|
| 32 | #endif |
|---|
| 33 | |
|---|
| 34 | ! |
|---|
| 35 | ! Real Kinds |
|---|
| 36 | ! ---------- |
|---|
| 37 | ! |
|---|
| 38 | INTEGER, PARAMETER :: JPRT = SELECTED_REAL_KIND(2,1) |
|---|
| 39 | INTEGER, PARAMETER :: JPRS = SELECTED_REAL_KIND(4,2) |
|---|
| 40 | INTEGER, PARAMETER :: JPRM = SELECTED_REAL_KIND(6,37) |
|---|
| 41 | ! This parameter should always be double precision as a few parts of |
|---|
| 42 | ! the radiation code require it |
|---|
| 43 | INTEGER, PARAMETER :: JPRD = SELECTED_REAL_KIND(13,300) |
|---|
| 44 | |
|---|
| 45 | ! This parameter governs the precision of most of the code |
|---|
| 46 | #ifdef PARKIND1_SINGLE |
|---|
| 47 | INTEGER, PARAMETER :: JPRB = JPRM |
|---|
| 48 | #else |
|---|
| 49 | INTEGER, PARAMETER :: JPRB = JPRD |
|---|
| 50 | #endif |
|---|
| 51 | ! |
|---|
| 52 | |
|---|
| 53 | ! Logical Kinds for RTTOV.... |
|---|
| 54 | |
|---|
| 55 | INTEGER, PARAMETER :: JPLM = JPIM !Standard logical type |
|---|
| 56 | |
|---|
| 57 | END MODULE PARKIND1 |
|---|