- Timestamp:
- 2015-12-01T18:17:43+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5151_UKMO_ISF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90
r5956 r5969 91 91 IF( kn_fwb == 3 .AND. ln_isfcav ) CALL ctl_stop( 'sbc_fwb: nn_fwb = 3 with ln_isfcav = .TRUE. not working, we stop ' ) 92 92 ! 93 area = glob_sum( e1 2t(:,:) * tmask(:,:,1)) ! interior global domain surface93 area = glob_sum( e1e2t(:,:) * tmask(:,:,1)) ! interior global domain surface 94 94 ! isf cavities are excluded because it can feedback to the melting with generation of inhibition of plumes 95 95 ! and in case of no melt, it can generate HSSW. … … 133 133 a_fwb_b = a_fwb ! mean sea level taking into account the ice+snow 134 134 ! sum over the global domain 135 a_fwb = glob_sum( e1 2t(:,:) * ( sshn(:,:) + snwice_mass(:,:) * r1_rau0 ) )135 a_fwb = glob_sum( e1e2t(:,:) * ( sshn(:,:) + snwice_mass(:,:) * r1_rau0 ) ) 136 136 a_fwb = a_fwb * 1.e+3 / ( area * rday * 365. ) ! convert in Kg/m3/s = mm/s 137 137 !!gm ! !!bug 365d year … … 159 159 ztmsk_neg(:,:) = tmask_i(:,:) - ztmsk_pos(:,:) 160 160 ! 161 zsurf_neg = glob_sum( e1 2t(:,:)*ztmsk_neg(:,:) ) ! Area filled by <0 and >0 erp162 zsurf_pos = glob_sum( e1 2t(:,:)*ztmsk_pos(:,:) )161 zsurf_neg = glob_sum( e1e2t(:,:)*ztmsk_neg(:,:) ) ! Area filled by <0 and >0 erp 162 zsurf_pos = glob_sum( e1e2t(:,:)*ztmsk_pos(:,:) ) 163 163 ! ! fwf global mean (excluding ocean to ice/snow exchanges) 164 164 z_fwf = glob_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf(:,:) - snwice_fmass(:,:) ) ) / area … … 172 172 ENDIF 173 173 ! 174 zsum_fwf = glob_sum( e1 2t(:,:) * z_fwf ) ! fwf global mean over <0 or >0 erp area174 zsum_fwf = glob_sum( e1e2t(:,:) * z_fwf ) ! fwf global mean over <0 or >0 erp area 175 175 !!gm : zsum_fwf = z_fwf * area ??? it is right? I think so.... 176 176 z_fwf_nsrf = zsum_fwf / ( zsurf_tospread + rsmall ) 177 177 ! ! weight to respect erp field 2D structure 178 zsum_erp = glob_sum( ztmsk_tospread(:,:) * erp(:,:) * e1 2t(:,:) )178 zsum_erp = glob_sum( ztmsk_tospread(:,:) * erp(:,:) * e1e2t(:,:) ) 179 179 z_wgt(:,:) = ztmsk_tospread(:,:) * erp(:,:) / ( zsum_erp + rsmall ) 180 180 ! ! final correction term to apply … … 191 191 IF( z_fwf < 0._wp ) THEN 192 192 WRITE(numout,*)' z_fwf < 0' 193 WRITE(numout,*)' SUM(erp+) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1 2t(:,:) )*1.e-9,' Sv'193 WRITE(numout,*)' SUM(erp+) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1e2t(:,:) )*1.e-9,' Sv' 194 194 ELSE 195 195 WRITE(numout,*)' z_fwf >= 0' 196 WRITE(numout,*)' SUM(erp-) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1 2t(:,:) )*1.e-9,' Sv'196 WRITE(numout,*)' SUM(erp-) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1e2t(:,:) )*1.e-9,' Sv' 197 197 ENDIF 198 WRITE(numout,*)' SUM(empG) = ', SUM( z_fwf*e1 2t(:,:) )*1.e-9,' Sv'198 WRITE(numout,*)' SUM(empG) = ', SUM( z_fwf*e1e2t(:,:) )*1.e-9,' Sv' 199 199 WRITE(numout,*)' z_fwf = ', z_fwf ,' Kg/m2/s' 200 200 WRITE(numout,*)' z_fwf_nsrf = ', z_fwf_nsrf ,' Kg/m2/s'
Note: See TracChangeset
for help on using the changeset viewer.