Changeset 833 for trunk/NEMO/OPA_SRC/SBC/albedo.F90
- Timestamp:
- 2008-03-07T14:51:35+01:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/albedo.F90
r719 r833 37 37 c1 = 0.05 , & ! constants values 38 38 c2 = 0.10 , & 39 #if defined key_lim3 40 albice = 0.53 , & ! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 41 #else 39 42 albice = 0.50 , & ! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 43 #endif 40 44 cgren = 0.06 , & ! correction of the snow or ice albedo to take into account 41 45 ! effects of cloudiness (Grenfell & Perovich, 1984) … … 53 57 CONTAINS 54 58 55 #if defined key_ ice_lim56 !!---------------------------------------------------------------------- 57 !! 'key_ ice_lim' LIMice model59 #if defined key_lim3 || defined key_lim2 60 !!---------------------------------------------------------------------- 61 !! 'key_lim3' OR 'key_lim2' LIM 2.0 or LIM 3.0 ice model 58 62 !!---------------------------------------------------------------------- 59 63 … … 75 79 !! 8.0 ! 01-04 (LIM 1.0) 76 80 !! 8.5 ! 03-07 (C. Ethe, G. Madec) Optimization (old name:shine) 81 !! 9.0 ! 01-06 (M. Vancoppenolle) LIM 3.0 77 82 !!---------------------------------------------------------------------- 78 83 !! * Modules used 84 #if defined key_lim3 85 USE par_ice 79 86 USE ice ! ??? 87 #elif defined key_lim2 88 USE ice_2 ! ??? 89 #endif 80 90 81 91 !! * Arguments 92 #if defined key_lim3 93 REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(out) :: & 94 #elif defined key_lim2 82 95 REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: & 96 #endif 83 97 palb , & ! albedo of ice under overcast sky 98 palbp ! albedo of ice under clear sky 99 REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: & 84 100 palcn , & ! albedo of ocean under overcast sky 85 palbp , & ! albedo of ice under clear sky86 101 palcnp ! albedo of ocean under clear sky 87 102 88 103 !! * Local variables 89 104 INTEGER :: & 90 ji, jj 105 ji, jj, jl ! dummy loop indices 91 106 REAL(wp) :: & 92 107 zmue14 , & ! zmue**1.4 … … 96 111 zalbpic , & ! albedo of snow/ice system when ice is free of snow 97 112 zithsn , & ! = 1 for hsn >= 0 ( ice is cov. by snow ) ; = 0 otherwise (ice is free of snow) 98 zitmlsn , & ! = 1 freezinz snow ( sist >=rt0_snow) ; = 0 melting snow (sist<rt0_snow)113 zitmlsn , & ! = 1 freezinz snow (t_su >=rt0_snow) ; = 0 melting snow (t_su<rt0_snow) 99 114 zihsc1 , & ! = 1 hsn <= c1 ; = 0 hsn > c1 100 115 zihsc2 ! = 1 hsn >= c2 ; = 0 hsn < c2 116 #if defined key_lim3 117 REAL(wp), DIMENSION(jpi,jpj,jpl) :: & 118 #elif defined key_lim2 101 119 REAL(wp), DIMENSION(jpi,jpj) :: & 120 #endif 102 121 zalbfz , & ! ( = alphdi for freezing ice ; = albice for melting ice ) 103 122 zficeth ! function of ice thickness 123 #if defined key_lim3 124 LOGICAL , DIMENSION(jpi,jpj,jpl) :: & 125 #elif defined key_lim2 104 126 LOGICAL , DIMENSION(jpi,jpj) :: & 127 #endif 105 128 llmask 106 129 !!--------------------------------------------------------------------- … … 112 135 ! Computation of zficeth 113 136 !-------------------------- 114 137 #if defined key_lim3 138 llmask = (ht_s(:,:,:) == 0.e0) .AND. ( t_su(:,:,:) >= rt0_ice ) 139 #elif defined key_lim2 115 140 llmask = (hsnif == 0.e0) .AND. ( sist >= rt0_ice ) 141 #endif 116 142 WHERE ( llmask ) ! ice free of snow and melts 117 143 zalbfz = albice … … 120 146 END WHERE 121 147 148 #if defined key_lim3 149 DO jl = 1, jpl 150 DO jj = 1, jpj 151 DO ji = 1, jpi 152 IF( ht_i(ji,jj,jl) > 1.5 ) THEN 153 zficeth(ji,jj,jl) = zalbfz(ji,jj,jl) 154 ELSEIF( ht_i(ji,jj,jl) > 1.0 .AND. ht_i(ji,jj,jl) <= 1.5 ) THEN 155 zficeth(ji,jj,jl) = 0.472 + 2.0 * ( zalbfz(ji,jj,jl) - 0.472 ) * ( ht_i(ji,jj,jl) - 1.0 ) 156 ELSEIF( ht_i(ji,jj,jl) > 0.05 .AND. ht_i(ji,jj,jl) <= 1.0 ) THEN 157 zficeth(ji,jj,jl) = 0.2467 + 0.7049 * ht_i(ji,jj,jl) & 158 & - 0.8608 * ht_i(ji,jj,jl) * ht_i(ji,jj,jl) & 159 & + 0.3812 * ht_i(ji,jj,jl) * ht_i(ji,jj,jl) * ht_i (ji,jj,jl) 160 ELSE 161 zficeth(ji,jj,jl) = 0.1 + 3.6 * ht_i(ji,jj,jl) 162 ENDIF 163 END DO 164 END DO 165 END DO 166 #elif defined key_lim2 122 167 DO jj = 1, jpj 123 168 DO ji = 1, jpi … … 135 180 END DO 136 181 END DO 182 #endif 137 183 138 184 !----------------------------------------------- … … 142 188 ! Albedo of snow-ice for clear sky. 143 189 !----------------------------------------------- 190 #if defined key_lim3 191 DO jl = 1, jpl 192 DO jj = 1, jpj 193 DO ji = 1, jpi 194 ! Case of ice covered by snow. 195 196 ! freezing snow 197 zihsc1 = 1.0 - MAX ( zzero , SIGN ( zone , - ( ht_s(ji,jj,jl) - c1 ) ) ) 198 zalbpsnf = ( 1.0 - zihsc1 ) * ( zficeth(ji,jj,jl) + ht_s(ji,jj,jl) * ( alphd - zficeth(ji,jj,jl) ) / c1 ) & 199 & + zihsc1 * alphd 200 201 ! melting snow 202 zihsc2 = MAX ( zzero , SIGN ( zone , ht_s(ji,jj,jl) - c2 ) ) 203 zalbpsnm = ( 1.0 - zihsc2 ) * ( albice + ht_s(ji,jj,jl) * ( alphc - albice ) / c2 ) & 204 & + zihsc2 * alphc 205 206 207 zitmlsn = MAX ( zzero , SIGN ( zone , t_su(ji,jj,jl) - rt0_snow ) ) 208 zalbpsn = zitmlsn * zalbpsnm + ( 1.0 - zitmlsn ) * zalbpsnf 209 210 ! Case of ice free of snow. 211 zalbpic = zficeth(ji,jj,jl) 212 213 ! albedo of the system 214 zithsn = 1.0 - MAX ( zzero , SIGN ( zone , - ht_s(ji,jj,jl) ) ) 215 palbp(ji,jj,jl) = zithsn * zalbpsn + ( 1.0 - zithsn ) * zalbpic 216 END DO 217 END DO 218 END DO 219 220 ! Albedo of snow-ice for overcast sky. 221 !---------------------------------------------- 222 palb(:,:,:) = palbp(:,:,:) + cgren ! Oberhuber correction 223 224 #elif defined key_lim2 225 144 226 DO jj = 1, jpj 145 227 DO ji = 1, jpi … … 170 252 !---------------------------------------------- 171 253 palb(:,:) = palbp(:,:) + cgren 254 #endif 172 255 173 256 !--------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.