/[lmdze]/trunk/phylmd/Radlwsw/lwbv.f
ViewVC logotype

Diff of /trunk/phylmd/Radlwsw/lwbv.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/phylmd/Radlwsw/lwbv.f revision 82 by guez, Wed Mar 5 14:57:53 2014 UTC trunk/Sources/phylmd/Radlwsw/lwbv.f revision 168 by guez, Wed Sep 9 10:41:47 2015 UTC
# Line 1  Line 1 
1  SUBROUTINE lwbv(klim, pdp, pdt0, pemis, ppmb, ptl, ptave, pabcu, pfluc, &  module lwbv_m
2      pbint, pbsui, pcts, pcntrb)  
   USE dimens_m  
   USE dimphy  
   USE suphec_m  
   USE raddim  
   USE raddimlw  
3    IMPLICIT NONE    IMPLICIT NONE
4    
5    ! PURPOSE.  contains
6    ! --------  
7    ! TO COMPUTE THE PLANCK FUNCTION AND PERFORM THE    SUBROUTINE lwbv(klim, pdt0, pemis, ppmb, ptl, ptave, pabcu, pfluc, &
8    ! VERTICAL INTEGRATION. SPLIT OUT FROM LW FOR MEMORY         pbint, pbsui, pcts, pcntrb)
9    ! SAVING  
10        USE dimens_m
11    ! METHOD.      USE dimphy
12    ! -------      use lwv_m, only: lwv
13        USE suphec_m
14    ! 1. COMPUTES THE PLANCK FUNCTIONS ON THE INTERFACES AND THE      USE raddim
15    ! GRADIENT OF PLANCK FUNCTIONS IN THE LAYERS.      USE raddimlw
16    ! 2. PERFORMS THE VERTICAL INTEGRATION DISTINGUISHING THE CON-  
17    ! TRIBUTIONS OF THE ADJACENT AND DISTANT LAYERS AND THOSE FROM THE      ! PURPOSE.
18    ! BOUNDARIES.      ! --------
19    ! 3. COMPUTES THE CLEAR-SKY COOLING RATES.      ! TO COMPUTE THE PLANCK FUNCTION AND PERFORM THE
20        ! VERTICAL INTEGRATION. SPLIT OUT FROM LW FOR MEMORY
21    ! REFERENCE.      ! SAVING
22    ! ----------  
23        ! METHOD.
24    ! SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND      ! -------
25    ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS  
26        ! 1. COMPUTES THE PLANCK FUNCTIONS ON THE INTERFACES AND THE
27    ! AUTHOR.      ! GRADIENT OF PLANCK FUNCTIONS IN THE LAYERS.
28    ! -------      ! 2. PERFORMS THE VERTICAL INTEGRATION DISTINGUISHING THE CON-
29    ! JEAN-JACQUES MORCRETTE  *ECMWF*      ! TRIBUTIONS OF THE ADJACENT AND DISTANT LAYERS AND THOSE FROM THE
30        ! BOUNDARIES.
31    ! MODIFICATIONS.      ! 3. COMPUTES THE CLEAR-SKY COOLING RATES.
32    ! --------------  
33    ! ORIGINAL : 89-07-14      ! REFERENCE.
34    ! MODIFICATION : 93-10-15 M.HAMRUD (SPLIT OUT FROM LW TO SAVE      ! ----------
35    ! MEMORY)  
36    ! -----------------------------------------------------------------------      ! SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
37    ! * ARGUMENTS:      ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
38    INTEGER klim  
39        ! AUTHOR.
40    DOUBLE PRECISION pdp(kdlon, kflev)      ! -------
41    DOUBLE PRECISION pdt0(kdlon)      ! JEAN-JACQUES MORCRETTE  *ECMWF*
42    DOUBLE PRECISION pemis(kdlon)  
43    DOUBLE PRECISION ppmb(kdlon, kflev+1)      ! MODIFICATIONS.
44    DOUBLE PRECISION ptl(kdlon, kflev+1)      ! --------------
45    DOUBLE PRECISION ptave(kdlon, kflev)      ! ORIGINAL : 89-07-14
46        ! MODIFICATION : 93-10-15 M.HAMRUD (SPLIT OUT FROM LW TO SAVE
47    DOUBLE PRECISION pfluc(kdlon, 2, kflev+1)      ! MEMORY)
48        ! -----------------------------------------------------------------------
49    DOUBLE PRECISION pabcu(kdlon, nua, 3*kflev+1)      ! * ARGUMENTS:
50    DOUBLE PRECISION pbint(kdlon, kflev+1)      INTEGER klim
51    DOUBLE PRECISION pbsui(kdlon)  
52    DOUBLE PRECISION pcts(kdlon, kflev)      DOUBLE PRECISION pdt0(kdlon)
53    DOUBLE PRECISION pcntrb(kdlon, kflev+1, kflev+1)      DOUBLE PRECISION pemis(kdlon)
54        DOUBLE PRECISION ppmb(kdlon, kflev+1)
55    ! -------------------------------------------------------------------------      DOUBLE PRECISION ptl(kdlon, kflev+1)
56        DOUBLE PRECISION ptave(kdlon, kflev)
57    ! * LOCAL VARIABLES:  
58    DOUBLE PRECISION zb(kdlon, ninter, kflev+1)      DOUBLE PRECISION pfluc(kdlon, 2, kflev+1)
59    DOUBLE PRECISION zbsur(kdlon, ninter)  
60    DOUBLE PRECISION zbtop(kdlon, ninter)      DOUBLE PRECISION pabcu(kdlon, nua, 3*kflev+1)
61    DOUBLE PRECISION zdbsl(kdlon, ninter, kflev*2)      DOUBLE PRECISION pbint(kdlon, kflev+1)
62    DOUBLE PRECISION zga(kdlon, 8, 2, kflev)      DOUBLE PRECISION pbsui(kdlon)
63    DOUBLE PRECISION zgb(kdlon, 8, 2, kflev)      DOUBLE PRECISION pcts(kdlon, kflev)
64    DOUBLE PRECISION zgasur(kdlon, 8, 2)      DOUBLE PRECISION pcntrb(kdlon, kflev+1, kflev+1)
65    DOUBLE PRECISION zgbsur(kdlon, 8, 2)  
66    DOUBLE PRECISION zgatop(kdlon, 8, 2)      ! -------------------------------------------------------------------------
67    DOUBLE PRECISION zgbtop(kdlon, 8, 2)  
68        ! * LOCAL VARIABLES:
69    INTEGER nuaer, ntraer      DOUBLE PRECISION zb(kdlon, ninter, kflev+1)
70    ! ------------------------------------------------------------------      DOUBLE PRECISION zbsur(kdlon, ninter)
71    ! * COMPUTES PLANCK FUNCTIONS:      DOUBLE PRECISION zbtop(kdlon, ninter)
72    CALL lwb(pdt0, ptave, ptl, zb, pbint, pbsui, zbsur, zbtop, zdbsl, zga, zgb, &      DOUBLE PRECISION zdbsl(kdlon, ninter, kflev*2)
73      zgasur, zgbsur, zgatop, zgbtop)      DOUBLE PRECISION zga(kdlon, 8, 2, kflev)
74    ! ------------------------------------------------------------------      DOUBLE PRECISION zgb(kdlon, 8, 2, kflev)
75    ! * PERFORMS THE VERTICAL INTEGRATION:      DOUBLE PRECISION zgasur(kdlon, 8, 2)
76    nuaer = nua      DOUBLE PRECISION zgbsur(kdlon, 8, 2)
77    ntraer = ntra      DOUBLE PRECISION zgatop(kdlon, 8, 2)
78    CALL lwv(nuaer, ntraer, klim, pabcu, zb, pbint, pbsui, zbsur, zbtop, zdbsl, &      DOUBLE PRECISION zgbtop(kdlon, 8, 2)
79      pemis, ppmb, ptave, zga, zgb, zgasur, zgbsur, zgatop, zgbtop, pcntrb, &  
80      pcts, pfluc)      INTEGER nuaer, ntraer
81    ! ------------------------------------------------------------------      ! ------------------------------------------------------------------
82    RETURN      ! * COMPUTES PLANCK FUNCTIONS:
83  END SUBROUTINE lwbv      CALL lwb(pdt0, ptave, ptl, zb, pbint, pbsui, zbsur, zbtop, zdbsl, zga, zgb, &
84             zgasur, zgbsur, zgatop, zgbtop)
85        ! ------------------------------------------------------------------
86        ! * PERFORMS THE VERTICAL INTEGRATION:
87        nuaer = nua
88        ntraer = ntra
89        CALL lwv(nuaer, ntraer, klim, pabcu, zb, pbint, pbsui, zbsur, zbtop, &
90             zdbsl, pemis, ppmb, zga, zgb, zgasur, zgbsur, zgatop, zgbtop, pcntrb, &
91             pcts, pfluc)
92    
93      END SUBROUTINE lwbv
94    
95    end module lwbv_m

Legend:
Removed from v.82  
changed lines
  Added in v.168

  ViewVC Help
Powered by ViewVC 1.1.21