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

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

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

trunk/libf/phylmd/Radlwsw/sw.f90 revision 62 by guez, Thu Jul 26 14:37:37 2012 UTC trunk/phylmd/Radlwsw/sw.f90 revision 76 by guez, Fri Nov 15 18:45:49 2013 UTC
# Line 10  contains Line 10  contains
10         ZFSDN0, tauae, pizae, cgae, PTAUA, POMEGAA, PTOPSWAD, PSOLSWAD, &         ZFSDN0, tauae, pizae, cgae, PTAUA, POMEGAA, PTOPSWAD, PSOLSWAD, &
11         PTOPSWAI, PSOLSWAI, ok_ade, ok_aie)         PTOPSWAI, PSOLSWAI, ok_ade, ok_aie)
12    
13      ! PURPOSE.      ! Purpose.
14      ! THIS ROUTINE COMPUTES THE SHORTWAVE RADIATION FLUXES IN TWO      ! This routine computes the shortwave radiation fluxes in two
15      ! SPECTRAL INTERVALS FOLLOWING FOUQUART AND BONNEL (1980).      ! spectral intervals following Fouquart and Bonnel (1980).
16    
17      ! METHOD.      ! Method.
18      ! 1. COMPUTES ABSORBER AMOUNTS (SWU)      ! 1. Computes absorber amounts (swu)
19      ! 2. COMPUTES FLUXES IN 1ST SPECTRAL INTERVAL (SW1S)      ! 2. Computes fluxes in 1st spectral interval (SW1S)
20      ! 3. COMPUTES FLUXES IN 2ND SPECTRAL INTERVAL (SW2S)      ! 3. Computes fluxes in 2nd spectral interval (SW2S)
21    
22      ! REFERENCE.      ! Reference.
23      ! SEE RADIATION PART OF THE ECMWF RESEARCH DEPARTMENT      ! See radiation part of the ECMWF research department
24      ! DOCUMENTATION, AND FOUQUART AND BONNEL (1980)      ! documentation, and Fouquart and Bonnel (1980)
25    
26      ! AUTHOR.      ! Author.
27      ! JEAN-JACQUES MORCRETTE *ECMWF*      ! Jean-Jacques Morcrette *ecmwf*
28    
29      ! MODIFICATIONS.      ! Modifications.
30      ! ORIGINAL: 89-07-14      ! Original: 89-07-14
31      ! 95-01-01 J.-J. MORCRETTE Direct/Diffuse Albedo      ! 95-01-01 J.-J. Morcrette direct/diffuse albedo
32      ! 03-11-27 J. QUAAS Introduce aerosol forcings (based on BOUCHER)      ! 03-11-27 J. Quaas Introduce aerosol forcings (based on Boucher)
33    
34      USE clesphys, ONLY: bug_ozone      USE clesphys, ONLY: bug_ozone
     USE suphec_m, ONLY: rcpd, rday, rg, rmd, rmo3  
35      USE raddim, ONLY: kdlon, kflev      USE raddim, ONLY: kdlon, kflev
36        USE suphec_m, ONLY: rcpd, rday, rg, md, rmo3
37    
38      ! ARGUMENTS:      ! ARGUMENTS:
39    
# Line 92  contains Line 92  contains
92    
93      INTEGER inu, jl, jk, i, k, kpl1      INTEGER inu, jl, jk, i, k, kpl1
94    
95      INTEGER swpas ! Every swpas steps, sw is calculated      INTEGER, PARAMETER:: swpas = 1 ! Every swpas steps, sw is calculated
     PARAMETER(swpas=1)  
96    
97      INTEGER itapsw      INTEGER:: itapsw = 0
98      LOGICAL appel1er      LOGICAL:: appel1er = .TRUE.
     DATA itapsw /0/  
     DATA appel1er /.TRUE./  
99      !jq-Introduced for aerosol forcings      !jq-Introduced for aerosol forcings
100      double precision flag_aer      double precision, save:: flag_aer
101      logical, intent(in):: ok_ade, ok_aie ! use aerosol forcings or not?      logical, intent(in):: ok_ade, ok_aie ! use aerosol forcings or not?
102      double precision tauae(kdlon, kflev, 2) ! aerosol optical properties      double precision tauae(kdlon, kflev, 2) ! aerosol optical properties
103      double precision pizae(kdlon, kflev, 2)      double precision pizae(kdlon, kflev, 2)
# Line 124  contains Line 121  contains
121      ! (diagnosed aerosol forcing)SHORTWAVE FLUX AT SURFACE(+AEROSOL IND)      ! (diagnosed aerosol forcing)SHORTWAVE FLUX AT SURFACE(+AEROSOL IND)
122    
123      !jq - Fluxes including aerosol effects      !jq - Fluxes including aerosol effects
124      DOUBLE PRECISION ZFSUPAD(KDLON, KFLEV+1)      DOUBLE PRECISION, save:: ZFSUPAD(KDLON, KFLEV+1)
125      DOUBLE PRECISION ZFSDNAD(KDLON, KFLEV+1)      DOUBLE PRECISION, save:: ZFSDNAD(KDLON, KFLEV+1)
126      DOUBLE PRECISION ZFSUPAI(KDLON, KFLEV+1)      DOUBLE PRECISION, save:: ZFSUPAI(KDLON, KFLEV+1)
127      DOUBLE PRECISION ZFSDNAI(KDLON, KFLEV+1)      DOUBLE PRECISION, save:: ZFSDNAI(KDLON, KFLEV+1)
128      logical initialized  
129      SAVE ZFSUPAD, ZFSDNAD, ZFSUPAI, ZFSDNAI ! aerosol fluxes      logical:: initialized = .false.
     !rv  
     save flag_aer  
     data initialized/.false./  
130    
131      !-------------------------------------------------------------------      !-------------------------------------------------------------------
132    
133      if(.not.initialized) then      if(.not.initialized) then
134         flag_aer=0.         flag_aer=0.
135         initialized=.TRUE.         initialized=.TRUE.
136           ZFSUPAD = 0.
137           ZFSDNAD = 0.
138           ZFSUPAI = 0.
139           ZFSDNAI = 0.
140      endif      endif
141      !rv      !rv
142    
# Line 157  contains Line 155  contains
155                       *PDP(JL, JK)*(101325.0/PPSOL(JL))                       *PDP(JL, JK)*(101325.0/PPSOL(JL))
156               ELSE               ELSE
157                  ! Correction MPL 100505                  ! Correction MPL 100505
158                  ZOZ(JL, JK) = POZON(JL, JK)*RMD/RMO3*46.6968/RG*PDP(JL, JK)                  ZOZ(JL, JK) = POZON(JL, JK)*MD/RMO3*46.6968/RG*PDP(JL, JK)
159               ENDIF               ENDIF
160            ENDDO            ENDDO
161         ENDDO         ENDDO

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

  ViewVC Help
Powered by ViewVC 1.1.21