Changeset 5123 for trunk/NEMOGCM/NEMO/OPA_SRC/BDY/bdyice_lim.F90
- Timestamp:
- 2015-03-04T17:06:03+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/BDY/bdyice_lim.F90
r4990 r5123 26 26 USE dom_ice_2 ! sea-ice domain 27 27 #elif defined key_lim3 28 USE par_ice29 28 USE ice ! LIM_3 ice variables 30 29 USE dom_ice ! sea-ice domain … … 60 59 !!---------------------------------------------------------------------- 61 60 INTEGER, INTENT( in ) :: kt ! Main time step counter 62 !!63 61 INTEGER :: ib_bdy ! Loop index 62 64 63 DO ib_bdy=1, nb_bdy 65 64 … … 72 71 CALL ctl_stop( 'bdy_ice_lim : unrecognised option for open boundaries for ice fields' ) 73 72 END SELECT 74 ENDDO 73 74 END DO 75 75 76 76 END SUBROUTINE bdy_ice_lim … … 194 194 t_su(ji,jj,jl) = rswitch * rn_ice_tem(ib_bdy) + ( 1.0 - rswitch ) * rn_ice_tem(ib_bdy) 195 195 DO jk = 1, nlay_s 196 t_s(ji,jj,jk,jl) = rswitch * rn_ice_tem(ib_bdy) + ( 1.0 - rswitch ) * rt t196 t_s(ji,jj,jk,jl) = rswitch * rn_ice_tem(ib_bdy) + ( 1.0 - rswitch ) * rt0 197 197 END DO 198 198 DO jk = 1, nlay_i 199 t_i(ji,jj,jk,jl) = rswitch * rn_ice_tem(ib_bdy) + ( 1.0 - rswitch ) * rt t199 t_i(ji,jj,jk,jl) = rswitch * rn_ice_tem(ib_bdy) + ( 1.0 - rswitch ) * rt0 200 200 s_i(ji,jj,jk,jl) = rswitch * rn_ice_sal(ib_bdy) + ( 1.0 - rswitch ) * s_i_min 201 201 END DO … … 206 206 sm_i(ji,jj,jl) = rswitch * sm_i(ii,ij,jl) + ( 1.0 - rswitch ) * s_i_min 207 207 o_i(ji,jj,jl) = rswitch * o_i(ii,ij,jl) + ( 1.0 - rswitch ) 208 t_su(ji,jj,jl) = rswitch * t_su(ii,ij,jl) + ( 1.0 - rswitch ) * rt t208 t_su(ji,jj,jl) = rswitch * t_su(ii,ij,jl) + ( 1.0 - rswitch ) * rt0 209 209 DO jk = 1, nlay_s 210 t_s(ji,jj,jk,jl) = rswitch * t_s(ii,ij,jk,jl) + ( 1.0 - rswitch ) * rt t210 t_s(ji,jj,jk,jl) = rswitch * t_s(ii,ij,jk,jl) + ( 1.0 - rswitch ) * rt0 211 211 END DO 212 212 DO jk = 1, nlay_i 213 t_i(ji,jj,jk,jl) = rswitch * t_i(ii,ij,jk,jl) + ( 1.0 - rswitch ) * rt t213 t_i(ji,jj,jk,jl) = rswitch * t_i(ii,ij,jk,jl) + ( 1.0 - rswitch ) * rt0 214 214 s_i(ji,jj,jk,jl) = rswitch * s_i(ii,ij,jk,jl) + ( 1.0 - rswitch ) * s_i_min 215 215 END DO … … 228 228 DO jk = 1, nlay_s 229 229 ! Snow energy of melting 230 e_s(ji,jj,jk,jl) = rswitch * rhosn * ( cpic * ( rtt - t_s(ji,jj,jk,jl) ) + lfus ) 231 ! Change dimensions 232 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) / unit_fac 233 ! Multiply by volume, so that heat content in 10^9 Joules 234 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * area(ji,jj) * v_s(ji,jj,jl) / nlay_s 230 e_s(ji,jj,jk,jl) = rswitch * rhosn * ( cpic * ( rt0 - t_s(ji,jj,jk,jl) ) + lfus ) 231 ! Multiply by volume, so that heat content in J/m2 232 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * v_s(ji,jj,jl) * r1_nlay_s 235 233 END DO 236 234 DO jk = 1, nlay_i 237 ztmelts = - tmut * s_i(ji,jj,jk,jl) + rt t!Melting temperature in K235 ztmelts = - tmut * s_i(ji,jj,jk,jl) + rt0 !Melting temperature in K 238 236 ! heat content per unit volume 239 237 e_i(ji,jj,jk,jl) = rswitch * rhoic * & 240 238 ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) & 241 + lfus * ( 1.0 - (ztmelts-rtt) / MIN((t_i(ji,jj,jk,jl)-rtt),-epsi20) ) & 242 - rcp * ( ztmelts - rtt ) ) 243 ! Correct dimensions to avoid big values 244 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) / unit_fac 245 ! Mutliply by ice volume, and divide by number of layers to get heat content in 10^9 J 246 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * area(ji,jj) * a_i(ji,jj,jl) * ht_i(ji,jj,jl) / nlay_i 239 + lfus * ( 1.0 - (ztmelts-rt0) / MIN((t_i(ji,jj,jk,jl)-rt0),-epsi20) ) & 240 - rcp * ( ztmelts - rt0 ) ) 241 ! Mutliply by ice volume, and divide by number of layers to get heat content in J/m2 242 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * a_i(ji,jj,jl) * ht_i(ji,jj,jl) * r1_nlay_i 247 243 END DO 248 244 249 250 END DO !jb 245 END DO 251 246 252 CALL lbc_bdy_lnk( a_i(:,:,jl), 'T', 1., ib_bdy ) ! lateral boundary conditions247 CALL lbc_bdy_lnk( a_i(:,:,jl), 'T', 1., ib_bdy ) 253 248 CALL lbc_bdy_lnk( ht_i(:,:,jl), 'T', 1., ib_bdy ) 254 249 CALL lbc_bdy_lnk( ht_s(:,:,jl), 'T', 1., ib_bdy )
Note: See TracChangeset
for help on using the changeset viewer.