Changeset 2359 for LMDZ5/trunk/libf/phylmd/orbite.F90
- Timestamp:
- Sep 4, 2015, 6:48:31 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/orbite.F90
r2346 r2359 102 102 END SUBROUTINE angle 103 103 ! ==================================================================== 104 SUBROUTINE zenang(longi, gmtime, pdtrad , lat, long, pmu0, frac)104 SUBROUTINE zenang(longi, gmtime, pdtrad1, pdtrad2, lat, long, pmu0, frac) 105 105 USE dimphy 106 106 IMPLICIT NONE … … 114 114 ! fournit des moyennes de pmu0 et non des valeurs 115 115 ! instantanees, du coup frac prend toutes les valeurs 116 ! entre 0 et 1. 116 ! entre 0 et 1. La routine integre entre gmtime+pdtrad1 et 117 ! gmtime+pdtrad2 avec pdtrad1 et pdtrad2 exprimes en secondes. 117 118 ! Date : premiere version le 13 decembre 1994 118 119 ! revu pour GCM le 30 septembre 1996 120 ! revu le 3 septembre 2015 pour les bornes de l'integrale 119 121 ! =============================================================== 120 122 ! longi : la longitude vraie de la terre dans son plan 121 123 ! solaire a partir de l'equinoxe de printemps (degre) 122 124 ! gmtime : temps universel en fraction de jour 123 ! pdtrad : pas de temps du rayonnement (secondes) 125 ! pdtrad1 : borne inferieure du pas de temps du rayonnement (secondes) 126 ! pdtrad2 : borne inferieure du pas de temps du rayonnement (secondes) 127 ! pdtrad2-pdtrad1 correspond a pdtrad, le pas de temps du rayonnement (secondes) 124 128 ! lat------INPUT : latitude en degres 125 129 ! long-----INPUT : longitude en degres 126 ! pmu0-----OUTPUT: angle zenithal moyen entre gmtime et gmtime+pdtrad127 ! frac-----OUTPUT: ensoleillement moyen entre gmtime et gmtime+pdtrad128 ! ================================================================ 129 include "YOMCST.h" 130 ! ================================================================ 131 REAL, INTENT (IN) :: longi, gmtime, pdtrad 130 ! pmu0-----OUTPUT: angle zenithal moyen entre gmtime+pdtrad1 et gmtime+pdtrad2 131 ! frac-----OUTPUT: ensoleillement moyen entre gmtime+pdtrad1 et gmtime+pdtrad2 132 ! ================================================================ 133 include "YOMCST.h" 134 ! ================================================================ 135 REAL, INTENT (IN) :: longi, gmtime, pdtrad1, pdtrad2 132 136 REAL lat(klon), long(klon), pmu0(klon), frac(klon) 133 137 ! ================================================================ … … 143 147 REAL lat_sun ! declinaison en radian 144 148 REAL lon_sun ! longitude solaire en radian 145 REAL latr ! latitude du pt de grille en radian149 REAL latr ! latitude du pt de grille en radian 146 150 ! ================================================================ 147 151 … … 153 157 lat_sun = asin(sin(lon_sun)*sin(incl)) 154 158 155 gmtime1 = gmtime*86400. 156 gmtime2 = gmtime*86400. + pdtrad 159 gmtime1 = gmtime*86400. + pdtrad1 160 gmtime2 = gmtime*86400. + pdtrad2 157 161 158 162 DO i = 1, klon … … 160 164 latr = lat(i)*pi_local/180. 161 165 162 ! --pose probleme quand lat=+/-90 degres163 164 ! omega = -TAN(latr)*TAN(lat_sun)165 ! omega = ACOS(omega)166 ! IF (latr.GE.(pi_local/2.+lat_sun)167 ! . .OR. latr.LE.(-pi_local/2.+lat_sun)) THEN168 ! omega = 0.0 ! nuit polaire169 ! ENDIF170 ! IF (latr.GE.(pi_local/2.-lat_sun)171 ! . .OR. latr.LE.(-pi_local/2.-lat_sun)) THEN172 ! omega = pi_local ! journee polaire173 ! ENDIF174 175 ! --remplace par cela (le cas par defaut est different)176 177 166 omega = 0.0 !--nuit polaire 167 178 168 IF (latr>=(pi_local/2.-lat_sun) .OR. latr<=(-pi_local/2.-lat_sun)) THEN 179 169 omega = pi_local ! journee polaire 180 170 END IF 171 181 172 IF (latr<(pi_local/2.+lat_sun) .AND. latr>(-pi_local/2.+lat_sun) .AND. & 182 173 latr<(pi_local/2.-lat_sun) .AND. latr>(-pi_local/2.-lat_sun)) THEN
Note: See TracChangeset
for help on using the changeset viewer.