Changeset 703 for trunk/NEMO/OPA_SRC/SBC/albedo.F90
- Timestamp:
- 2007-10-10T10:14:32+02:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/albedo.F90
r699 r703 4 4 !! Ocean forcing: bulk thermohaline forcing of the ocean (or ice) 5 5 !!===================================================================== 6 !!---------------------------------------------------------------------- 7 !! flx_blk_albedo : albedo for ocean and ice (clear and overcast skies) 8 !!---------------------------------------------------------------------- 9 !! * Modules used 6 !! History : 8.0 ! 01-04 (LIM 1.0) 7 !! 8.5 ! 03-07 (C. Ethe, G. Madec) Optimization (old name:shine) 8 !! 9.0 ! 04-11 (C. Talandier) add albedo_init 9 !! 9.0 ! 06-08 (G. Madec) cleaning for surface module 10 !!---------------------------------------------------------------------- 11 12 !!---------------------------------------------------------------------- 13 !! blk_albedo : albedo for ocean and ice (clear and overcast skies) 14 !! albedo_init : initialisation 15 !!---------------------------------------------------------------------- 10 16 USE oce ! ocean dynamics and tracers 11 USE dom_oce ! ocean space and time domain12 USE cpl_oce ! ???13 17 USE phycst ! physical constants 14 USE daymod15 USE blk_oce ! bulk variables16 USE flx_oce ! forcings variables17 USE ocfzpt ! ???18 18 USE in_out_manager 19 USE lbclnk20 19 21 20 IMPLICIT NONE 22 21 PRIVATE 23 22 24 !! * Accessibility25 PUBLIC flx_blk_albedo ! routine called by limflx.F90 in coupled 26 ! and in flxblk.F90 in forced27 !! * Module variables 28 INTEGER :: & !: nameos : ocean physical parameters29 albd_init = 0 !: control flag for initialization30 31 REAL(wp) :: & ! constantvalues32 zzero = 0.e0 , &33 zone = 1.034 35 !! * constants for albedo computation (flx_blk_albedo)23 PUBLIC blk_albedo ! routine called by sbcice_lim module 24 25 INTEGER :: albd_init = 0 !: control flag for initialization 26 27 REAL(wp) :: zzero = 0.e0 ! constant values 28 REAL(wp) :: zone = 1.e0 ! " " 29 30 REAL(wp) :: c1 = 0.05 ! constants values 31 REAL(wp) :: c2 = 0.10 ! " " 32 REAL(wp) :: cmue = 0.40 ! cosine of local solar altitude 33 34 !!* namelist namalb 36 35 REAL(wp) :: & 37 c 1 = 0.05 , & ! constants values38 c2 = 0.10 , &36 cgren = 0.06 , & ! correction of the snow or ice albedo to take into account 37 ! ! effects of cloudiness (Grenfell & Perovich, 1984) 39 38 albice = 0.50 , & ! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 40 cgren = 0.06 , & ! correction of the snow or ice albedo to take into account41 ! effects of cloudiness (Grenfell & Perovich, 1984)42 39 alphd = 0.80 , & ! coefficients for linear interpolation used to compute 43 40 alphdi = 0.72 , & ! albedo between two extremes values (Pyane, 1972) 44 alphc = 0.65 , &45 zmue = 0.40 ! cosine of local solar altitude46 47 !!---------------------------------------------------------------------- 48 !! OPA 9.0 , LOCEAN-IPSL (200 5)41 alphc = 0.65 42 NAMELIST/namalb/ cgren, albice, alphd, alphdi, alphc 43 44 !!---------------------------------------------------------------------- 45 !! OPA 9.0 , LOCEAN-IPSL (2006) 49 46 !! $Id$ 50 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt47 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 51 48 !!---------------------------------------------------------------------- 52 49 … … 58 55 !!---------------------------------------------------------------------- 59 56 60 SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp )61 !!---------------------------------------------------------------------- 62 !! *** ROUTINE flx_blk_albedo ***57 SUBROUTINE blk_albedo( palb , palcn , palbp , palcnp ) 58 !!---------------------------------------------------------------------- 59 !! *** ROUTINE blk_albedo *** 63 60 !! 64 61 !! ** Purpose : Computation of the albedo of the snow/ice system 65 !! as well as the ocean one62 !! as well as the ocean one 66 63 !! 67 64 !! ** Method : - Computation of the albedo of snow or ice (choose the 68 !! rignt one by a large number of tests65 !! rignt one by a large number of tests 69 66 !! - Computation of the albedo of the ocean 70 67 !! 71 !! References : 72 !! Shine and Hendersson-Sellers 1985, JGR, 90(D1), 2243-2250. 73 !! 74 !! History : 75 !! 8.0 ! 01-04 (LIM 1.0) 76 !! 8.5 ! 03-07 (C. Ethe, G. Madec) Optimization (old name:shine) 77 !!---------------------------------------------------------------------- 78 !! * Modules used 79 USE ice ! ??? 80 81 !! * Arguments 82 REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: & 83 palb , & ! albedo of ice under overcast sky 84 palcn , & ! albedo of ocean under overcast sky 85 palbp , & ! albedo of ice under clear sky 86 palcnp ! albedo of ocean under clear sky 87 88 !! * Local variables 89 INTEGER :: & 90 ji, jj ! dummy loop indices 91 REAL(wp) :: & 92 zmue14 , & ! zmue**1.4 68 !! References : Shine and Hendersson-Sellers 1985, JGR, 90(D1), 2243-2250. 69 !!---------------------------------------------------------------------- 70 USE ice ! ??? 71 !! 72 REAL(wp), INTENT(out), DIMENSION(jpi,jpj) :: palb ! albedo of ice under overcast sky 73 REAL(wp), INTENT(out), DIMENSION(jpi,jpj) :: palcn ! albedo of ocean under overcast sky 74 REAL(wp), INTENT(out), DIMENSION(jpi,jpj) :: palbp ! albedo of ice under clear sky 75 REAL(wp), INTENT(out), DIMENSION(jpi,jpj) :: palcnp ! albedo of ocean under clear sky 76 !! 77 INTEGER :: ji, jj ! dummy loop indices 78 REAL(wp) :: zcoef, & ! temporary scalar 93 79 zalbpsnm , & ! albedo of ice under clear sky when snow is melting 94 80 zalbpsnf , & ! albedo of ice under clear sky when snow is freezing … … 99 85 zihsc1 , & ! = 1 hsn <= c1 ; = 0 hsn > c1 100 86 zihsc2 ! = 1 hsn >= c2 ; = 0 hsn < c2 101 REAL(wp), DIMENSION(jpi,jpj) :: & 102 zalbfz , & ! ( = alphdi for freezing ice ; = albice for melting ice ) 103 zficeth ! function of ice thickness 104 LOGICAL , DIMENSION(jpi,jpj) :: & 105 llmask 87 LOGICAL , DIMENSION(jpi,jpj) :: llmask ! 88 REAL(wp), DIMENSION(jpi,jpj) :: zalbfz ! ( = alphdi for freezing ice ; = albice for melting ice ) 89 REAL(wp), DIMENSION(jpi,jpj) :: zficeth ! function of ice thickness 106 90 !!--------------------------------------------------------------------- 107 91 108 ! initialization 109 IF( albd_init == 0 ) CALL albedo_init 110 111 !------------------------- 92 IF( albd_init == 0 ) CALL albedo_init ! initialization 93 94 !--------------------------- 112 95 ! Computation of zficeth 113 !-------------------------- 96 !--------------------------- 114 97 115 98 llmask = (hsnif == 0.e0) .AND. ( sist >= rt0_ice ) … … 175 158 !-------------------------- ----------------- 176 159 177 ! Parameterization of Briegled and Ramanathan, 1982 178 zmue14 = zmue**1.4 179 palcnp(:,:) = 0.05 / ( 1.1 * zmue14 + 0.15 ) 180 181 ! Parameterization of Kondratyev, 1969 and Payne, 1972 182 palcn(:,:) = 0.06 183 184 END SUBROUTINE flx_blk_albedo 160 zcoef = 0.05 / ( 1.1 * cmue**1.4 + 0.15 ) ! Parameterization of Briegled and Ramanathan, 1982 161 palcnp(:,:) = zcoef 162 palcn(:,:) = 0.06 ! Parameterization of Kondratyev, 1969 and Payne, 1972 163 ! 164 END SUBROUTINE blk_albedo 185 165 186 166 # else … … 189 169 !!---------------------------------------------------------------------- 190 170 191 SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp )192 !!---------------------------------------------------------------------- 193 !! *** ROUTINE flx_blk_albedo ***171 SUBROUTINE blk_albedo( palb , palcn , palbp , palcnp ) 172 !!---------------------------------------------------------------------- 173 !! *** ROUTINE blk_albedo *** 194 174 !! 195 !! ** Purpose : Computation of the albedo of the snow/ice system 196 !! as well as the ocean one 197 !! 198 !! ** Method : Computation of the albedo of snow or ice (choose the 199 !! wright one by a large number of tests Computation of the albedo 200 !! of the ocean 201 !! 202 !! History : 203 !! 8.0 ! 01-04 (LIM 1.0) 204 !! 8.5 ! 03-07 (C. Ethe, G. Madec) Optimization (old name:shine) 205 !!---------------------------------------------------------------------- 206 !! * Arguments 207 REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: & 208 palb , & ! albedo of ice under overcast sky 209 palcn , & ! albedo of ocean under overcast sky 210 palbp , & ! albedo of ice under clear sky 211 palcnp ! albedo of ocean under clear sky 212 213 REAL(wp) :: & 214 zmue14 ! zmue**1.4 215 !!---------------------------------------------------------------------- 216 217 !-------------------------------------------- 218 ! Computation of the albedo of the ocean 219 !-------------------------- ----------------- 220 221 ! Parameterization of Briegled and Ramanathan, 1982 222 zmue14 = zmue**1.4 223 palcnp(:,:) = 0.05 / ( 1.1 * zmue14 + 0.15 ) 224 225 ! Parameterization of Kondratyev, 1969 and Payne, 1972 226 palcn(:,:) = 0.06 227 228 palb (:,:) = palcn(:,:) 229 palbp(:,:) = palcnp(:,:) 230 231 END SUBROUTINE flx_blk_albedo 175 !! ** Purpose : Computation of the albedo of the ocean 176 !! 177 !! ** Method : .... 178 !!---------------------------------------------------------------------- 179 REAL(wp), INTENT(out), DIMENSION(jpi,jpj) :: palb ! albedo of ice under overcast sky 180 REAL(wp), INTENT(out), DIMENSION(jpi,jpj) :: palcn ! albedo of ocean under overcast sky 181 REAL(wp), INTENT(out), DIMENSION(jpi,jpj) :: palbp ! albedo of ice under clear sky 182 REAL(wp), INTENT(out), DIMENSION(jpi,jpj) :: palcnp ! albedo of ocean under clear sky 183 !! 184 REAL(wp) :: zcoef ! temporary scalar 185 !!---------------------------------------------------------------------- 186 ! 187 zcoef = 0.05 / ( 1.1 * cmue**1.4 + 0.15 ) 188 189 palcnp(:,:) = zcoef ! Parameterization of Briegled and Ramanathan, 1982 190 palcn(:,:) = 0.06 ! Parameterization of Kondratyev, 1969 and Payne, 1972 191 192 palb (:,:) = zcoef ! ice overcast albedo set to oceanvalue 193 palbp(:,:) = 0.06 ! ice clear sky albedo set to oceanvalue 194 ! 195 END SUBROUTINE blk_albedo 232 196 233 197 #endif … … 240 204 !! 241 205 !! ** Method : Read the namelist namalb 242 !! 243 !! ** Action : 244 !! 245 !! 246 !! History : 247 !! 9.0 ! 04-11 (C. Talandier) Original code 248 !!---------------------------------------------------------------------- 249 NAMELIST/namalb/ cgren, albice, alphd, alphdi, alphc 250 !!---------------------------------------------------------------------- 251 !! OPA 9.0, LODYC-IPSL (2004) 252 !!---------------------------------------------------------------------- 253 254 ! set the initialization flag to 1 255 albd_init = 1 ! indicate that the initialization has been done 256 257 ! Read Namelist namalb : albedo parameters 258 REWIND( numnam ) 206 !!---------------------------------------------------------------------- 207 ! 208 albd_init = 1 ! set the initialization flag to 1 (done) 209 210 REWIND( numnam ) ! Read Namelist namalb : albedo parameters 259 211 READ ( numnam, namalb ) 260 212 261 ! Control print 262 IF(lwp) THEN 213 IF(lwp) THEN ! Control print 263 214 WRITE(numout,*) 264 WRITE(numout,*) 'albedo_init : albedo'215 WRITE(numout,*) 'albedo_init : set albedo parameters from namelist namalb' 265 216 WRITE(numout,*) '~~~~~~~~~~~' 266 WRITE(numout,*) ' Namelist namalb : set albedo parameters' 267 WRITE(numout,*) 268 WRITE(numout,*) ' correction of the snow or ice albedo to take into account cgren = ', cgren 269 WRITE(numout,*) ' albedo of melting ice in the arctic and antarctic albice = ', albice 270 WRITE(numout,*) ' coefficients for linear alphd = ', alphd 271 WRITE(numout,*) ' interpolation used to compute albedo alphdi = ', alphdi 272 WRITE(numout,*) ' between two extremes values (Pyane, 1972) alphc = ', alphc 273 WRITE(numout,*) 217 WRITE(numout,*) ' correction for snow and ice albedo cgren = ', cgren 218 WRITE(numout,*) ' albedo of melting ice in the arctic and antarctic albice = ', albice 219 WRITE(numout,*) ' coefficients for linear alphd = ', alphd 220 WRITE(numout,*) ' interpolation used to compute albedo alphdi = ', alphdi 221 WRITE(numout,*) ' between two extremes values (Pyane, 1972) alphc = ', alphc 274 222 ENDIF 275 223 ! 276 224 END SUBROUTINE albedo_init 225 277 226 !!====================================================================== 278 227 END MODULE albedo
Note: See TracChangeset
for help on using the changeset viewer.