source: LMDZ6/trunk/libf/phylmd/ecrad/rrtm_cmbgb12.F90 @ 4062

Last change on this file since 4062 was 3908, checked in by idelkadi, 3 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: 1.9 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB12
3!***************************************************************************
4
5!     BAND 12:  1800-2080 cm-1 (low - H2O,CO2; high - nothing)
6!     ABozzo updated to rrtmg v4.85
7!***************************************************************************
8
9! Parameters
10USE PARKIND1  ,ONLY : JPIM     ,JPRB
11USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
12
13USE YOERRTO12, ONLY : KAO     ,SELFREFO, FORREFO   ,FRACREFAO
14USE YOERRTA12, ONLY : KA      ,SELFREF, FORREF    ,FRACREFA
15USE YOERRTRWT, ONLY : RWGT
16USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN     
17
18IMPLICIT NONE
19
20INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JN, JP, JT
21
22REAL(KIND=JPRB) :: Z_SUMF, Z_SUMK
23REAL(KIND=JPRB) :: ZHOOK_HANDLE
24
25IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB12',0,ZHOOK_HANDLE)
26DO JN = 1,9
27  DO JT = 1,5
28    DO JP = 1,13
29      IPRSM = 0
30      DO IGC = 1,NGC(12)
31        Z_SUMK = 0.0_JPRB
32        DO IPR = 1, NGN(NGS(11)+IGC)
33          IPRSM = IPRSM + 1
34
35          Z_SUMK = Z_SUMK + KAO(JN,JT,JP,IPRSM)*RWGT(IPRSM+176)
36        ENDDO
37
38        KA(JN,JT,JP,IGC) = Z_SUMK
39      ENDDO
40    ENDDO
41  ENDDO
42ENDDO
43
44DO JT = 1,10
45  IPRSM = 0
46  DO IGC = 1,NGC(12)
47    Z_SUMK = 0.0_JPRB
48    DO IPR = 1, NGN(NGS(11)+IGC)
49      IPRSM = IPRSM + 1
50
51      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+176)
52    ENDDO
53
54    SELFREF(JT,IGC) = Z_SUMK
55  ENDDO
56ENDDO
57
58DO JT = 1,4
59    IPRSM = 0
60    DO IGC = 1,NGC(12)
61       Z_SUMK = 0.0_JPRB
62       DO IPR = 1, NGN(NGS(11)+IGC)
63          IPRSM = IPRSM + 1
64          Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+176)
65       ENDDO
66       FORREF(JT,IGC) = Z_SUMK
67    ENDDO
68ENDDO
69
70
71DO JP = 1,9
72  IPRSM = 0
73  DO IGC = 1,NGC(12)
74    Z_SUMF = 0.0_JPRB
75    DO IPR = 1, NGN(NGS(11)+IGC)
76      IPRSM = IPRSM + 1
77
78      Z_SUMF = Z_SUMF + FRACREFAO(IPRSM,JP)
79    ENDDO
80
81    FRACREFA(IGC,JP) = Z_SUMF
82  ENDDO
83ENDDO
84
85IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB12',1,ZHOOK_HANDLE)
86END SUBROUTINE RRTM_CMBGB12
Note: See TracBrowser for help on using the repository browser.