Changeset 2271
- Timestamp:
- 2010-10-14T18:41:36+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90
r2236 r2271 35 35 REAL(wp) :: area ! global mean ocean surface (interior domain) 36 36 37 REAL(wp), DIMENSION(jpi,jpj) :: e1e2 _i ! area of the interior domain (e1t*e2t*tmask_i)37 REAL(wp), DIMENSION(jpi,jpj) :: e1e2 ! area of the interior domain (e1t*e2t) 38 38 39 39 !! * Substitutions … … 87 87 ENDIF 88 88 ! 89 e1e2 _i(:,:) = e1t(:,:) * e2t(:,:) * tmask_i(:,:)90 area = glob_sum( e1e2 _i(:,:) ) ! sum over the global domain89 e1e2(:,:) = e1t(:,:) * e2t(:,:) 90 area = glob_sum( e1e2(:,:) ) ! sum over the global domain 91 91 ! 92 92 ENDIF … … 103 103 CASE ( 1 ) ! global mean fwf set to zero 104 104 IF( MOD( kt-1, kn_fsbc ) == 0 ) THEN 105 z_fwf = glob_sum( e1e2 _i(:,:) * ( emp(:,:) - rnf(:,:) ) ) / area ! sum over the global domain105 z_fwf = glob_sum( e1e2(:,:) * ( emp(:,:) - rnf(:,:) ) ) / area ! sum over the global domain 106 106 emp (:,:) = emp (:,:) - z_fwf 107 107 emps(:,:) = emps(:,:) - z_fwf … … 127 127 IF( MOD( kt, ikty ) == 0 ) THEN 128 128 a_fwb_b = a_fwb 129 a_fwb = glob_sum( e1e2 _i(:,:) * sshn(:,:) ) ! sum over the global domain129 a_fwb = glob_sum( e1e2(:,:) * sshn(:,:) ) ! sum over the global domain 130 130 a_fwb = a_fwb * 1.e+3 / ( area * 86400. * 365. ) ! convert in Kg/m3/s = mm/s 131 131 !!gm ! !!bug 365d year … … 156 156 157 157 ! Area filled by <0 and >0 erp 158 zsurf_neg = SUM( e1e2_i(:,:)*ztmsk_neg(:,:) )159 zsurf_pos = SUM( e1e2_i(:,:)*ztmsk_pos(:,:) )158 zsurf_neg = glob_sum( e1e2(:,:)*ztmsk_neg(:,:) ) 159 zsurf_pos = glob_sum( e1e2(:,:)*ztmsk_pos(:,:) ) 160 160 161 161 ! fwf global mean 162 z_fwf = glob_sum( e1e2_i(:,:) * ( emp(:,:) - rnf(:,:) ) ) / area 163 IF( lk_mpp ) CALL mpp_sum( z_fwf ) 164 IF( lk_mpp ) CALL mpp_sum( zsurf_neg ) 165 IF( lk_mpp ) CALL mpp_sum( zsurf_pos ) 162 z_fwf = glob_sum( e1e2(:,:) * ( emp(:,:) - rnf(:,:) ) ) / area 166 163 167 164 IF( z_fwf < 0.e0 ) THEN … … 176 173 177 174 ! fwf global mean over <0 or >0 erp area 178 zsum_fwf = SUM( e1e2_i(:,:) * z_fwf ) 179 IF( lk_mpp ) CALL mpp_sum( zsum_fwf ) 175 zsum_fwf = glob_sum( e1e2(:,:) * z_fwf ) 180 176 z_fwf_nsrf = zsum_fwf / ( zsurf_tospread + rsmall ) 181 177 ! weight to respect erp field 2D structure 182 !!gm Strange 183 z_wgt(:,:) = ztmsk_tospread(:,:) * erp(:,:) / ( SUM( ztmsk_tospread(:,:) * erp(:,:) * e1e2_i(:,:) ) + rsmall ) 178 zsum_erp = glob_sum( ztmsk_tospread(:,:) * erp(:,:) * e1e2(:,:) ) 179 z_wgt(:,:) = ztmsk_tospread(:,:) * erp(:,:) / ( zsum_erp + rsmall ) 180 184 181 ! final correction term to apply 185 182 zerp_cor(:,:) = -1. * z_fwf_nsrf * zsurf_tospread * z_wgt(:,:) … … 194 191 IF( z_fwf < 0.e0 ) THEN 195 192 WRITE(numout,*)' z_fwf < 0' 196 WRITE(numout,*)' SUM(erp+) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1e2 _i(:,:) )*1.e-3,' m3.s-1'193 WRITE(numout,*)' SUM(erp+) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1e2(:,:) )*1.e-3,' m3.s-1' 197 194 ELSE 198 195 WRITE(numout,*)' z_fwf >= 0' 199 WRITE(numout,*)' SUM(erp-) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1e2 _i(:,:) )*1.e-3,' m3.s-1'196 WRITE(numout,*)' SUM(erp-) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1e2(:,:) )*1.e-3,' m3.s-1' 200 197 ENDIF 201 WRITE(numout,*)' SUM(empG) = ', SUM( z_fwf*e1e2 _i(:,:) )*1.e-3,' m3.s-1'198 WRITE(numout,*)' SUM(empG) = ', SUM( z_fwf*e1e2(:,:) )*1.e-3,' m3.s-1' 202 199 WRITE(numout,*)' z_fwf = ', z_fwf ,' mm.s-1' 203 200 WRITE(numout,*)' z_fwf_nsrf = ', z_fwf_nsrf ,' mm.s-1'
Note: See TracChangeset
for help on using the changeset viewer.