Changeset 4347
- Timestamp:
- 2014-01-13T15:36:52+01:00 (11 years ago)
- Location:
- branches/2013/dev_MERGE_2013/NEMOGCM
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_MERGE_2013/NEMOGCM/CONFIG/SHARED/1_namelist_ref
r4329 r4347 222 222 ! =1 global mean of e-p-r set to zero at each time step 223 223 ! =2 annual global mean of e-p-r set to zero 224 ! =3 global emp set to zero and spread out over erp area225 224 ln_wave = .false. ! Activate coupling with wave (either Stokes Drift or Drag coefficient, or both) (T => fill namsbc_wave) 226 225 ln_cdgw = .false. ! Neutral drag coefficient read from wave model (T => fill namsbc_wave) -
branches/2013/dev_MERGE_2013/NEMOGCM/CONFIG/SHARED/namelist_ref
r4330 r4347 222 222 ! =1 global mean of e-p-r set to zero at each time step 223 223 ! =2 annual global mean of e-p-r set to zero 224 ! =3 global emp set to zero and spread out over erp area225 224 ln_wave = .false. ! Activate coupling with wave (either Stokes Drift or Drag coefficient, or both) (T => fill namsbc_wave) 226 225 ln_cdgw = .false. ! Neutral drag coefficient read from wave model (T => fill namsbc_wave) -
branches/2013/dev_MERGE_2013/NEMOGCM/CONFIG/cfg.txt
r4333 r4347 8 8 C1D_PAPA OPA_SRC 9 9 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 10 ORCA2_LIM3 OPA_SRC LIM_SRC_3 NST_SRC 10 11 ORCA2_LIM OPA_SRC LIM_SRC_2 NST_SRC 11 ORCA2_LIM3 OPA_SRC LIM_SRC_3 NST_SRC -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90
r4161 r4347 57 57 !! =1 global mean of emp set to zero at each nn_fsbc time step 58 58 !! =2 annual global mean corrected from previous year 59 !! =3 global mean of emp set to zero at each nn_fsbc time step60 !! & spread out over erp area depending its sign61 59 !! Note: if sea ice is embedded it is taken into account when computing the budget 62 60 !!---------------------------------------------------------------------- … … 83 81 IF( kn_fwb == 1 ) WRITE(numout,*) ' instantaneously set to zero' 84 82 IF( kn_fwb == 2 ) WRITE(numout,*) ' adjusted from previous year budget' 85 IF( kn_fwb == 3 ) WRITE(numout,*) ' fwf set to zero and spread out over erp area'86 83 ENDIF 87 !88 IF( kn_fwb == 3 .AND. nn_sssr /= 2 ) CALL ctl_stop( 'sbc_fwb: nn_fwb = 3 requires nn_sssr = 2, we stop ' )89 84 ! 90 85 area = glob_sum( e1e2t(:,:) ) ! interior global domain surface … … 147 142 ENDIF 148 143 ! 149 CASE ( 3 ) !== global fwf set to zero and spread out over erp area ==!150 !151 IF( MOD( kt-1, kn_fsbc ) == 0 ) THEN152 ztmsk_pos(:,:) = tmask_i(:,:) ! Select <0 and >0 area of erp153 WHERE( erp < 0._wp ) ztmsk_pos = 0._wp154 ztmsk_neg(:,:) = tmask_i(:,:) - ztmsk_pos(:,:)155 !156 zsurf_neg = glob_sum( e1e2t(:,:)*ztmsk_neg(:,:) ) ! Area filled by <0 and >0 erp157 zsurf_pos = glob_sum( e1e2t(:,:)*ztmsk_pos(:,:) )158 ! ! fwf global mean (excluding ocean to ice/snow exchanges)159 z_fwf = glob_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) - snwice_fmass(:,:) ) ) / area160 !161 IF( z_fwf < 0._wp ) THEN ! spread out over >0 erp area to increase evaporation162 zsurf_tospread = zsurf_pos163 ztmsk_tospread(:,:) = ztmsk_pos(:,:)164 ELSE ! spread out over <0 erp area to increase precipitation165 zsurf_tospread = zsurf_neg166 ztmsk_tospread(:,:) = ztmsk_neg(:,:)167 ENDIF168 !169 zsum_fwf = glob_sum( e1e2t(:,:) * z_fwf ) ! fwf global mean over <0 or >0 erp area170 !!gm : zsum_fwf = z_fwf * area ??? it is right? I think so....171 z_fwf_nsrf = zsum_fwf / ( zsurf_tospread + rsmall )172 ! ! weight to respect erp field 2D structure173 zsum_erp = glob_sum( ztmsk_tospread(:,:) * erp(:,:) * e1e2t(:,:) )174 z_wgt(:,:) = ztmsk_tospread(:,:) * erp(:,:) / ( zsum_erp + rsmall )175 ! ! final correction term to apply176 zerp_cor(:,:) = -1. * z_fwf_nsrf * zsurf_tospread * z_wgt(:,:)177 !178 !!gm ===>>>> lbc_lnk should be useless as all the computation is done over the whole domain !179 CALL lbc_lnk( zerp_cor, 'T', 1. )180 !181 emp(:,:) = emp(:,:) + zerp_cor(:,:)182 qns(:,:) = qns(:,:) - zerp_cor(:,:) * rcp * sst_m(:,:) ! account for change to the heat budget due to fw correction183 erp(:,:) = erp(:,:) + zerp_cor(:,:)184 !185 IF( nprint == 1 .AND. lwp ) THEN ! control print186 IF( z_fwf < 0._wp ) THEN187 WRITE(numout,*)' z_fwf < 0'188 WRITE(numout,*)' SUM(erp+) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1e2t(:,:) )*1.e-9,' Sv'189 ELSE190 WRITE(numout,*)' z_fwf >= 0'191 WRITE(numout,*)' SUM(erp-) = ', SUM( ztmsk_tospread(:,:)*erp(:,:)*e1e2t(:,:) )*1.e-9,' Sv'192 ENDIF193 WRITE(numout,*)' SUM(empG) = ', SUM( z_fwf*e1e2t(:,:) )*1.e-9,' Sv'194 WRITE(numout,*)' z_fwf = ', z_fwf ,' Kg/m2/s'195 WRITE(numout,*)' z_fwf_nsrf = ', z_fwf_nsrf ,' Kg/m2/s'196 WRITE(numout,*)' MIN(zerp_cor) = ', MINVAL(zerp_cor)197 WRITE(numout,*)' MAX(zerp_cor) = ', MAXVAL(zerp_cor)198 ENDIF199 ENDIF200 !201 144 CASE DEFAULT !== you should never be there ==! 202 CALL ctl_stop( 'sbc_fwb : wrong nn_fwb value for the FreshWater Budget correction, choose either 1 , 2 or 3' )145 CALL ctl_stop( 'sbc_fwb : wrong nn_fwb value for the FreshWater Budget correction, choose either 1 or 2' ) 203 146 ! 204 147 END SELECT
Note: See TracChangeset
for help on using the changeset viewer.