source: LMDZ6/trunk/libf/phylmd/ecrad/ifsrrtm/srtm_kgb28.F90 @ 4791

Last change on this file since 4791 was 4773, checked in by idelkadi, 11 months ago
  • Update of Ecrad in LMDZ The same organization of the Ecrad offline version is retained in order to facilitate the updating of Ecrad in LMDZ and the comparison between online and offline results. version 1.6.1 of Ecrad (https://github.com/lguez/ecrad.git)
  • Implementation of the double call of Ecrad in LMDZ


File size: 5.3 KB
RevLine 
[4773]1SUBROUTINE SRTM_KGB28
2
3!     Originally by J.Delamere, Atmospheric & Environmental Research.
4!     Revision: 2.4
5!     BAND 28: 38000-50000 cm-1 (low - O3,O2; high - O3,O2)
6!     Reformatted for F90 by JJMorcrette, ECMWF
7!     R. Elkhatib 12-10-2005 Split for faster and more robust compilation.
8!     G.Mozdzynski March 2011 read constants from files
9!     T. Wilhelmsson and K. Yessad (Oct 2013) Geometry and setup refactoring.
10!      F. Vana  05-Mar-2015  Support for single precision
11!     ------------------------------------------------------------------
12
13USE PARKIND1  , ONLY : JPRB
14USE YOMHOOK   , ONLY : LHOOK, DR_HOOK, JPHOOK
15USE YOMLUN    , ONLY : NULRAD
16USE YOMMP0    , ONLY : NPROC, MYPROC
17USE MPL_MODULE, ONLY : MPL_BROADCAST
18USE YOMTAG    , ONLY : MTAGRAD
19USE YOESRTA28 , ONLY : KA, KB, SFLUXREF, RAYL, STRRAT, LAYREFFR, KA_D, KB_D
20
21!     ------------------------------------------------------------------
22
23IMPLICIT NONE
24
25! KURUCZ
26REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
27
28#include "abor1.intfb.h"
29
30IF (LHOOK) CALL DR_HOOK('SRTM_KGB28',0,ZHOOK_HANDLE)
31
32IF( MYPROC==1 )THEN
33  READ(NULRAD,ERR=1001) KA_D,KB_D
34  KA = REAL(KA_D,JPRB)
35  KB = REAL(KB_D,JPRB)
36ENDIF
37IF( NPROC>1 )THEN
38  CALL MPL_BROADCAST (KA,MTAGRAD,1,CDSTRING='SRTM_KGB28:')
39  CALL MPL_BROADCAST (KB,MTAGRAD,1,CDSTRING='SRTM_KGB28:')
40ENDIF
41
42SFLUXREF(:,1) = (/ &
43 & 1.06156_JPRB    , 0.599910_JPRB   , 0.422462_JPRB   , 0.400077_JPRB   , &
44 & 0.282221_JPRB   , 0.187893_JPRB   , 6.77357E-02_JPRB, 3.04572E-02_JPRB, &
45 & 2.00442E-02_JPRB, 2.30786E-03_JPRB, 2.08824E-03_JPRB, 1.42604E-03_JPRB, &
46 & 9.67384E-04_JPRB, 6.35362E-04_JPRB, 1.47727E-04_JPRB, 6.87639E-06_JPRB /) 
47SFLUXREF(:,2) = (/ &
48 & 1.07598_JPRB    , 0.585099_JPRB   , 0.422852_JPRB   , 0.400077_JPRB   , &
49 & 0.282221_JPRB   , 0.187893_JPRB   , 6.69686E-02_JPRB, 3.09070E-02_JPRB, &
50 & 2.02400E-02_JPRB, 2.47760E-03_JPRB, 1.89411E-03_JPRB, 1.41122E-03_JPRB, &
51 & 1.12449E-03_JPRB, 5.73505E-04_JPRB, 2.04160E-04_JPRB, 1.58371E-05_JPRB /) 
52SFLUXREF(:,3) = (/ &
53 & 0.461647_JPRB   , 0.406113_JPRB   , 0.332506_JPRB   , 0.307508_JPRB   , &
54 & 0.211167_JPRB   , 0.235457_JPRB   , 0.495886_JPRB   , 0.363921_JPRB   , &
55 & 0.192700_JPRB   , 2.04678E-02_JPRB, 1.55407E-02_JPRB, 1.03882E-02_JPRB, &
56 & 1.10778E-02_JPRB, 1.00504E-02_JPRB, 4.93497E-03_JPRB, 5.73410E-04_JPRB /) 
57SFLUXREF(:,4) = (/ &
58 & 0.132669_JPRB   , 0.175058_JPRB   , 0.359263_JPRB   , 0.388142_JPRB   , &
59 & 0.350359_JPRB   , 0.475892_JPRB   , 0.489593_JPRB   , 0.408437_JPRB   , &
60 & 0.221049_JPRB   , 1.94514E-02_JPRB, 1.54848E-02_JPRB, 1.44999E-02_JPRB, &
61 & 1.44568E-02_JPRB, 1.00527E-02_JPRB, 4.95897E-03_JPRB, 5.73327E-04_JPRB /) 
62SFLUXREF(:,5) = (/ &
63 & 7.54800E-02_JPRB, 0.232246_JPRB   , 0.359263_JPRB   , 0.388142_JPRB   , &
64 & 0.350359_JPRB   , 0.426317_JPRB   , 0.493485_JPRB   , 0.432016_JPRB   , &
65 & 0.239203_JPRB   , 1.74951E-02_JPRB, 1.74477E-02_JPRB, 1.83566E-02_JPRB, &
66 & 1.44818E-02_JPRB, 1.01048E-02_JPRB, 4.97487E-03_JPRB, 5.66831E-04_JPRB /) 
67
68!     Rayleigh extinction coefficient at v = ????? cm-1.
69RAYL = 2.02E-05_JPRB
70
71STRRAT = 6.67029E-07_JPRB
72
73LAYREFFR = 58
74
75!     ------------------------------------------------------------------
76
77!     The array KA contains absorption coefs at the 16 chosen g-values
78!     for a range of pressure levels> ~100mb, temperatures, and binary
79!     species parameters (see taumol.f for definition).  The first
80!     index in the array, JS, runs from 1 to 9, and corresponds to
81!     different values of the binary species parameter.  For instance,
82!     JS=1 refers to dry air, JS = 2 corresponds to the paramter value 1/8,
83!     JS = 3 corresponds to the parameter value 2/8, etc.  The second index
84!     in the array, JT, which runs from 1 to 5, corresponds to different
85!     temperatures.  More specifically, JT = 3 means that the data are for
86!     the reference temperature TREF for this  pressure level, JT = 2 refers
87!     to TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5
88!     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers
89!     to the JPth reference pressure level (see taumol.f for these levels
90!     in mb).  The fourth index, IG, goes from 1 to 16, and indicates
91!     which g-interval the absorption coefficients are for.
92!     -----------------------------------------------------------------
93
94!     -----------------------------------------------------------------
95!     The array KB contains absorption coefs at the 16 chosen g-values
96!     for a range of pressure levels < ~100mb and temperatures. The first
97!     index in the array, JT, which runs from 1 to 5, corresponds to
98!     different temperatures.  More specifically, JT = 3 means that the
99!     data are for the reference temperature TREF for this pressure
100!     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for
101!     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30. 
102!     The second index, JP, runs from 13 to 59 and refers to the JPth
103!     reference pressure level (see taumol.f for the value of these
104!     pressure levels in mb).  The third index, IG, goes from 1 to 16,
105!     and tells us which g-interval the absorption coefficients are for.
106!     -----------------------------------------------------------------
107
108IF (LHOOK) CALL DR_HOOK('SRTM_KGB28',1,ZHOOK_HANDLE)
109RETURN
110
1111001 CONTINUE
112CALL ABOR1("SRTM_KGB28:ERROR READING FILE RADSRTM")
113
114END SUBROUTINE SRTM_KGB28
Note: See TracBrowser for help on using the repository browser.