Changeset 406 for LMDZ.3.3/branches/rel-LF/libf/phylmd
- Timestamp:
- Oct 15, 2002, 4:38:42 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/albedo.F
r79 r406 18 18 REAL fmagic ! un facteur magique pour regler l'albedo 19 19 ccc PARAMETER (fmagic=0.7) 20 PARAMETER (fmagic=1.1) 20 cccIM => a remplacer 21 cccIM PARAMETER (fmagic=1.1) 22 c PARAMETER (fmagic=1.0) 23 PARAMETER (fmagic=0.7) 21 24 INTEGER npts ! il controle la precision de l'integration 22 25 PARAMETER (npts=120) ! 120 correspond a l'interval 6 minutes … … 26 29 REAL rmu,alb, srmu, salb, fauxo, aa, bb 27 30 INTEGER i, k 31 cccIM 32 LOGICAL ancien_albedo 33 PARAMETER(ancien_albedo=.FALSE.) 34 c SAVE albedo 35 c 36 IF ( ancien_albedo ) THEN 28 37 c 29 38 zpi = 4. * ATAN(1.) … … 63 72 ENDIF 64 73 999 CONTINUE 74 c 75 c nouvel albedo 76 c 77 ELSE 78 c 79 zpi = 4. * ATAN(1.) 80 c 81 c Calculer la longitude vraie de l'orbite terrestre: 82 CALL orbite(rjour,zlonsun,zdist) 83 c 84 c 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)) 86 c 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) 90 c 91 c 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 97 c 98 c Faire l'integration numerique de midi a minuit (le facteur 2 99 c 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 112 1999 CONTINUE 113 ENDIF 65 114 RETURN 66 115 END … … 86 135 REAL fmagic ! un facteur magique pour regler l'albedo 87 136 ccc PARAMETER (fmagic=0.7) 88 PARAMETER (fmagic=1.1) 137 cccIM => a remplacer 138 cccIM PARAMETER (fmagic=1.1) 139 c PARAMETER (fmagic=1.0) 140 PARAMETER (fmagic=0.7) 89 141 c 90 142 REAL fauxo 91 143 INTEGER i 144 cccIM 145 LOGICAL ancien_albedo 146 PARAMETER(ancien_albedo=.FALSE.) 147 c SAVE albedo 148 c 149 IF ( ancien_albedo ) THEN 92 150 c 93 151 DO i = 1, klon 152 c 153 rmu0(i) = MAX(rmu0(i),0.0) 154 c 94 155 fauxo = ( 1.47 - ACOS( rmu0(i) ) )/0.15 95 156 albedo(i) = fmagic*( .03 + .630/( 1. + fauxo*fauxo)) 96 157 albedo(i) = MAX(MIN(albedo(i),0.60),0.04) 97 158 ENDDO 159 c 160 c nouvel albedo 161 c 162 ELSE 163 c 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 169 c 170 ENDIF 98 171 c 99 172 RETURN
Note: See TracChangeset
for help on using the changeset viewer.