Changeset 5033 for branches/2015/dev_r5021_UKMO1_CICE_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
- Timestamp:
- 2015-01-15T14:28:25+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5021_UKMO1_CICE_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r5030 r5033 15 15 USE dom_oce ! ocean space and time domain 16 16 USE domvvl 17 USE eosbn2, only : eos_fzp ! Function to calculate freezing point of seawater 17 18 USE phycst, only : rcp, rau0, r1_rau0, rhosn, rhoic 18 19 USE in_out_manager ! I/O manager … … 161 162 INTEGER, INTENT( in ) :: ksbc ! surface forcing type 162 163 REAL(wp), DIMENSION(:,:), POINTER :: ztmp1, ztmp2 164 REAL(wp), DIMENSION(:,:,:), POINTER :: ztfrz3d 163 165 REAL(wp) :: zcoefu, zcoefv, zcoeff ! local scalar 164 166 INTEGER :: ji, jj, jl, jk ! dummy loop indices … … 173 175 ji_off = INT ( (jpiglo - nx_global) / 2 ) 174 176 jj_off = INT ( (jpjglo - ny_global) / 2 ) 177 178 ! Set freezing temperatures and ensure consistencey between NEMO and CICE 179 CALL wrk_alloc( jpi,jpj,jpk, ztfrz3d ) 180 DO jk=1,jpk 181 ztfrz3d(:,:,jk) = eos_fzp( tsn(:,:,jk,jp_sal), fsdewq(:,:,jk) ) 182 ENDDO 183 sstfrz(:,:)=ztfrz(:,:,1) 184 185 !Ensure that no temperature points are below freezing if not a NEMO restart 186 IF( .NOT. ln_rstart ) THEN 187 tsn(:,:,:,jp_tem) = MAX (tsn(:,:,:,jp_tem),ztfrz3d) 188 tsb(:,:,:,jp_tem) = tsn(:,:,:,jp_tem) 189 ENDIF 175 190 176 191 #if defined key_nemocice_decomp … … 202 217 IF( sbc_ice_cice_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'sbc_ice_cice_alloc : unable to allocate cice arrays' ) 203 218 204 ! Ensure ocean temperatures are nowhere below freezing if not a NEMO restart 205 IF( .NOT. ln_rstart ) THEN 206 tsn(:,:,:,jp_tem) = MAX (tsn(:,:,:,jp_tem),Tocnfrz) 207 tsb(:,:,:,jp_tem) = tsn(:,:,:,jp_tem) 208 ENDIF 219 209 220 210 221 fr_iu(:,:)=0.0 … … 283 294 284 295 CALL wrk_dealloc( jpi,jpj, ztmp1, ztmp2 ) 296 CALL wrk_dealloc( jpi,jpj,jpk, ztfrz3d ) 285 297 ! 286 298 IF( nn_timing == 1 ) CALL timing_stop('cice_sbc_init') … … 427 439 CALL nemo2cice(ztmp,frain,'T', 1. ) 428 440 441 ! Recalculate freezing temperature and send to CICE 442 sstfrz(:,:)=tfreez(sss_m(:,:)) 443 CALL nemo2cice(sstfrz,Tf,'T', 1. ) 444 429 445 ! Freezing/melting potential 430 446 ! Calculated over NEMO leapfrog timestep (hence 2*dt) 431 nfrzmlt(:,:)=rau0*rcp*fse3t_m(:,:)*(Tocnfrz-sst_m(:,:))/(2.0*dt) 432 433 ztmp(:,:) = nfrzmlt(:,:) 434 CALL nemo2cice(ztmp,frzmlt,'T', 1. ) 447 nfrzmlt(:,:)=rau0*rcp*fse3t_m(:,:,1)*(sstfrz(:,:)-sst_m(:,:))/(2.0*dt) 448 CALL nemo2cice(nfrzmlt,frzmlt,'T', 1. ) 435 449 436 450 ! SST and SSS
Note: See TracChangeset
for help on using the changeset viewer.