Changeset 719 for trunk/NEMO/OPA_SRC/SBC/albedo.F90
- Timestamp:
- 2007-10-16T16:59:56+02:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/albedo.F90
- Property svn:keywords changed from Id to Author Date Id Revision
r703 r719 4 4 !! Ocean forcing: bulk thermohaline forcing of the ocean (or ice) 5 5 !!===================================================================== 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 !!---------------------------------------------------------------------- 6 !!---------------------------------------------------------------------- 7 !! flx_blk_albedo : albedo for ocean and ice (clear and overcast skies) 8 !!---------------------------------------------------------------------- 9 !! * Modules used 16 10 USE oce ! ocean dynamics and tracers 11 USE dom_oce ! ocean space and time domain 12 USE cpl_oce ! ??? 17 13 USE phycst ! physical constants 14 USE daymod 15 USE blk_oce ! bulk variables 16 USE flx_oce ! forcings variables 17 USE ocfzpt ! ??? 18 18 USE in_out_manager 19 USE lbclnk 19 20 20 21 IMPLICIT NONE 21 22 PRIVATE 22 23 23 PUBLIC blk_albedo ! routine called by sbcice_lim module24 25 INTEGER :: albd_init = 0 !: control flag for initialization26 27 REAL(wp) :: zzero = 0.e0 ! constant values28 REAL(wp) :: zone = 1.e0 ! " "29 30 REAL(wp) :: c1 = 0.05 ! constantsvalues31 REAL(wp) :: c2 = 0.10 ! " "32 REAL(wp) :: cmue = 0.40 ! cosine of local solar altitude33 34 !! * namelist namalb24 !! * Accessibility 25 PUBLIC flx_blk_albedo ! routine called by limflx.F90 in coupled 26 ! and in flxblk.F90 in forced 27 !! * Module variables 28 INTEGER :: & !: nameos : ocean physical parameters 29 albd_init = 0 !: control flag for initialization 30 31 REAL(wp) :: & ! constant values 32 zzero = 0.e0 , & 33 zone = 1.0 34 35 !! * constants for albedo computation (flx_blk_albedo) 35 36 REAL(wp) :: & 37 c1 = 0.05 , & ! constants values 38 c2 = 0.10 , & 39 albice = 0.50 , & ! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 36 40 cgren = 0.06 , & ! correction of the snow or ice albedo to take into account 37 ! ! effects of cloudiness (Grenfell & Perovich, 1984) 38 albice = 0.50 , & ! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 41 ! effects of cloudiness (Grenfell & Perovich, 1984) 39 42 alphd = 0.80 , & ! coefficients for linear interpolation used to compute 40 43 alphdi = 0.72 , & ! albedo between two extremes values (Pyane, 1972) 41 alphc = 0.65 42 NAMELIST/namalb/ cgren, albice, alphd, alphdi, alphc43 44 !!---------------------------------------------------------------------- 45 !! OPA 9.0 , LOCEAN-IPSL (200 6)46 !! $ Id$47 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)44 alphc = 0.65 , & 45 zmue = 0.40 ! cosine of local solar altitude 46 47 !!---------------------------------------------------------------------- 48 !! OPA 9.0 , LOCEAN-IPSL (2005) 49 !! $Header$ 50 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 48 51 !!---------------------------------------------------------------------- 49 52 … … 55 58 !!---------------------------------------------------------------------- 56 59 57 SUBROUTINE blk_albedo( palb , palcn , palbp , palcnp )58 !!---------------------------------------------------------------------- 59 !! *** ROUTINE blk_albedo ***60 SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp ) 61 !!---------------------------------------------------------------------- 62 !! *** ROUTINE flx_blk_albedo *** 60 63 !! 61 64 !! ** Purpose : Computation of the albedo of the snow/ice system 62 !! 65 !! as well as the ocean one 63 66 !! 64 67 !! ** Method : - Computation of the albedo of snow or ice (choose the 65 !! 68 !! rignt one by a large number of tests 66 69 !! - Computation of the albedo of the ocean 67 70 !! 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 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 79 93 zalbpsnm , & ! albedo of ice under clear sky when snow is melting 80 94 zalbpsnf , & ! albedo of ice under clear sky when snow is freezing … … 85 99 zihsc1 , & ! = 1 hsn <= c1 ; = 0 hsn > c1 86 100 zihsc2 ! = 1 hsn >= c2 ; = 0 hsn < c2 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 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 90 106 !!--------------------------------------------------------------------- 91 107 92 IF( albd_init == 0 ) CALL albedo_init ! initialization 93 94 !--------------------------- 108 ! initialization 109 IF( albd_init == 0 ) CALL albedo_init 110 111 !------------------------- 95 112 ! Computation of zficeth 96 !-------------------------- -113 !-------------------------- 97 114 98 115 llmask = (hsnif == 0.e0) .AND. ( sist >= rt0_ice ) … … 158 175 !-------------------------- ----------------- 159 176 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 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 165 185 166 186 # else … … 169 189 !!---------------------------------------------------------------------- 170 190 171 SUBROUTINE blk_albedo( palb , palcn , palbp , palcnp )172 !!---------------------------------------------------------------------- 173 !! *** ROUTINE blk_albedo ***191 SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp ) 192 !!---------------------------------------------------------------------- 193 !! *** ROUTINE flx_blk_albedo *** 174 194 !! 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 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 196 232 197 233 #endif … … 204 240 !! 205 241 !! ** Method : Read the namelist namalb 206 !!---------------------------------------------------------------------- 207 ! 208 albd_init = 1 ! set the initialization flag to 1 (done) 209 210 REWIND( numnam ) ! Read Namelist namalb : albedo parameters 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 ) 211 259 READ ( numnam, namalb ) 212 260 213 IF(lwp) THEN ! Control print 261 ! Control print 262 IF(lwp) THEN 214 263 WRITE(numout,*) 215 WRITE(numout,*) 'albedo_init : set albedo parameters from namelist namalb'264 WRITE(numout,*) 'albedo_init : albedo ' 216 265 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 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,*) 222 274 ENDIF 223 ! 275 224 276 END SUBROUTINE albedo_init 225 226 277 !!====================================================================== 227 278 END MODULE albedo
Note: See TracChangeset
for help on using the changeset viewer.