source: LMDZ6/branches/cirrus/libf/phylmd/ecrad.v1.5.1/rrtm_cmbgb16.F90 @ 5435

Last change on this file since 5435 was 3908, checked in by idelkadi, 4 years ago

Online implementation of the radiative transfer code ECRAD in the LMDZ model.

  • Inclusion of the ecrad directory containing the sources of the ECRAD code
    • interface routine : radiation_scheme.F90
  • Adaptation of compilation scripts :
    • compilation under CPP key CPP_ECRAD
    • compilation with option "-rad ecard" or "-ecard true"
    • The "-rad old/rtm/ecran" build option will need to replace the "-rrtm true" and "-ecrad true" options in the future.
  • Runing LMDZ simulations with ecrad, you need :
    • logical key iflag_rrtm = 2 in physiq.def
    • namelist_ecrad (DefLists?)
    • the directory "data" containing the configuration files is temporarily placed in ../libfphylmd/ecrad/
  • Compilation and execution are tested in the 1D case. The repository under svn would allow to continue the implementation work: tests, verification of the results, ...
File size: 2.5 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB16
3!***************************************************************************
4
5!     BAND 16:  2600-3000 cm-1 (low - H2O,CH4; high - nothing)
6!     ABozzo 201306 updated to rrtmg v4.85
7!     band 16:  2600-3250 cm-1 (low key- h2o,ch4; high key - ch4)
8!***************************************************************************
9
10! Parameters
11USE PARKIND1  ,ONLY : JPIM     ,JPRB
12USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
13
14USE YOERRTO16, ONLY : KAO,KBO   ,SELFREFO,FORREFO  ,FRACREFAO,FRACREFBO
15USE YOERRTA16, ONLY : KA,KB     ,SELFREF,FORREF    ,FRACREFA,FRACREFB
16USE YOERRTRWT, ONLY : RWGT
17USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN     
18
19IMPLICIT NONE
20
21INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JN, JP, JT
22
23REAL(KIND=JPRB) :: Z_SUMF, Z_SUMK
24REAL(KIND=JPRB) :: ZHOOK_HANDLE
25
26IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB16',0,ZHOOK_HANDLE)
27DO JN = 1,9
28  DO JT = 1,5
29    DO JP = 1,13
30      IPRSM = 0
31      DO IGC = 1,NGC(16)
32        Z_SUMK = 0.0_JPRB
33        DO IPR = 1, NGN(NGS(15)+IGC)
34          IPRSM = IPRSM + 1
35
36          Z_SUMK = Z_SUMK + KAO(JN,JT,JP,IPRSM)*RWGT(IPRSM+240)
37        ENDDO
38
39        KA(JN,JT,JP,IGC) = Z_SUMK
40      ENDDO
41    ENDDO
42  ENDDO
43ENDDO
44
45DO JT = 1,5
46   DO JP = 13,59
47      IPRSM = 0
48      DO IGC = 1,NGC(16)
49         Z_SUMK = 0.0_JPRB
50         DO IPR = 1, NGN(NGS(15)+IGC)
51            IPRSM = IPRSM + 1
52            Z_SUMK = Z_SUMK + KBO(JT,JP,IPRSM)*RWGT(IPRSM+240)
53         ENDDO
54         KB(JT,JP,IGC) = Z_SUMK
55      ENDDO
56   ENDDO
57ENDDO
58
59
60DO JT = 1,10
61  IPRSM = 0
62  DO IGC = 1,NGC(16)
63    Z_SUMK = 0.0_JPRB
64    DO IPR = 1, NGN(NGS(15)+IGC)
65      IPRSM = IPRSM + 1
66
67      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+240)
68    ENDDO
69
70    SELFREF(JT,IGC) = Z_SUMK
71  ENDDO
72ENDDO
73
74DO JT = 1,4
75   IPRSM = 0
76   DO IGC = 1,NGC(16)
77      Z_SUMK = 0.0_JPRB
78      DO IPR = 1, NGN(NGS(15)+IGC)
79         IPRSM = IPRSM + 1
80         Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+240)
81      ENDDO
82      FORREF(JT,IGC) = Z_SUMK
83   ENDDO
84ENDDO
85
86IPRSM = 0
87DO IGC = 1,NGC(16)
88   Z_SUMF = 0.0_JPRB
89   DO IPR = 1, NGN(NGS(15)+IGC)
90      IPRSM = IPRSM + 1
91      Z_SUMF = Z_SUMF + FRACREFBO(IPRSM)
92   ENDDO
93   FRACREFB(IGC) = Z_SUMF
94ENDDO
95
96DO JP = 1,9
97  IPRSM = 0
98  DO IGC = 1,NGC(16)
99    Z_SUMF = 0.0_JPRB
100    DO IPR = 1, NGN(NGS(15)+IGC)
101      IPRSM = IPRSM + 1
102
103      Z_SUMF = Z_SUMF + FRACREFAO(IPRSM,JP)
104    ENDDO
105
106    FRACREFA(IGC,JP) = Z_SUMF
107  ENDDO
108ENDDO
109
110 
111IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB16',1,ZHOOK_HANDLE)
112END SUBROUTINE RRTM_CMBGB16
Note: See TracBrowser for help on using the repository browser.