- Timestamp:
- 2018-07-11T10:24:17+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/OCE/SBC/sbcisf.F90
r9728 r9923 54 54 REAL(wp), PUBLIC, SAVE :: rcpi = 2000.0_wp !: specific heat of ice shelf [J/kg/K] 55 55 REAL(wp), PUBLIC, SAVE :: rkappa = 1.54e-6_wp !: heat diffusivity through the ice-shelf [m2/s] 56 REAL(wp), PUBLIC, SAVE :: rho isf= 920.0_wp !: volumic mass of ice shelf [kg/m3]56 REAL(wp), PUBLIC, SAVE :: rho_isf = 920.0_wp !: volumic mass of ice shelf [kg/m3] 57 57 REAL(wp), PUBLIC, SAVE :: tsurf = -20.0_wp !: air temperature on top of ice shelf [C] 58 58 REAL(wp), PUBLIC, SAVE :: rlfusisf = 0.334e6_wp !: latent heat of fusion of ice shelf [J/kg] … … 144 144 ! compute tsc due to isf 145 145 ! isf melting implemented as a volume flux and we assume that melt water is at 0 PSU. 146 ! WARNING water add at temp = 0C, need to add a correction term (fwfisf * tfreez / r au0).146 ! WARNING water add at temp = 0C, need to add a correction term (fwfisf * tfreez / rho0). 147 147 ! compute freezing point beneath ice shelf (or top cell if nn_isf = 3) 148 148 DO jj = 1,jpj … … 153 153 CALL eos_fzp( stbl(:,:), zt_frz(:,:), zdep(:,:) ) 154 154 155 risf_tsc(:,:,jp_tem) = qisf(:,:) * r1_r au0_rcp - fwfisf(:,:) * zt_frz(:,:) * r1_rau0 !155 risf_tsc(:,:,jp_tem) = qisf(:,:) * r1_rho0_rcp - fwfisf(:,:) * zt_frz(:,:) * r1_rho0 ! 156 156 risf_tsc(:,:,jp_sal) = 0.0_wp 157 157 … … 160 160 ! output 161 161 IF( iom_use('iceshelf_cea') ) CALL iom_put( 'iceshelf_cea', -fwfisf(:,:) ) ! isf mass flux 162 IF( iom_use('hflx_isf_cea') ) CALL iom_put( 'hflx_isf_cea', risf_tsc(:,:,jp_tem) * r au0 * rcp ) ! isf sensible+latent heat (W/m2)162 IF( iom_use('hflx_isf_cea') ) CALL iom_put( 'hflx_isf_cea', risf_tsc(:,:,jp_tem) * rho0 * rcp ) ! isf sensible+latent heat (W/m2) 163 163 IF( iom_use('qlatisf' ) ) CALL iom_put( 'qlatisf' , qisf(:,:) ) ! isf latent heat 164 164 IF( iom_use('fwfisf' ) ) CALL iom_put( 'fwfisf' , fwfisf(:,:) ) ! isf mass flux (opposite sign) … … 452 452 ! 2. ------------Net heat flux and fresh water flux due to the ice shelf 453 453 ! For those corresponding to zonal boundary 454 qisf(ji,jj) = - r au0 * rcp * rn_gammat0 * risfLeff(ji,jj) * e1t(ji,jj) * zt_ave &454 qisf(ji,jj) = - rho0 * rcp * rn_gammat0 * risfLeff(ji,jj) * e1t(ji,jj) * zt_ave & 455 455 & * r1_e1e2t(ji,jj) * tmask(ji,jj,jk) 456 456 … … 500 500 zlamb1 =-0.0564_wp 501 501 zlamb2 = 0.0773_wp 502 zlamb3 =-7.8633e-8 * grav * r au0502 zlamb3 =-7.8633e-8 * grav * rho0 503 503 ELSE ! linearisation from table 4 (Asay-Davis et al., 2015) 504 504 zlamb1 =-0.0573_wp 505 505 zlamb2 = 0.0832_wp 506 zlamb3 =-7.53e-8 * grav * r au0506 zlamb3 =-7.53e-8 * grav * rho0 507 507 ENDIF 508 508 ! … … 526 526 DO jj = 1, jpj 527 527 DO ji = 1, jpi 528 zhtflx(ji,jj) = zgammat(ji,jj)*rcp*r au0*(ttbl(ji,jj)-zfrz(ji,jj))528 zhtflx(ji,jj) = zgammat(ji,jj)*rcp*rho0*(ttbl(ji,jj)-zfrz(ji,jj)) 529 529 zfwflx(ji,jj) = - zhtflx(ji,jj)/rlfusisf 530 530 END DO … … 544 544 DO ji = 1, jpi 545 545 ! compute coeficient to solve the 2nd order equation 546 zeps1 = rcp*r au0*zgammat(ji,jj)547 zeps2 = rlfusisf*r au0*zgammas(ji,jj)548 zeps3 = rho isf*rcpi*rkappa/MAX(risfdep(ji,jj),zeps)546 zeps1 = rcp*rho0*zgammat(ji,jj) 547 zeps2 = rlfusisf*rho0*zgammas(ji,jj) 548 zeps3 = rho_isf*rcpi*rkappa/MAX(risfdep(ji,jj),zeps) 549 549 zeps4 = zlamb2+zlamb3*risfdep(ji,jj) 550 550 zeps6 = zeps4-ttbl(ji,jj) … … 567 567 ! zhtflx is upward heat flux (out of ocean) 568 568 ! compute the upward water and heat flux (eq. 28 and eq. 29) 569 zfwflx(ji,jj) = r au0 * zgammas(ji,jj) * (zsfrz-stbl(ji,jj)) / MAX(zsfrz,zeps)570 zhtflx(ji,jj) = zgammat(ji,jj) * r au0 * rcp * (ttbl(ji,jj) - zfrz(ji,jj) )569 zfwflx(ji,jj) = rho0 * zgammas(ji,jj) * (zsfrz-stbl(ji,jj)) / MAX(zsfrz,zeps) 570 zhtflx(ji,jj) = zgammat(ji,jj) * rho0 * rcp * (ttbl(ji,jj) - zfrz(ji,jj) ) 571 571 END DO 572 572 END DO … … 890 890 DO jk = ikt, ikb - 1 891 891 phdivn(ji,jj,jk) = phdivn(ji,jj,jk) + ( fwfisf(ji,jj) + fwfisf_b(ji,jj) ) & 892 & * r1_hisf_tbl(ji,jj) * r1_r au0 * zfact892 & * r1_hisf_tbl(ji,jj) * r1_rho0 * zfact 893 893 END DO 894 894 ! level partially include in ice shelf boundary layer 895 895 phdivn(ji,jj,ikb) = phdivn(ji,jj,ikb) + ( fwfisf(ji,jj) & 896 & + fwfisf_b(ji,jj) ) * r1_hisf_tbl(ji,jj) * r1_r au0 * zfact * ralpha(ji,jj)896 & + fwfisf_b(ji,jj) ) * r1_hisf_tbl(ji,jj) * r1_rho0 * zfact * ralpha(ji,jj) 897 897 END DO 898 898 END DO
Note: See TracChangeset
for help on using the changeset viewer.