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 |
---|