- Timestamp:
- 2018-09-12T15:59:13+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90
r7806 r10115 168 168 169 169 ! salt effect already take into account in vertical advection 170 risf_tsc(:,:,jp_sal) = (1.0_wp-rdivisf) * fwfisf(:,:) * stbl(:,:) * r1_rau0 171 172 ! output 173 IF( iom_use('qlatisf' ) ) CALL iom_put('qlatisf', qisf) 174 IF( iom_use('fwfisf' ) ) CALL iom_put('fwfisf' , fwfisf * stbl(:,:) / soce ) 175 176 ! if apply only on the trend and not as a volume flux (rdivisf = 0), fwfisf have to be set to 0 now 177 fwfisf(:,:) = rdivisf * fwfisf(:,:) 178 170 risf_tsc(:,:,jp_sal) = (1.0_wp-rdivisf) * fwfisf(:,:) * soce * r1_rau0 171 179 172 ! lbclnk 180 173 CALL lbc_lnk(risf_tsc(:,:,jp_tem),'T',1.) … … 182 175 CALL lbc_lnk(fwfisf(:,:) ,'T',1.) 183 176 CALL lbc_lnk(qisf(:,:) ,'T',1.) 177 178 ! output 179 IF( iom_use('iceshelf_cea') ) CALL iom_put( 'iceshelf_cea', -fwfisf(:,:) ) ! isf mass flux 180 IF( iom_use('hflx_isf_cea') ) CALL iom_put( 'hflx_isf_cea', risf_tsc(:,:,jp_tem) * rau0 * rcp ) ! isf sensible+latent heat (W/m2) 181 IF( iom_use('qlatisf' ) ) CALL iom_put( 'qlatisf' , qisf(:,:) ) ! isf latent heat 182 IF( iom_use('fwfisf' ) ) CALL iom_put( 'fwfisf' , fwfisf(:,:) ) ! isf mass flux (opposite sign) 184 183 185 184 ! Diagnostics … … 192 191 zqhcisf3d(:,:,:) = 0.0_wp ! 3d heat content flux (W/m2) 193 192 zqlatisf3d(:,:,:)= 0.0_wp ! 3d ice shelf melting latent heat flux (W/m2) 194 zqhcisf2d(:,:) = fwfisf(:,:) * zt_frz * rcp ! 2d heat content flux (W/m2)193 zqhcisf2d(:,:) = rdivisf * fwfisf(:,:) * zt_frz * rcp ! 2d heat content flux (W/m2) 195 194 ! 196 195 DO jj = 1,jpj … … 221 220 ! 222 221 END IF 222 223 ! if apply only on the trend and not as a volume flux (rdivisf = 0), fwfisf have to be set to 0 now 224 fwfisf(:,:) = rdivisf * fwfisf(:,:) 225 223 226 ! 224 227 END IF … … 444 447 445 448 fwfisf(ji,jj) = qisf(ji,jj) / lfusisf !fresh water flux kg/(m2s) 446 fwfisf(ji,jj) = fwfisf(ji,jj) * ( soce / stbl(ji,jj) ) 447 !add to salinity trend 449 448 450 ELSE 449 451 qisf(ji,jj) = 0._wp ; fwfisf(ji,jj) = 0._wp … … 544 546 qisf(ji,jj) = - zhtflx 545 547 ! For genuine ISOMIP protocol this should probably be something like 546 fwfisf(ji,jj) = zfwflx * ( soce / MAX(stbl(ji,jj),zeps))548 fwfisf(ji,jj) = zfwflx 547 549 ELSE 548 550 fwfisf(ji,jj) = 0._wp … … 582 584 ! zfwflx is upward water flux 583 585 zfwflx= rau0 * zgammas * ( (zsfrz-stbl(ji,jj)) / zsfrz ) 586 IF ( rdivisf==0 ) THEN 584 587 ! zhtflx is upward heat flux (out of ocean) 585 588 ! If non conservative we have zcfac=0.0 so zhtflx is as ISOMIP but with different zfrz value 586 zhtflx = ( zgammat*rau0 - zcfac*zfwflx ) * rcp * (zti(ji,jj) - zfrz(ji,jj) )589 zhtflx = ( zgammat*rau0 - zcfac*zfwflx ) * rcp * (zti(ji,jj) - zfrz(ji,jj) ) 587 590 ! zwflx is upward water flux 588 591 ! If non conservative we have zcfac=0.0 so what follows is then zfwflx*sss_m/zsfrz 589 zfwflx = ( zgammas*rau0 - zcfac*zfwflx ) * (zsfrz - stbl(ji,jj)) / stbl(ji,jj) 592 zfwflx = ( zgammas*rau0 - zcfac*zfwflx ) * (zsfrz - stbl(ji,jj)) / stbl(ji,jj) 593 ELSE 594 zhtflx = zgammat*rau0 * rcp * (zti(ji,jj) - zfrz(ji,jj) ) 595 ! nothing to do for fwf 596 END IF 590 597 ! test convergence and compute gammat 591 598 IF (( zhtflx - zhtflx_b) .LE. 0.01 ) lit = .FALSE.
Note: See TracChangeset
for help on using the changeset viewer.