- Timestamp:
- 2015-07-21T20:47:42+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5151_UKMO_ISF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90
r5621 r5624 39 39 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qisf !: net heat flux from ice shelf 40 40 REAL(wp), PUBLIC :: rn_hisf_tbl !: thickness of top boundary layer [m] 41 LOGICAL , PUBLIC :: ln_divisf !: flag to correct divergence41 INTEGER , PUBLIC :: nn_isf !: flag to choose between explicit/param/specified 42 42 INTEGER , PUBLIC :: nn_isfblk !: 43 43 INTEGER , PUBLIC :: nn_gammablk !: 44 LOGICAL , PUBLIC :: ln_conserve !:45 44 REAL(wp), PUBLIC :: rn_gammat0 !: temperature exchange coeficient 46 45 REAL(wp), PUBLIC :: rn_gammas0 !: salinity exchange coeficient 47 REAL(wp), PUBLIC :: rdivisf !: flag to test if fwf apply on divergence48 46 49 47 REAL(wp) , PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: rzisf_tbl !:depth of calving front (shallowest point) nn_isf ==2/3 … … 91 89 INTEGER :: ikt, ikb ! top and bottom level of the isf boundary layer 92 90 REAL(wp) :: zhk 91 REAL(wp) :: zt_frz, zpress 93 92 CHARACTER(len=256) :: cvarzisf, cvarhisf ! name for isf file 94 93 CHARACTER(LEN=32 ) :: cvarLeff ! variable name for efficient Length scale … … 96 95 ! 97 96 !!--------------------------------------------------------------------- 98 NAMELIST/namsbc_isf/ nn_isfblk, rn_hisf_tbl, ln_divisf, ln_conserve, rn_gammat0, rn_gammas0, nn_gammablk, &97 NAMELIST/namsbc_isf/ nn_isfblk, rn_hisf_tbl, rn_gammat0, rn_gammas0, nn_gammablk, nn_isf , & 99 98 & sn_fwfisf, sn_qisf, sn_rnfisf, sn_depmax_isf, sn_depmin_isf, sn_Leff_isf 100 99 ! … … 121 120 IF ( lwp ) WRITE(numout,*) ' nn_isfblk = ', nn_isfblk 122 121 IF ( lwp ) WRITE(numout,*) ' rn_hisf_tbl = ', rn_hisf_tbl 123 IF ( lwp ) WRITE(numout,*) ' ln_divisf = ', ln_divisf124 122 IF ( lwp ) WRITE(numout,*) ' nn_gammablk = ', nn_gammablk 125 123 IF ( lwp ) WRITE(numout,*) ' rn_gammat0 = ', rn_gammat0 126 124 IF ( lwp ) WRITE(numout,*) ' rn_gammas0 = ', rn_gammas0 127 125 IF ( lwp ) WRITE(numout,*) ' rn_tfri2 = ', rn_tfri2 128 IF (ln_divisf) THEN ! keep it in the namelist ??? used true anyway as for runoff ? (PM)129 rdivisf = 1._wp130 ELSE131 rdivisf = 0._wp132 END IF133 126 ! 134 127 ! Allocate public variable … … 270 263 ! compute tsc due to isf 271 264 ! WARNING water add at temp = 0C, correction term is added in trasbc, maybe better here but need a 3D variable). 272 risf_tsc(:,:,jp_tem) = qisf(:,:) * r1_rau0_rcp ! 265 ! zpress = grav*rau0*fsdept(ji,jj,jk)*1.e-04 266 zt_frz = -1.9_wp !CALL eos_fzp( tsn(ji,jj,jk,jp_sal), zt_frz, zpress ) 267 risf_tsc(:,:,jp_tem) = qisf(:,:) * r1_rau0_rcp - fwfisf(:,:) * zt_frz * r1_rau0 ! 273 268 274 269 ! salt effect already take into account in vertical advection 275 risf_tsc(:,:,jp_sal) = (1.0_wp-rdivisf) * fwfisf(:,:) * stbl(:,:) * r1_rau0276 270 risf_tsc(:,:,jp_sal) = 0.0_wp 271 277 272 ! lbclnk 278 273 CALL lbc_lnk(risf_tsc(:,:,jp_tem),'T',1.) … … 296 291 ! output 297 292 IF( iom_use('qisf' ) ) CALL iom_put('qisf' , qisf) 298 IF( iom_use('fwfisf') ) CALL iom_put('fwfisf', fwfisf * stbl / soce)293 IF( iom_use('fwfisf') ) CALL iom_put('fwfisf', fwfisf) 299 294 END IF 300 295 … … 426 421 427 422 ! initialisation 428 IF (ln_conserve) THEN ; zcfac=1.0_wp429 ELSE ; zcfac=0.0_wp430 ENDIF431 423 zpress (:,:)=0.0_wp 432 424 zgammat(:,:)=rn_gammat0 ; zgammas (:,:)=rn_gammas0; … … 500 492 ! zfwflx is upward water flux 501 493 ! zhtflx is upward heat flux (out of ocean) 502 ! If non conservative we have zcfac=0.0 so zhtflx is as ISOMIP but with different zfrz value503 ! If non conservative we have zcfac=0.0 so what follows is then zfwflx*sss_m/zsfrz504 494 ! compute the upward water and heat flux 505 495 zfwflx(ji,jj) = rau0 * zgammas(ji,jj) * (zsfrz-stbl(ji,jj)) / MAX(zsfrz,zeps) 506 zhtflx(ji,jj) = ( zgammat(ji,jj) * rau0 - zcfac * zfwflx(ji,jj) ) * rcp * (zti(ji,jj) - zfrz(ji,jj) ) 507 zfwflx(ji,jj) = ( zgammas(ji,jj) * rau0 - zcfac * zfwflx(ji,jj) ) * (zsfrz - stbl(ji,jj)) / MAX(stbl(ji,jj),zeps) 496 zhtflx(ji,jj) = zgammat(ji,jj) * rau0 * rcp * (zti(ji,jj) - zfrz(ji,jj) ) 508 497 END DO 509 498 END DO
Note: See TracChangeset
for help on using the changeset viewer.