/[lmdze]/trunk/Sources/phylmd/Interface_surf/alboc_cd.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/Interface_surf/alboc_cd.f

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

revision 134 by guez, Wed Apr 29 15:47:56 2015 UTC revision 154 by guez, Tue Jul 7 17:49:23 2015 UTC
# Line 1  Line 1 
1  SUBROUTINE alboc_cd(rmu0, albedo)  module alboc_cd_m
2    ! From LMDZ4/libf/phylmd/albedo.F,v 1.2 2005/02/07 15:00:52  
   USE dimens_m  
   USE dimphy  
3    IMPLICIT NONE    IMPLICIT NONE
   ! ======================================================================  
   ! Auteur(s): Z.X. Li (LMD/CNRS)  
   ! date: 19940624  
   ! Calculer l'albedo sur l'ocean en fonction de l'angle zenithal moyen  
   ! Formule due a Larson and Barkstrom (1977) Proc. of the symposium  
   ! on radiation in the atmosphere, 19-28 August 1976, science Press,  
   ! 1977 pp 451-453, ou These de 3eme cycle de Sylvie Joussaume.  
   
   ! Arguments  
   ! rmu0    (in): cosinus de l'angle solaire zenithal  
   ! albedo (out): albedo de surface de l'ocean  
   ! ======================================================================  
   REAL rmu0(klon), albedo(klon)  
   
   REAL fmagic ! un facteur magique pour regler l'albedo  
   ! cc      PARAMETER (fmagic=0.7)  
   ! ccIM => a remplacer  
   ! PARAMETER (fmagic=1.32)  
   PARAMETER (fmagic=1.0)  
   ! PARAMETER (fmagic=0.7)  
   
   REAL fauxo  
   INTEGER i  
   ! ccIM  
   LOGICAL ancien_albedo  
   PARAMETER (ancien_albedo=.FALSE.)  
   ! SAVE albedo  
   
   IF (ancien_albedo) THEN  
   
     DO i = 1, klon  
   
       rmu0(i) = max(rmu0(i), 0.0)  
   
       fauxo = (1.47-acos(rmu0(i)))/0.15  
       albedo(i) = fmagic*(.03+.630/(1.+fauxo*fauxo))  
       albedo(i) = max(min(albedo(i),0.60), 0.04)  
     END DO  
   
     ! nouvel albedo  
   
   ELSE  
   
     DO i = 1, klon  
       rmu0(i) = max(rmu0(i), 0.0)  
       ! IM:orig albedo(i) = 0.058/(rmu0(i) + 0.30)  
       albedo(i) = fmagic*0.058/(rmu0(i)+0.30)  
       albedo(i) = max(min(albedo(i),0.60), 0.04)  
     END DO  
4    
5    END IF  contains
6    
7      SUBROUTINE alboc_cd(rmu0, albedo)
8    
9        ! From LMDZ4/libf/phylmd/albedo.F, version 1.2 2005/02/07 15:00:52
10    
11        ! Author: Z. X. Li (LMD/CNRS)
12        ! Date: 1994/06/24
13    
14        ! Calculer l'alb\'edo sur l'oc\'ean en fonction de l'angle
15        ! z\'enithal moyen. Formule due \`a Larson and Barkstrom,
16        ! Proceedings of the symposium on radiation in the atmosphere,
17        ! 19-28 August 1976, science Press, 1977, pages 451-453, ou
18        ! th\`ese de 3\`eme cycle de Sylvie Joussaume.
19    
20        REAL, intent(in):: rmu0(:) ! cosinus de l'angle solaire z\'enithal
21        real, intent(out):: albedo(:) ! alb\'edo de surface de l'oc\'ean
22    
23        ! Local:
24        REAL, PARAMETER:: fmagic = 1. ! facteur magique pour r\'egler l'alb\'edo
25    
26        !----------------------------------------------------------
27    
28        albedo = max(min(fmagic * 0.058 / (max(rmu0, 0.) + 0.3), 0.6), 0.04)
29    
30      END SUBROUTINE alboc_cd
31    
32    RETURN  end module alboc_cd_m
 END SUBROUTINE alboc_cd  

Legend:
Removed from v.134  
changed lines
  Added in v.154

  ViewVC Help
Powered by ViewVC 1.1.21