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

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

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

revision 62 by guez, Thu Jul 26 14:37:37 2012 UTC revision 71 by guez, Mon Jul 8 18:12:18 2013 UTC
# Line 12  contains Line 12  contains
12         solswai)         solswai)
13    
14      ! From LMDZ4/libf/phylmd/radlwsw.F, version 1.4 2005/06/06 13:16:33      ! From LMDZ4/libf/phylmd/radlwsw.F, version 1.4 2005/06/06 13:16:33
15      ! Author: Z. X. Li (LMD/CNRS) date: 1996/07/19      ! Author: Z. X. Li (LMD/CNRS)
16      ! Objet : interface entre le modèle et les rayonnements      ! Date: 1996/07/19
17      ! Rayonnements solaire et infrarouge  
18        ! Objet : interface entre le modèle et les rayonnements solaire et
19        ! infrarouge
20    
21        ! ATTENTION: swai and swad have to be interpreted in the following manner:
22    
23        ! not ok_ade and not ok_aie
24        ! both are zero
25    
26        ! ok_ade and not ok_aie
27        ! aerosol direct forcing is F_{AD} = topsw - topswad
28        ! indirect is zero
29    
30        ! not ok_ade and ok_aie
31        ! aerosol indirect forcing is F_{AI} = topsw - topswai
32        ! direct is zero
33    
34        ! ok_ade and ok_aie
35        ! aerosol indirect forcing is F_{AI} = topsw - topswai
36        ! aerosol direct forcing is F_{AD} = topswai - topswad
37    
     USE dimphy, ONLY: klev, klon  
38      USE clesphys, ONLY: bug_ozone, solaire      USE clesphys, ONLY: bug_ozone, solaire
39      USE suphec_m, ONLY: rg      USE dimphy, ONLY: klev, klon
40        use lw_m, only: lw
41      USE raddim, ONLY: kdlon      USE raddim, ONLY: kdlon
42      USE yoethf_m, ONLY: rvtmp2      USE suphec_m, ONLY: rg
43      use sw_m, only: sw      use sw_m, only: sw
44        USE yoethf_m, ONLY: rvtmp2
45                    
46      ! Arguments:      ! Arguments:
47    
48        real rmu0(klon), fract(klon), dist
49      ! dist-----input-R- distance astronomique terre-soleil      ! dist-----input-R- distance astronomique terre-soleil
50      ! rmu0-----input-R- cosinus de l'angle zenithal      ! rmu0-----input-R- cosinus de l'angle zenithal
51      ! fract----input-R- duree d'ensoleillement normalisee      ! fract----input-R- duree d'ensoleillement normalisee
52      ! co2_ppm--input-R- concentration du gaz carbonique (en ppm)  
53      ! solaire--input-R- constante solaire (W/m**2)      real, intent(in):: paprs(klon, klev+1)
54      ! paprs----input-R- pression a inter-couche (Pa)      ! paprs----input-R- pression a inter-couche (Pa)
55        real, intent(in):: pplay(klon, klev)
56      ! pplay----input-R- pression au milieu de couche (Pa)      ! pplay----input-R- pression au milieu de couche (Pa)
57      ! tsol-----input-R- temperature du sol (en K)      real albedo(klon), alblw(klon), tsol(klon)
58      ! albedo---input-R- albedo du sol (entre 0 et 1)      ! albedo---input-R- albedo du sol (entre 0 et 1)
59        ! tsol-----input-R- temperature du sol (en K)
60        real, intent(in):: t(klon, klev)
61      ! t--------input-R- temperature (K)      ! t--------input-R- temperature (K)
62        real q(klon, klev)
63      ! q--------input-R- vapeur d'eau (en kg/kg)      ! q--------input-R- vapeur d'eau (en kg/kg)
64        real, intent(in):: wo(klon, klev)
65      ! wo-------input-R- contenu en ozone (en kg/kg) correction MPL 100505      ! wo-------input-R- contenu en ozone (en kg/kg) correction MPL 100505
66        real cldfra(klon, klev), cldemi(klon, klev)
67      ! cldfra---input-R- fraction nuageuse (entre 0 et 1)      ! cldfra---input-R- fraction nuageuse (entre 0 et 1)
     ! cldtaupd---input-R- epaisseur optique des nuages dans le visible (present-day value)  
68      ! cldemi---input-R- emissivite des nuages dans l'IR (entre 0 et 1)      ! cldemi---input-R- emissivite des nuages dans l'IR (entre 0 et 1)
     ! tau_ae, piz_ae, cg_ae-input-R- aerosol optical properties (calculated in aeropt.F)  
     ! cldtaupi-input-R- epaisseur optique des nuages dans le visible  
     !                   calculated for pre-industrial (pi) aerosol concentrations, i.e. with smaller  
     !                   droplet concentration, thus larger droplets, thus generally cdltaupi cldtaupd  
     !                   it is needed for the diagnostics of the aerosol indirect radiative forcing        
69    
70      ! cool-----output-R- refroidissement dans l'IR (K/jour)      real cldtaupd(klon, klev)
71      ! radsol---output-R- bilan radiatif net au sol (W/m**2) (+ vers le bas)      ! input-R- epaisseur optique des nuages dans le visible (present-day value)
     ! albpla---output-R- albedo planetaire (entre 0 et 1)  
     ! topsw----output-R- flux solaire net au sommet de l'atm.  
     ! solsw----output-R- flux solaire net a la surface  
     ! sollw----output-R- ray. IR montant a la surface  
     ! solswad---output-R- ray. solaire net absorbe a la surface (aerosol dir)  
     ! topswad---output-R- ray. solaire absorbe au sommet de l'atm. (aerosol dir)  
     ! solswai---output-R- ray. solaire net absorbe a la surface (aerosol ind)  
     ! topswai---output-R- ray. solaire absorbe au sommet de l'atm. (aerosol ind)  
   
     ! ATTENTION: swai and swad have to be interpreted in the following manner:  
     ! ok_ade = F & ok_aie = F -both are zero  
     ! ok_ade = T & ok_aie = F -aerosol direct forcing is F_{AD} = topsw-topswad  
     !                        indirect is zero  
     ! ok_ade = F & ok_aie = T -aerosol indirect forcing is F_{AI} = topsw-topswai  
     !                        direct is zero  
     ! ok_ade = T & ok_aie = T -aerosol indirect forcing is F_{AI} = topsw-topswai  
     !                        aerosol direct forcing is F_{AD} = topswai-topswad  
   
     real rmu0(klon), fract(klon), dist  
   
     real, intent(in):: paprs(klon, klev+1)  
     real, intent(in):: pplay(klon, klev)  
     real albedo(klon), alblw(klon), tsol(klon)  
     real, intent(in):: t(klon, klev)  
     real q(klon, klev)  
     real, intent(in):: wo(klon, klev)  
     real cldfra(klon, klev), cldemi(klon, klev), cldtaupd(klon, klev)  
72    
73      real, intent(out):: heat(klon, klev)      real, intent(out):: heat(klon, klev)
74      ! échauffement atmosphérique (visible) (K/jour)      ! échauffement atmosphérique (visible) (K/jour)
75    
76      real cool(klon, klev)      real cool(klon, klev)
77        ! cool-----output-R- refroidissement dans l'IR (K/jour)
78      real heat0(klon, klev), cool0(klon, klev)      real heat0(klon, klev), cool0(klon, klev)
79      real radsol(klon), topsw(klon)      real radsol(klon), topsw(klon)
80        ! radsol---output-R- bilan radiatif net au sol (W/m**2) (+ vers le bas)
81        ! topsw----output-R- flux solaire net au sommet de l'atm.
82    
83      real, intent(out):: toplw(klon)      real, intent(out):: toplw(klon)
84      ! rayonnement infrarouge montant au sommet de l'atmosphère      ! rayonnement infrarouge montant au sommet de l'atmosphère
85    
86      real solsw(klon), sollw(klon), albpla(klon)      real solsw(klon), sollw(klon), albpla(klon)
87        ! solsw----output-R- flux solaire net a la surface
88        ! sollw----output-R- ray. IR montant a la surface
89        ! albpla---output-R- albedo planetaire (entre 0 et 1)
90      real topsw0(klon), solsw0(klon), sollw0(klon)      real topsw0(klon), solsw0(klon), sollw0(klon)
91      real, intent(out):: toplw0(klon)      real, intent(out):: toplw0(klon)
92      real sollwdown(klon)      real sollwdown(klon)
# Line 101  contains Line 102  contains
102      DOUBLE PRECISION ZFLDN0(KDLON, KLEV+1)      DOUBLE PRECISION ZFLDN0(KDLON, KLEV+1)
103    
104      DOUBLE PRECISION zx_alpha1, zx_alpha2      DOUBLE PRECISION zx_alpha1, zx_alpha2
   
105      INTEGER k, kk, i, iof, nb_gr      INTEGER k, kk, i, iof, nb_gr
     EXTERNAL lw  
   
106      DOUBLE PRECISION PSCT      DOUBLE PRECISION PSCT
107    
108      DOUBLE PRECISION PALBD(kdlon, 2), PALBP(kdlon, 2)      DOUBLE PRECISION PALBD(kdlon, 2), PALBP(kdlon, 2)
# Line 142  contains Line 140  contains
140    
141      real topswad(klon), solswad(klon)      real topswad(klon), solswad(klon)
142      ! output: aerosol direct forcing at TOA and surface      ! output: aerosol direct forcing at TOA and surface
143        ! topswad---output-R- ray. solaire absorbe au sommet de l'atm. (aerosol dir)
144        ! solswad---output-R- ray. solaire net absorbe a la surface (aerosol dir)
145    
146      real topswai(klon), solswai(klon)      real topswai(klon), solswai(klon)
147      ! output: aerosol indirect forcing atTOA and surface      ! output: aerosol indirect forcing atTOA and surface
148        ! topswai---output-R- ray. solaire absorbe au sommet de l'atm. (aerosol ind)
149        ! solswai---output-R- ray. solaire net absorbe a la surface (aerosol ind)
150    
151      real tau_ae(klon, klev, 2), piz_ae(klon, klev, 2), cg_ae(klon, klev, 2)      real tau_ae(klon, klev, 2), piz_ae(klon, klev, 2), cg_ae(klon, klev, 2)
152      ! aerosol optical properties (see aeropt.F)      ! input-R- aerosol optical properties (calculated in aeropt.F)
153    
154      real cldtaupi(klon, klev)      real cldtaupi(klon, klev)
155      ! cloud optical thickness for pre-industrial aerosol concentrations      ! cloud optical thickness for pre-industrial aerosol concentrations
156      ! (i.e., with a smaller droplet concentrationand thus larger droplet radii)      ! (i.e. with a smaller droplet concentration and thus larger droplet radii)
157        ! -input-R- epaisseur optique des nuages dans le visible
158        ! calculated for pre-industrial (pi) aerosol concentrations,
159        ! i.e. with smaller droplet concentration, thus larger droplets,
160        ! thus generally cdltaupi cldtaupd it is needed for the
161        ! diagnostics of the aerosol indirect radiative forcing
162    
163      logical ok_ade, ok_aie      logical ok_ade, ok_aie
164      ! switches whether to use aerosol direct (indirect) effects or not      ! switches whether to use aerosol direct (indirect) effects or not

Legend:
Removed from v.62  
changed lines
  Added in v.71

  ViewVC Help
Powered by ViewVC 1.1.21