source: LMDZ6/branches/cirrus/libf/phylmd/ecrad.v1.5.1/rrtm_cmbgb8.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: 3.2 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB8
3!***************************************************************************
4
5!     BAND 8:  1080-1180 cm-1 (low (i.e.>~300mb) - H2O; high - O3)
6!     ABozzo 201306 updated to rrtmg v4.85
7!***************************************************************************
8
9! Parameters
10USE PARKIND1  ,ONLY : JPIM     ,JPRB
11USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
12
13USE YOERRTO8 , ONLY : KAO     ,KBO     ,SELFREFO   ,FORREFO, FRACREFAO  ,&
14 & FRACREFBO, KAO_MCO2, KAO_MN2O ,KAO_MO3, KBO_MCO2, KBO_MN2O, &
15 & CFC12O   , CFC22ADJO 
16USE YOERRTA8 , ONLY : KA      ,KB      ,SELFREF    ,FORREF, FRACREFA   ,&
17 & FRACREFB , KA_MCO2, KA_MN2O ,KA_MO3, KB_MCO2, KB_MN2O,&
18 & CFC12    , CFC22ADJ 
19USE YOERRTRWT, ONLY : RWGT
20USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN     
21
22IMPLICIT NONE
23
24INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JP, JT
25
26REAL(KIND=JPRB) :: Z_SUMF1, Z_SUMF2, Z_SUMK, Z_SUMK1, Z_SUMK2, Z_SUMK3, Z_SUMK4, Z_SUMK5
27REAL(KIND=JPRB) :: ZHOOK_HANDLE
28
29IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB8',0,ZHOOK_HANDLE)
30DO JT = 1,5
31  DO JP = 1,13
32    IPRSM = 0
33    DO IGC = 1,NGC(8)
34      Z_SUMK = 0.0_JPRB
35      DO IPR = 1, NGN(NGS(7)+IGC)
36        IPRSM = IPRSM + 1
37        Z_SUMK = Z_SUMK + KAO(JT,JP,IPRSM)*RWGT(IPRSM+112)
38      ENDDO
39      KA(JT,JP,IGC) = Z_SUMK
40    ENDDO
41  ENDDO
42ENDDO
43DO JT = 1,5
44  DO JP = 13,59
45    IPRSM = 0
46    DO IGC = 1,NGC(8)
47      Z_SUMK = 0.0_JPRB
48      DO IPR = 1, NGN(NGS(7)+IGC)
49        IPRSM = IPRSM + 1
50        Z_SUMK = Z_SUMK + KBO(JT,JP,IPRSM)*RWGT(IPRSM+112)
51      ENDDO
52      KB(JT,JP,IGC) = Z_SUMK
53    ENDDO
54  ENDDO
55ENDDO
56
57DO JT = 1,10
58  IPRSM = 0
59  DO IGC = 1,NGC(8)
60    Z_SUMK = 0.0_JPRB
61    DO IPR = 1, NGN(NGS(7)+IGC)
62      IPRSM = IPRSM + 1
63      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+112)
64    ENDDO
65    SELFREF(JT,IGC) = Z_SUMK
66  ENDDO
67ENDDO
68DO JT = 1,4
69   IPRSM = 0
70   DO IGC = 1,NGC(8)
71      Z_SUMK = 0.0_JPRB
72      DO IPR = 1, NGN(NGS(7)+IGC)
73         IPRSM = IPRSM + 1
74         Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+112)
75      ENDDO
76      FORREF(JT,IGC) = Z_SUMK
77   ENDDO
78ENDDO
79
80DO JT = 1,19
81IPRSM = 0
82DO IGC = 1,NGC(8)
83  Z_SUMK1= 0.0_JPRB
84  Z_SUMK2= 0.0_JPRB
85  Z_SUMK3= 0.0_JPRB
86  Z_SUMK4= 0.0_JPRB
87  Z_SUMK5= 0.0_JPRB
88  DO IPR = 1, NGN(NGS(7)+IGC)
89    IPRSM = IPRSM + 1
90    Z_SUMK1= Z_SUMK1+ KAO_MCO2(JT,IPRSM)*RWGT(IPRSM+112)
91    Z_SUMK2= Z_SUMK2+ KBO_MCO2(JT,IPRSM)*RWGT(IPRSM+112)
92    Z_SUMK3= Z_SUMK3+ KAO_MO3(JT,IPRSM)*RWGT(IPRSM+112)
93    Z_SUMK4= Z_SUMK4+ KAO_MN2O(JT,IPRSM)*RWGT(IPRSM+112)
94    Z_SUMK5= Z_SUMK5+ KBO_MN2O(JT,IPRSM)*RWGT(IPRSM+112)
95  ENDDO
96  KA_MCO2(JT,IGC) = Z_SUMK1
97  KB_MCO2(JT,IGC) = Z_SUMK2
98  KA_MO3(JT,IGC) = Z_SUMK3
99  KA_MN2O(JT,IGC) = Z_SUMK4
100  KB_MN2O(JT,IGC) = Z_SUMK5
101ENDDO
102ENDDO
103
104
105
106IPRSM = 0
107DO IGC = 1,NGC(8)
108  Z_SUMF1= 0.0_JPRB
109  Z_SUMF2= 0.0_JPRB
110  Z_SUMK1= 0.0_JPRB
111  Z_SUMK2= 0.0_JPRB
112  DO IPR = 1, NGN(NGS(7)+IGC)
113    IPRSM = IPRSM + 1
114    Z_SUMF1= Z_SUMF1+ FRACREFAO(IPRSM)
115    Z_SUMF2= Z_SUMF2+ FRACREFBO(IPRSM)
116    Z_SUMK1= Z_SUMK1+ CFC12O(IPRSM)*RWGT(IPRSM+112)
117    Z_SUMK2= Z_SUMK2+ CFC22ADJO(IPRSM)*RWGT(IPRSM+112)
118  ENDDO
119  FRACREFA(IGC) = Z_SUMF1
120  FRACREFB(IGC) = Z_SUMF2
121  CFC12(IGC) = Z_SUMK1
122  CFC22ADJ(IGC) = Z_SUMK2
123ENDDO
124
125
126
127IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB8',1,ZHOOK_HANDLE)
128END SUBROUTINE RRTM_CMBGB8
Note: See TracBrowser for help on using the repository browser.