[3331] | 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 |
---|