source: LMDZ6/trunk/libf/phylmd/ecrad/ifsrrtm/srtm_cmbgb29.F90 @ 4773

Last change on this file since 4773 was 4773, checked in by idelkadi, 7 months ago
  • Update of Ecrad in LMDZ The same organization of the Ecrad offline version is retained in order to facilitate the updating of Ecrad in LMDZ and the comparison between online and offline results. version 1.6.1 of Ecrad (https://github.com/lguez/ecrad.git)
  • Implementation of the double call of Ecrad in LMDZ


File size: 2.3 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, JPHOOK
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=JPHOOK) :: 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.