LMDZ
yomrcoef.F90
Go to the documentation of this file.
1 MODULE yomrcoef
2 
3 USE parkind1 ,ONLY : jpim ,jprb
4 
5 IMPLICIT NONE
6 
7 SAVE
8 
9 ! -----------------------------------------------------------------
10 
11 !* Logical switches for writing and reading the radiation coefficients
12 ! in file or in core
13 
14 ! LRCOEF : switch for write out and read
15 ! the radiation coefficients in file
16 
17 !* Logical switch connected with the simplified radiation
18 
19 ! LTLADDIA : switch for using diabatic adjoint and then reading
20 ! rad.coef. at each time step when LRAYSP
21 ! LGLOBRAD : switch to compute the global mean for the thermal
22 ! radiation matrix
23 
24 !* Number of arrays for radiation coefficients
25 
26 ! NG3SR : number of 3D fields (NFLEVG)
27 ! NGMTR : number of matrices (0:NFLEVG,0:NFLEVG)
28 ! NLATWR : number of latitude to be written
29 ! NLATRD : number of latitude to be read
30 
31 !* Packing factors and mio package files
32 
33 ! NPCKFSR : packing factor for 3D fields
34 ! NPCKFTHR : packing factor for matrices
35 ! NEXPBSR : number of bits used for exponent when
36 ! packing
37 ! NEXPBTHR : number of bits used for exponent when
38 ! packing
39 
40 !* Buffer for radiation coefficients
41 
42 ! NLENGSRB : length of buffer for 3D solar radiation
43 ! coefficients and correction for thermal
44 ! radiation
45 ! NLENGTRB : length of buffer for matrix of thermal
46 ! radiation coefficients
47 ! SOLRAD(NLENGSRB) : buffer for 3D fields
48 ! THERRAD(NSLBR/NGPBLKS/1,NLENGTRB): buffer for matrix
49 ! for 3D fields
50 
51 !* Buffer for simplified thermal radiation
52 
53 ! TRWEIGHT(NFLEVG+1,NFLEVG+1) : buffer for sum of mean weights
54 ! for the whole domain
55 ! TRMATSUM(NFLEVG+1,NFLEVG+1) : buffer for sum of thermal radiation
56 ! matrices for the whole domain
57 
58 LOGICAL :: lrcoef
59 LOGICAL :: ltladdia
60 LOGICAL :: lglobrad
61 
62 INTEGER(KIND=JPIM) :: ng3sr
63 INTEGER(KIND=JPIM) :: ngmtr
64 INTEGER(KIND=JPIM) :: nlatwr
65 INTEGER(KIND=JPIM) :: nlatrd
66 
67 INTEGER(KIND=JPIM) :: npckfsr
68 INTEGER(KIND=JPIM) :: npckfthr
69 INTEGER(KIND=JPIM) :: nexpbsr
70 INTEGER(KIND=JPIM) :: nexpbthr
71 
72 INTEGER(KIND=JPIM) :: nlengsrb
73 INTEGER(KIND=JPIM) :: nlengtrb
74 
75 REAL(KIND=JPRB),ALLOCATABLE:: solrad(:)
76 REAL(KIND=JPRB),ALLOCATABLE:: therrad(:,:)
77 
78 REAL(KIND=JPRB),ALLOCATABLE:: trweight(:,:)
79 REAL(KIND=JPRB),ALLOCATABLE:: trmatsum(:,:)
80 
81 ! ----------------------------------------------------------------
82 !$OMP THREADPRIVATE(lglobrad,lrcoef,ltladdia,nexpbsr,nexpbthr,ng3sr,ngmtr,nlatrd,nlatwr,nlengsrb)
83 !$OMP THREADPRIVATE(nlengtrb,npckfsr,npckfthr)
84 !$OMP THREADPRIVATE(solrad,therrad,trmatsum,trweight)
85 END MODULE yomrcoef
real(kind=jprb), dimension(:,:), allocatable therrad
Definition: yomrcoef.F90:76
integer(kind=jpim) nexpbsr
Definition: yomrcoef.F90:69
integer(kind=jpim) nlengsrb
Definition: yomrcoef.F90:72
integer(kind=jpim) nexpbthr
Definition: yomrcoef.F90:70
integer(kind=jpim) nlatwr
Definition: yomrcoef.F90:64
real(kind=jprb), dimension(:,:), allocatable trweight
Definition: yomrcoef.F90:78
integer, parameter jprb
Definition: parkind1.F90:31
logical lglobrad
Definition: yomrcoef.F90:60
real(kind=jprb), dimension(:,:), allocatable trmatsum
Definition: yomrcoef.F90:79
integer(kind=jpim) ngmtr
Definition: yomrcoef.F90:63
real(kind=jprb), dimension(:), allocatable solrad
Definition: yomrcoef.F90:75
integer(kind=jpim) ng3sr
Definition: yomrcoef.F90:62
integer(kind=jpim) npckfsr
Definition: yomrcoef.F90:67
integer(kind=jpim) nlengtrb
Definition: yomrcoef.F90:73
logical lrcoef
Definition: yomrcoef.F90:58
integer, parameter jpim
Definition: parkind1.F90:13
integer(kind=jpim) npckfthr
Definition: yomrcoef.F90:68
integer(kind=jpim) nlatrd
Definition: yomrcoef.F90:65
logical ltladdia
Definition: yomrcoef.F90:59