source: LMDZ6/branches/cirrus/libf/phylmd/ecrad.v1.5.1/rrtm_cmbgb15.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.3 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB15
3!***************************************************************************
4
5!     BAND 15:  2380-2600 cm-1 (low - N2O,CO2; high - nothing)
6!     ABozzo 2001306 updated to rrtmg v4.85
7!     band 15:  2380-2600 cm-1 (low - n2o,co2; low minor - n2)
8!                              (high - nothing)
9!***************************************************************************
10
11! Parameters
12USE PARKIND1  ,ONLY : JPIM     ,JPRB
13USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
14
15USE YOERRTO15, ONLY : KAO     ,KAO_MN2,SELFREFO,FORREFO   ,FRACREFAO
16USE YOERRTA15, ONLY : KA      ,KA_MN2,SELFREF,FORREF    ,FRACREFA
17USE YOERRTRWT, ONLY : RWGT
18USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN     
19
20IMPLICIT NONE
21
22INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JN, JP, JT
23
24REAL(KIND=JPRB) :: Z_SUMF, Z_SUMK
25REAL(KIND=JPRB) :: ZHOOK_HANDLE
26
27IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB15',0,ZHOOK_HANDLE)
28DO JN = 1,9
29  DO JT = 1,5
30    DO JP = 1,13
31      IPRSM = 0
32      DO IGC = 1,NGC(15)
33        Z_SUMK = 0.0_JPRB
34        DO IPR = 1, NGN(NGS(14)+IGC)
35          IPRSM = IPRSM + 1
36
37          Z_SUMK = Z_SUMK + KAO(JN,JT,JP,IPRSM)*RWGT(IPRSM+224)
38        ENDDO
39
40        KA(JN,JT,JP,IGC) = Z_SUMK
41      ENDDO
42    ENDDO
43  ENDDO
44ENDDO
45
46DO JN = 1,9
47   DO JT = 1,19
48      IPRSM = 0
49      DO IGC = 1,NGC(15)
50        Z_SUMK = 0.0_JPRB
51         DO IPR = 1, NGN(NGS(14)+IGC)
52            IPRSM = IPRSM + 1
53            Z_SUMK = Z_SUMK + KAO_MN2(JN,JT,IPRSM)*RWGT(IPRSM+224)
54         ENDDO
55         KA_MN2(JN,JT,IGC) = Z_SUMK
56      ENDDO
57   ENDDO
58ENDDO
59
60DO JT = 1,10
61  IPRSM = 0
62  DO IGC = 1,NGC(15)
63    Z_SUMK = 0.0_JPRB
64    DO IPR = 1, NGN(NGS(14)+IGC)
65      IPRSM = IPRSM + 1
66
67      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+224)
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(15)
77      Z_SUMK = 0.0_JPRB
78      DO IPR = 1, NGN(NGS(14)+IGC)
79         IPRSM = IPRSM + 1
80         Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+224)
81      ENDDO
82      FORREF(JT,IGC) = Z_SUMK
83   ENDDO
84ENDDO
85
86DO JP = 1,9
87  IPRSM = 0
88  DO IGC = 1,NGC(15)
89    Z_SUMF = 0.0_JPRB
90    DO IPR = 1, NGN(NGS(14)+IGC)
91      IPRSM = IPRSM + 1
92
93      Z_SUMF = Z_SUMF + FRACREFAO(IPRSM,JP)
94    ENDDO
95
96    FRACREFA(IGC,JP) = Z_SUMF
97  ENDDO
98ENDDO
99
100 
101IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB15',1,ZHOOK_HANDLE)
102END SUBROUTINE RRTM_CMBGB15
Note: See TracBrowser for help on using the repository browser.