Ignore:
Timestamp:
Oct 15, 2002, 4:38:42 PM (22 years ago)
Author:
lmdzadmin
Message:

Albedo ECHAM3 (SB)
IM/LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/branches/rel-LF/libf/phylmd/albedo.F

    r79 r406  
    1818      REAL fmagic ! un facteur magique pour regler l'albedo
    1919ccc      PARAMETER (fmagic=0.7)
    20       PARAMETER (fmagic=1.1)
     20cccIM => a remplacer 
     21cccIM   PARAMETER (fmagic=1.1)
     22c       PARAMETER (fmagic=1.0)
     23        PARAMETER (fmagic=0.7)
    2124      INTEGER npts ! il controle la precision de l'integration
    2225      PARAMETER (npts=120) ! 120 correspond a l'interval 6 minutes
     
    2629      REAL rmu,alb, srmu, salb, fauxo, aa, bb
    2730      INTEGER i, k
     31cccIM
     32      LOGICAL ancien_albedo
     33      PARAMETER(ancien_albedo=.FALSE.)
     34c     SAVE albedo
     35c
     36      IF ( ancien_albedo ) THEN
    2837c
    2938      zpi = 4. * ATAN(1.)
     
    6372      ENDIF
    6473  999 CONTINUE
     74c
     75c nouvel albedo
     76c
     77      ELSE
     78c
     79      zpi = 4. * ATAN(1.)
     80c
     81c Calculer la longitude vraie de l'orbite terrestre:
     82      CALL orbite(rjour,zlonsun,zdist)
     83c
     84c Calculer la declinaison du soleil (qui varie entre + et - R_incl):
     85      zdeclin = ASIN(SIN(zlonsun*zpi/180.0)*SIN(R_incl*zpi/180.0))
     86c
     87      DO 1999 i=1,klon
     88      aa = SIN(rlat(i)*zpi/180.0) * SIN(zdeclin)
     89      bb = COS(rlat(i)*zpi/180.0) * COS(zdeclin)
     90c
     91c Midi local (angle du temps = 0.0):
     92      rmu = aa + bb * COS(0.0)
     93      rmu = MAX(0.0, rmu)
     94      alb = 0.058/(rmu + 0.30)
     95      srmu = rmu
     96      salb = alb * rmu
     97c
     98c Faire l'integration numerique de midi a minuit (le facteur 2
     99c prend en compte l'autre moitie de la journee):
     100      DO k = 1, npts
     101         rmu = aa + bb * COS(FLOAT(k)/FLOAT(npts)*zpi)
     102         rmu = MAX(0.0, rmu)
     103         alb = 0.058/(rmu + 0.30)
     104         srmu = srmu + rmu * 2.0
     105         salb = salb + alb*rmu * 2.0
     106      ENDDO
     107      IF (srmu .NE. 0.0) THEN
     108         albedo(i) = salb / srmu * fmagic
     109      ELSE ! nuit polaire (on peut prendre une valeur quelconque)
     110         albedo(i) = fmagic
     111      ENDIF
     1121999  CONTINUE
     113      ENDIF
    65114      RETURN
    66115      END
     
    86135      REAL fmagic ! un facteur magique pour regler l'albedo
    87136ccc      PARAMETER (fmagic=0.7)
    88       PARAMETER (fmagic=1.1)
     137cccIM => a remplacer 
     138cccIM   PARAMETER (fmagic=1.1)
     139c       PARAMETER (fmagic=1.0)
     140        PARAMETER (fmagic=0.7)
    89141c
    90142      REAL fauxo
    91143      INTEGER i
     144cccIM
     145      LOGICAL ancien_albedo
     146      PARAMETER(ancien_albedo=.FALSE.)
     147c     SAVE albedo
     148c
     149      IF ( ancien_albedo ) THEN
    92150c
    93151      DO i = 1, klon
     152c
     153         rmu0(i) = MAX(rmu0(i),0.0)
     154c
    94155         fauxo = ( 1.47 - ACOS( rmu0(i) ) )/0.15
    95156         albedo(i) = fmagic*( .03 + .630/( 1. + fauxo*fauxo))
    96157         albedo(i) = MAX(MIN(albedo(i),0.60),0.04)
    97158      ENDDO
     159c
     160c nouvel albedo
     161c
     162      ELSE
     163c
     164      DO i = 1, klon
     165         rmu0(i) = MAX(rmu0(i),0.0)
     166         albedo(i) = 0.058/(rmu0(i) + 0.30)
     167         albedo(i) = MAX(MIN(albedo(i),0.60),0.04)
     168      ENDDO
     169c
     170      ENDIF
    98171c
    99172      RETURN
Note: See TracChangeset for help on using the changeset viewer.