- Timestamp:
- 2012-05-25T18:43:49+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90
r3396 r3402 39 39 USE prtctl ! Print control 40 40 USE cpl_oasis3, ONLY : lk_cpl 41 USE oce, ONLY : sshn, sshb, snwice_mass, snwice_mass_b, snwice_fmass 41 42 42 43 IMPLICIT NONE … … 92 93 !! - qns : sea heat flux : non solar (including heat content of the mass flux) 93 94 !! - emp : freshwater budget: mass flux 94 !! - emps: freshwater budget: salt flux due to Freezing/Melting95 !! - sfx : freshwater budget: salt flux due to Freezing/Melting 95 96 !! - utau : sea surface i-stress (ocean referential) 96 97 !! - vtau : sea surface j-stress (ocean referential) … … 119 120 CALL wrk_alloc( jpi, jpj, 1, zalb, zalbp ) 120 121 121 zswitch = 1 ! Default standard levitating sea-ice (salt exchanges only) 122 !!gm ice embedment 123 ! SELECT CASE( nn_ice_embd ) ! levitating/embedded sea-ice option (not yet activated) 124 ! CASE( 0 ) ; zswitch = 1 ! standard levitating sea-ice : salt exchange only 125 ! CASE( 1, 2 ) ; zswitch = 0 ! other levitating sea-ice or embedded sea-ice : salt and volume fluxes 126 ! END SELECT ! 127 !!gm end embedment 122 SELECT CASE( nn_ice_embd ) ! levitating or embedded sea-ice option 123 CASE( 0 ) ; zswitch = 1 ! (0) standard levitating sea-ice : salt exchange only 124 CASE( 1, 2 ) ; zswitch = 0 ! (1) levitating sea-ice: salt and volume exchange but no pressure effect 125 ! (2) embedded sea-ice : salt and volume fluxes and pressure 126 END SELECT ! 127 128 128 !------------------------------------------! 129 129 ! heat flux at the ocean surface ! … … 147 147 !!$ i1mfr = 1.0 - AINT( frld(ji,jj) ) ! = 0. if ice-free ocean else 1. (after ice thermo) 148 148 !!$ 149 !!$ IF( phicif(ji,jj) <= 0. ) THEN ; ifvt = zinda ! = 1. if there was snow and ice before the ice thermo. which has been completely melted (possibly overmelted)149 !!$ IF( phicif(ji,jj) <= 0. ) THEN ; ifvt = zinda ! = zinda if previous thermodynamic step overmelted the ice??? 150 150 !!$ ELSE ; ifvt = 0. ! 151 151 !!$ ENDIF … … 222 222 ! salt flux only : add concentration dilution term in salt flux and no F-M term in volume flux 223 223 ! salt and mass fluxes : non concentartion dilution term in salt flux and add F-M term in volume flux 224 emps(ji,jj) = zfsalt + zswitch * zcd ! salt flux (+ C/D if no ice/ocean mass exchange)224 sfx (ji,jj) = zfsalt + zswitch * zcd ! salt flux (+ C/D if no ice/ocean mass exchange) 225 225 emp (ji,jj) = zemp + zemp_snw + ( 1.- zswitch) * zfmm ! mass flux (- F/M mass flux if no ice/ocean mass exchange) 226 226 ! 227 227 END DO 228 228 END DO 229 ! !------------------------------------------! 230 ! ! mass of snow and ice per unit area ! 231 ! !------------------------------------------! 232 IF( nn_ice_embd /= 0 ) THEN ! embedded sea-ice (mass required) 233 snwice_mass_b(:,:) = snwice_mass(:,:) ! save mass from the previous ice time step 234 ! ! new mass per unit area 235 snwice_mass (:,:) = tms(:,:) * ( rhosn * hsnif(:,:) + rhoic * hicif(:,:) ) * ( 1.0 - frld(:,:) ) 236 ! ! time evolution of snow+ice mass 237 snwice_fmass (:,:) = ( snwice_mass(:,:) - snwice_mass_b(:,:) ) / rdt_ice 238 ENDIF 229 239 230 240 CALL iom_put( 'hflx_ice_cea', - fdtcn(:,:) ) … … 255 265 IF(ln_ctl) THEN ! control print 256 266 CALL prt_ctl(tab2d_1=qsr , clinfo1=' lim_sbc: qsr : ', tab2d_2=qns , clinfo2=' qns : ') 257 CALL prt_ctl(tab2d_1=emp , clinfo1=' lim_sbc: emp : ', tab2d_2= emps , clinfo2=' emps: ')267 CALL prt_ctl(tab2d_1=emp , clinfo1=' lim_sbc: emp : ', tab2d_2=sfx , clinfo2=' sfx : ') 258 268 CALL prt_ctl(tab2d_1=utau , clinfo1=' lim_sbc: utau : ', mask1=umask, & 259 269 & tab2d_2=vtau , clinfo2=' vtau : ' , mask2=vmask ) … … 451 461 END WHERE 452 462 ENDIF 463 ! ! embedded sea ice 464 IF( nn_ice_embd /= 0 ) THEN ! mass exchanges between ice and ocean (case 1 or 2) set the snow+ice mass 465 snwice_mass (:,:) = tms(:,:) * ( rhosn * hsnif(:,:) + rhoic * hicif(:,:) ) * ( 1.0 - frld(:,:) ) 466 snwice_mass_b(:,:) = snwice_mass(:,:) 467 ELSE 468 snwice_mass (:,:) = 0.e0 ! no mass exchanges 469 snwice_mass_b(:,:) = 0.e0 ! no mass exchanges 470 ENDIF 471 IF( nn_ice_embd == 2 .AND. & ! full embedment (case 2) & no restart : 472 & .NOT.ln_rstart ) THEN ! deplete the initial ssh belew sea-ice area 473 sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 474 sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 475 ENDIF 453 476 ! 454 477 END SUBROUTINE lim_sbc_init_2
Note: See TracChangeset
for help on using the changeset viewer.