source: LMDZ6/branches/LMDZ-ECRAD/libf/phylmd/ecrad/srtm_cmbgb29.F90 @ 3880

Last change on this file since 3880 was 3880, checked in by idelkadi, 3 years ago

Online implementation of the radiative transfer code ECRAD in LMDZ.

  • Inclusion of the ecrad directory containing the sources of the ECRAD code
  • Adaptation of compilation scripts (CPP_ECRAD keys)
  • Call of ecrad in radlwsw_m.F90 under the logical key iflag_rrtm = 2
File size: 2.2 KB
Line 
1SUBROUTINE SRTM_CMBGB29
2
3!     BAND 29:  820-2600 cm-1 (low - H2O; high - CO2)
4!-----------------------------------------------------------------------
5
6USE PARKIND1  ,ONLY : JPIM , JPRB
7USE YOMHOOK   ,ONLY : LHOOK, DR_HOOK
8
9USE YOESRTM  , ONLY : NGN
10USE YOESRTWN , ONLY : NGC, NGS, RWGT
11!USE YOESRTWN , ONLY : NGC, NGS, NGN, RWGT
12USE YOESRTA29, ONLY : KA, KB, SELFREF, FORREF, SFLUXREF, &
13                    & ABSH2O, ABSCO2, &
14                    & KAC, KBC, SELFREFC, FORREFC, SFLUXREFC, &
15                    & ABSH2OC, ABSCO2C
16
17IMPLICIT NONE
18
19! Local variables
20INTEGER(KIND=JPIM) :: JT, JP, IGC, IPR, IPRSM
21REAL(KIND=JPRB)    :: ZSUMK, ZSUMF1, ZSUMF2, ZSUMF3
22
23REAL(KIND=JPRB) :: ZHOOK_HANDLE
24!     ------------------------------------------------------------------
25IF (LHOOK) CALL DR_HOOK('SRTM_CMBGB29',0,ZHOOK_HANDLE)
26
27DO JT = 1,5
28  DO JP = 1,13
29    IPRSM = 0
30    DO IGC = 1,NGC(14)
31      ZSUMK = 0.
32      DO IPR = 1, NGN(NGS(13)+IGC)
33        IPRSM = IPRSM + 1
34        ZSUMK = ZSUMK + KA(JT,JP,IPRSM)*RWGT(IPRSM+208)
35      ENDDO
36      KAC(JT,JP,IGC) = ZSUMK
37    ENDDO
38  ENDDO
39
40  DO JP = 13,59
41    IPRSM = 0
42    DO IGC = 1,NGC(14)
43      ZSUMK = 0.
44      DO IPR = 1, NGN(NGS(13)+IGC)
45        IPRSM = IPRSM + 1
46        ZSUMK = ZSUMK + KB(JT,JP,IPRSM)*RWGT(IPRSM+208)
47      ENDDO
48      KBC(JT,JP,IGC) = ZSUMK
49    ENDDO
50  ENDDO
51ENDDO
52
53DO JT = 1,10
54  IPRSM = 0
55  DO IGC = 1,NGC(14)
56    ZSUMK = 0.
57    DO IPR = 1, NGN(NGS(13)+IGC)
58      IPRSM = IPRSM + 1
59      ZSUMK = ZSUMK + SELFREF(JT,IPRSM)*RWGT(IPRSM+208)
60    ENDDO
61    SELFREFC(JT,IGC) = ZSUMK
62  ENDDO
63ENDDO
64
65DO JT = 1,4
66  IPRSM = 0
67  DO IGC = 1,NGC(14)
68    ZSUMK = 0.
69    DO IPR = 1, NGN(NGS(13)+IGC)
70      IPRSM = IPRSM + 1
71      ZSUMK = ZSUMK + FORREF(JT,IPRSM)*RWGT(IPRSM+208)
72    ENDDO
73    FORREFC(JT,IGC) = ZSUMK
74  ENDDO
75ENDDO
76
77IPRSM = 0
78DO IGC = 1,NGC(14)
79  ZSUMF1 = 0.
80  ZSUMF2 = 0.
81  ZSUMF3 = 0.
82  DO IPR = 1, NGN(NGS(13)+IGC)
83    IPRSM = IPRSM + 1
84    ZSUMF1 = ZSUMF1 + SFLUXREF(IPRSM)
85    ZSUMF2 = ZSUMF2 + ABSCO2(IPRSM)*RWGT(IPRSM+208)
86    ZSUMF3 = ZSUMF3 + ABSH2O(IPRSM)*RWGT(IPRSM+208)
87  ENDDO
88  SFLUXREFC(IGC) = ZSUMF1
89  ABSCO2C(IGC) = ZSUMF2
90  ABSH2OC(IGC) = ZSUMF3
91ENDDO
92
93!     -----------------------------------------------------------------
94IF (LHOOK) CALL DR_HOOK('SRTM_CMBGB29',1,ZHOOK_HANDLE)
95END SUBROUTINE SRTM_CMBGB29
96
Note: See TracBrowser for help on using the repository browser.