source: LMDZ5/branches/testing/libf/phymar/rrtm_cmbgb2.F90 @ 3978

Last change on this file since 3978 was 2160, checked in by Laurent Fairhead, 10 years ago

Merged trunk changes -r2070:2158 into testing branch. Compilation problems introduced by revision r2155 have been corrected by hand

File size: 3.6 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB2
3!***************************************************************************
4
5!     BAND 2:  250-500 cm-1 (low - H2O; high - H2O)
6!***************************************************************************
7
8! Parameters
9#include "tsmbkind.h"
10
11USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT
12
13USE YOERRTO2 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
14           &FRACREFBO  ,FORREFO
15USE YOERRTA2 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
16             &        FRACREFB,FORREF  ,REFPARAM               ,&
17             &        ABSA    ,ABSB    ,NG2
18USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
19USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
20
21IMPLICIT NONE
22
23!     LOCAL INTEGER SCALARS
24INTEGER_M :: IGC, IPR, IPRSM, JP, JT
25INTEGER_M :: MEQ, NEQ                    ! To force equivalence, HG, 13-DEC-2003
26
27!     LOCAL REAL SCALARS
28REAL_B :: SUMF, SUMK
29
30
31DO JT = 1,5
32  DO JP = 1,13
33    IPRSM = 0
34    DO IGC = 1,NGC(2)
35      SUMK = _ZERO_
36      DO IPR = 1, NGN(NGS(1)+IGC)
37        IPRSM = IPRSM + 1
38
39        SUMK = SUMK + KAO(JT,JP,IPRSM)*RWGT(IPRSM+16)
40      ENDDO
41
42      KA(JT,JP,IGC) = SUMK
43    ENDDO
44  ENDDO
45  DO JP = 13,59
46    IPRSM = 0
47    DO IGC = 1,NGC(2)
48      SUMK = _ZERO_
49      DO IPR = 1, NGN(NGS(1)+IGC)
50        IPRSM = IPRSM + 1
51
52        SUMK = SUMK + KBO(JT,JP,IPRSM)*RWGT(IPRSM+16)
53      ENDDO
54!               KBC(JT,JP,IGC) = SUMK
55      KB(JT,JP,IGC) = SUMK
56    ENDDO
57  ENDDO
58ENDDO
59
60DO JT = 1,10
61  IPRSM = 0
62  DO IGC = 1,NGC(2)
63    SUMK = _ZERO_
64    DO IPR = 1, NGN(NGS(1)+IGC)
65      IPRSM = IPRSM + 1
66
67      SUMK = SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+16)
68    ENDDO
69
70    SELFREF(JT,IGC) = SUMK
71  ENDDO
72ENDDO
73
74DO JP = 1,13
75  IPRSM = 0
76  DO IGC = 1,NGC(2)
77    SUMF = _ZERO_
78    DO IPR = 1, NGN(NGS(1)+IGC)
79      IPRSM = IPRSM + 1
80
81      SUMF = SUMF + FRACREFAO(IPRSM,JP)
82    ENDDO
83
84    FRACREFA(IGC,JP) = SUMF
85  ENDDO
86ENDDO
87
88IPRSM = 0
89DO IGC = 1,NGC(2)
90  SUMK = _ZERO_
91  SUMF = _ZERO_
92  DO IPR = 1, NGN(NGS(1)+IGC)
93    IPRSM = IPRSM + 1
94
95
96    SUMK = SUMK + FORREFO(IPRSM)*RWGT(IPRSM+16)
97    SUMF = SUMF + FRACREFBO(IPRSM)
98  ENDDO
99
100
101  FORREF(IGC) = SUMK
102  FRACREFB(IGC) = SUMF
103ENDDO
104
105DO JP = 1,13
106  DO IGC = 1,NGC(2)
107
108    FREFA(NGS(1)+IGC,JP) = FRACREFA(IGC,JP)
109  ENDDO
110ENDDO
111DO JP = 2,13
112  DO IGC = 1,NGC(2)
113
114
115    FREFADF(NGS(1)+IGC,JP) = FRACREFA(IGC,JP-1) -FRACREFA(IGC,JP)
116  ENDDO
117ENDDO
118DO IGC = 1,NGC(2)
119
120  FREFB(NGS(1)+IGC,1) = FRACREFB(IGC)
121ENDDO
122
123
124! +--Force the equivalence: BEGIN (HG, 13-DEC-2003)
125! +  ============================
126
127! +--ABSA
128! +  ^^^^
129         JT  = 0
130         JP  = 1
131         IGC = 1
132      DO NEQ=1,NG2
133      DO MEQ=1,65
134             JT =  JT  + 1
135       IF  ( JT == 5   + 1 )                                        THEN
136             JT =  1
137             JP =  JP  + 1
138        IF ( JP == 13  + 1 )                                        THEN
139             JP =  1
140             IGC=  IGC + 1
141        END IF
142       END IF
143             ABSA(MEQ,NEQ) = KA(JT,JP,IGC)
144      ENDDO
145      ENDDO
146
147! +--ABSB
148! +  ^^^^
149         JT  = 0
150         JP  = 13
151         IGC = 1
152      DO NEQ=1,NG2
153      DO MEQ=1,235
154             JT =  JT  + 1
155       IF  ( JT == 5   + 1 )                                        THEN
156             JT =  1
157             JP =  JP  + 1
158        IF ( JP == 59  + 1 )                                        THEN
159             JP =  13
160             IGC=  IGC + 1
161        END IF
162       END IF
163             ABSB(MEQ,NEQ) = KB(JT,JP,IGC)
164      ENDDO
165      ENDDO
166
167! +--Force the equivalence: END   (HG, 13-DEC-2003)
168! +  ==========================
169
170
171RETURN
172END SUBROUTINE RRTM_CMBGB2
Note: See TracBrowser for help on using the repository browser.