Changeset 6074
- Timestamp:
- 2015-12-16T17:42:24+01:00 (8 years ago)
- Location:
- branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/iscplhsb.F90
r6069 r6074 103 103 104 104 ! volume differences 105 zde3t = fse3t_n(ji,jj,jk) * tmask(ji,jj,jk) - pe3t_b(ji,jj,jk) * ptmask_b(ji,jj,jk)105 zde3t = e3t_n(ji,jj,jk) * tmask(ji,jj,jk) - pe3t_b(ji,jj,jk) * ptmask_b(ji,jj,jk) 106 106 107 107 ! heat diff 108 zdtem = tsn(ji,jj,jk,jp_tem) * fse3t_n(ji,jj,jk) * tmask (ji,jj,jk) &108 zdtem = tsn(ji,jj,jk,jp_tem) * e3t_n(ji,jj,jk) * tmask (ji,jj,jk) & 109 109 - tsb(ji,jj,jk,jp_tem) * pe3t_b (ji,jj,jk) * ptmask_b(ji,jj,jk) 110 110 ! salt diff 111 zdsal = tsn(ji,jj,jk,jp_sal) * fse3t_n(ji,jj,jk) * tmask (ji,jj,jk) &111 zdsal = tsn(ji,jj,jk,jp_sal) * e3t_n(ji,jj,jk) * tmask (ji,jj,jk) & 112 112 - tsb(ji,jj,jk,jp_sal) * pe3t_b (ji,jj,jk) * ptmask_b(ji,jj,jk) 113 113 … … 313 313 DO jj = 1, jpj 314 314 DO ji = 1, jpi 315 phdivn(ji,jj,jk) = phdivn(ji,jj,jk) + hdiv_iscpl(ji,jj,jk) / fse3t_n(ji,jj,jk)315 phdivn(ji,jj,jk) = phdivn(ji,jj,jk) + hdiv_iscpl(ji,jj,jk) / e3t_n(ji,jj,jk) 316 316 END DO 317 317 END DO -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/iscplrst.F90
r6069 r6074 69 69 CALL iom_get( numror, jpdom_autoglo, 'vmask' , zvmask_b ) ! need to correct barotropic velocity 70 70 CALL iom_get( numror, jpdom_autoglo, 'smask' , zsmask_b ) ! need to correct barotropic velocity 71 CALL iom_get( numror, jpdom_autoglo, ' fse3t_n', ze3t_b(:,:,:) ) ! need to compute temperature correction72 CALL iom_get( numror, jpdom_autoglo, ' fse3u_n', ze3u_b(:,:,:) ) ! need to correct barotropic velocity73 CALL iom_get( numror, jpdom_autoglo, ' fse3v_n', ze3v_b(:,:,:) ) ! need to correct barotropic velocity74 CALL iom_get( numror, jpdom_autoglo, ' fsdepw_n', zdepw_b(:,:,:) ) ! need to interpol vertical profile (vvl)71 CALL iom_get( numror, jpdom_autoglo, 'e3t_n' , ze3t_b(:,:,:) ) ! need to compute temperature correction 72 CALL iom_get( numror, jpdom_autoglo, 'e3u_n' , ze3u_b(:,:,:) ) ! need to correct barotropic velocity 73 CALL iom_get( numror, jpdom_autoglo, 'e3v_n' , ze3v_b(:,:,:) ) ! need to correct barotropic velocity 74 CALL iom_get( numror, jpdom_autoglo, 'gdepw_n', zdepw_b(:,:,:) ) ! need to interpol vertical profile (vvl) 75 75 76 76 !! read namelist … … 114 114 115 115 !! set _b and _n vertical scale factor equal 116 fse3t_b (:,:,:) = fse3t_n (:,:,:)117 fse3u_b (:,:,:) = fse3u_n (:,:,:)118 fse3v_b (:,:,:) = fse3v_n (:,:,:)116 e3t_b (:,:,:) = e3t_n (:,:,:) 117 e3u_b (:,:,:) = e3u_n (:,:,:) 118 e3v_b (:,:,:) = e3v_n (:,:,:) 119 119 120 120 IF ( lk_vvl ) THEN 121 fse3uw_b(:,:,:) = fse3uw_n(:,:,:)122 fse3vw_b(:,:,:) = fse3vw_n(:,:,:)123 fsdept_b(:,:,:) = fsdept_n(:,:,:)124 fsdepw_b(:,:,:) = fsdepw_n(:,:,:)125 hu_b (:,:) = hu (:,:)126 hv_b (:,:) = hv (:,:)127 hur_b(:,:) = hur(:,:)128 hvr_b(:,:) = hvr(:,:)121 e3uw_b(:,:,:) = e3uw_n(:,:,:) 122 e3vw_b(:,:,:) = e3vw_n(:,:,:) 123 dept_b(:,:,:) = gdept_n(:,:,:) 124 gdepw_b(:,:,:) = gdepw_n(:,:,:) 125 hu_b (:,:) = hu_n(:,:) 126 hv_b (:,:) = hv_n(:,:) 127 r1_hu_b(:,:) = r1_hu_n(:,:) 128 r1_hv_b(:,:) = r1_hv_n(:,:) 129 129 END IF 130 130 ! … … 220 220 DO ji=1,jpi 221 221 IF (tmask(ji,jj,1) == 0._wp .OR. ptmask_b(ji,jj,1) == 0._wp) THEN 222 fse3t_n(ji,jj,jk) = e3t_0(ji,jj,jk) * ( 1._wp + sshn(ji,jj) / ( ht_0(ji,jj) + 1._wp - ssmask(ji,jj) ) * tmask(ji,jj,jk) )222 e3t_n(ji,jj,jk) = e3t_0(ji,jj,jk) * ( 1._wp + sshn(ji,jj) / ( ht_0(ji,jj) + 1._wp - ssmask(ji,jj) ) * tmask(ji,jj,jk) ) 223 223 ENDIF 224 224 END DO … … 226 226 END DO 227 227 228 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3u_n(:,:,:), 'U' )229 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3v_n(:,:,:), 'V' )230 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3f_n(:,:,:), 'F' )228 CALL dom_vvl_interpol( e3t_n(:,:,:), e3u_n(:,:,:), 'U' ) 229 CALL dom_vvl_interpol( e3t_n(:,:,:), e3v_n(:,:,:), 'V' ) 230 CALL dom_vvl_interpol( e3u_n(:,:,:), e3f_n(:,:,:), 'F' ) 231 231 232 232 ! Vertical scale factor interpolations 233 233 ! ------------------------------------ 234 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n (:,:,:), 'W' )235 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3uw_n(:,:,:), 'UW' )236 CALL dom_vvl_interpol( fse3v_n(:,:,:), fse3vw_n(:,:,:), 'VW' )234 CALL dom_vvl_interpol( e3t_n(:,:,:), e3w_n (:,:,:), 'W' ) 235 CALL dom_vvl_interpol( e3u_n(:,:,:), e3uw_n(:,:,:), 'UW' ) 236 CALL dom_vvl_interpol( e3v_n(:,:,:), e3vw_n(:,:,:), 'VW' ) 237 237 238 238 ! t- and w- points depth 239 239 ! ---------------------- 240 fsdept_n(:,:,1) = 0.5_wp * fse3w_n(:,:,1)241 fsdepw_n(:,:,1) = 0.0_wp242 fsde3w_n(:,:,1) = fsdept_n(:,:,1) - sshn(:,:)240 gdept_n(:,:,1) = 0.5_wp * e3w_n(:,:,1) 241 gdepw_n(:,:,1) = 0.0_wp 242 gde3w_n(:,:,1) = gdept_n(:,:,1) - sshn(:,:) 243 243 DO jj = 1,jpj 244 244 DO ji = 1,jpi 245 245 DO jk = 2,mikt(ji,jj)-1 246 fsdept_n(ji,jj,jk) = gdept_0(ji,jj,jk)247 fsdepw_n(ji,jj,jk) = gdepw_0(ji,jj,jk)248 fsde3w_n(ji,jj,jk) = gdept_0(ji,jj,jk) - sshn(ji,jj)246 gdept_n(ji,jj,jk) = gdept_0(ji,jj,jk) 247 gdepw_n(ji,jj,jk) = gdepw_0(ji,jj,jk) 248 gde3w_n(ji,jj,jk) = gdept_0(ji,jj,jk) - sshn(ji,jj) 249 249 END DO 250 250 IF (mikt(ji,jj) > 1) THEN 251 251 jk = mikt(ji,jj) 252 fsdept_n(ji,jj,jk) = gdepw_0(ji,jj,jk) + 0.5_wp * fse3w_n(ji,jj,jk)253 fsdepw_n(ji,jj,jk) = gdepw_0(ji,jj,jk)254 fsde3w_n(ji,jj,jk) = fsdept_n(ji,jj,jk ) - sshn (ji,jj)252 gdept_n(ji,jj,jk) = gdepw_0(ji,jj,jk) + 0.5_wp * e3w_n(ji,jj,jk) 253 gdepw_n(ji,jj,jk) = gdepw_0(ji,jj,jk) 254 gde3w_n(ji,jj,jk) = gdept_n(ji,jj,jk ) - sshn (ji,jj) 255 255 END IF 256 256 DO jk = mikt(ji,jj)+1, jpk 257 fsdept_n(ji,jj,jk) = fsdept_n(ji,jj,jk-1) + fse3w_n(ji,jj,jk)258 fsdepw_n(ji,jj,jk) = fsdepw_n(ji,jj,jk-1) + fse3t_n(ji,jj,jk-1)259 fsde3w_n(ji,jj,jk) = fsdept_n(ji,jj,jk ) - sshn(ji,jj)257 gdept_n(ji,jj,jk) = gdept_n(ji,jj,jk-1) + e3w_n(ji,jj,jk) 258 gdepw_n(ji,jj,jk) = gdepw_n(ji,jj,jk-1) + e3t_n(ji,jj,jk-1) 259 gde3w_n(ji,jj,jk) = gdept_n(ji,jj,jk ) - sshn (ji,jj) 260 260 END DO 261 261 END DO … … 266 266 ht(:,:) = 0._wp ; hu(:,:) = 0._wp ; hv(:,:) = 0._wp 267 267 DO jk = 1, jpkm1 268 hu (:,:) = hu(:,:) + fse3u_n(:,:,jk) * umask(:,:,jk)269 hv (:,:) = hv(:,:) + fse3v_n(:,:,jk) * vmask(:,:,jk)270 ht (:,:) = ht(:,:) + fse3t_n(:,:,jk) * tmask(:,:,jk)268 hu_n(:,:) = hu_n(:,:) + e3u_n(:,:,jk) * umask(:,:,jk) 269 hv_n(:,:) = hv_n(:,:) + e3v_n(:,:,jk) * vmask(:,:,jk) 270 ht_n(:,:) = ht_n(:,:) + e3t_n(:,:,jk) * tmask(:,:,jk) 271 271 END DO 272 272 ! ! Inverse of the local depth 273 hur(:,:) = 1._wp / ( hu(:,:) + 1._wp - ssumask(:,:) ) * ssumask(:,:)274 hvr(:,:) = 1._wp / ( hv(:,:) + 1._wp - ssvmask(:,:) ) * ssvmask(:,:)273 r1_hu_n(:,:) = 1._wp / ( hu_n(:,:) + 1._wp - ssumask(:,:) ) * ssumask(:,:) 274 r1_hv_n(:,:) = 1._wp / ( hv_n(:,:) + 1._wp - ssvmask(:,:) ) * ssvmask(:,:) 275 275 276 276 END IF … … 284 284 DO jj = 1,jpj 285 285 DO ji = 1,jpi 286 un(ji,jj,jk) = ub(ji,jj,jk)*pe3u_b(ji,jj,jk)*pumask_b(ji,jj,jk)/ fse3u_n(ji,jj,jk)*umask(ji,jj,jk);287 vn(ji,jj,jk) = vb(ji,jj,jk)*pe3v_b(ji,jj,jk)*pvmask_b(ji,jj,jk)/ fse3v_n(ji,jj,jk)*vmask(ji,jj,jk);286 un(ji,jj,jk) = ub(ji,jj,jk)*pe3u_b(ji,jj,jk)*pumask_b(ji,jj,jk)/e3u_n(ji,jj,jk)*umask(ji,jj,jk); 287 vn(ji,jj,jk) = vb(ji,jj,jk)*pe3v_b(ji,jj,jk)*pvmask_b(ji,jj,jk)/e3v_n(ji,jj,jk)*vmask(ji,jj,jk); 288 288 END DO 289 289 END DO … … 296 296 ztrp(:,:,:) = vb(:,:,:)*pe3v_b(:,:,:); 297 297 zbvb(:,:) = SUM(ztrp,DIM=3) 298 ztrp(:,:,:) = un(:,:,:)* fse3u_n(:,:,:);298 ztrp(:,:,:) = un(:,:,:)*e3u_n(:,:,:); 299 299 zbun(:,:) = SUM(ztrp,DIM=3) 300 ztrp(:,:,:) = vn(:,:,:)* fse3v_n(:,:,:);300 ztrp(:,:,:) = vn(:,:,:)*e3v_n(:,:,:); 301 301 zbvn(:,:) = SUM(ztrp,DIM=3) 302 302 … … 305 305 zhv1=0.0_wp ; 306 306 DO jk = 1,jpk 307 zhu1(:,:) = zhu1(:,:) + fse3u_n(:,:,jk) * umask(:,:,jk)308 zhv1(:,:) = zhv1(:,:) + fse3v_n(:,:,jk) * vmask(:,:,jk)307 zhu1(:,:) = zhu1(:,:) + e3u_n(:,:,jk) * umask(:,:,jk) 308 zhv1(:,:) = zhv1(:,:) + e3v_n(:,:,jk) * vmask(:,:,jk) 309 309 END DO 310 310 … … 392 392 IF (zwmaskn(ji,jj,jk) * zwmaskb(ji,jj,jk) == 1._wp .AND. (tmask(ji,jj,1)==0._wp .OR. ptmask_b(ji,jj,1)==0._wp) ) THEN 393 393 !compute weight 394 zdzp1 = MAX(0._wp, fsdepw_n(ji,jj,jk+1) - pdepw_b(ji,jj,jk+1))395 zdz = fsdepw_n(ji,jj,jk+1) - pdepw_b(ji,jj,jk )396 zdzm1 = MAX(0._wp,pdepw_b(ji,jj,jk ) - fsdepw_n(ji,jj,jk ))394 zdzp1 = MAX(0._wp,gdepw_n(ji,jj,jk+1) - pdepw_b(ji,jj,jk+1)) 395 zdz = gdepw_n(ji,jj,jk+1) - pdepw_b(ji,jj,jk ) 396 zdzm1 = MAX(0._wp,pdepw_b(ji,jj,jk ) - gdepw_n(ji,jj,jk )) 397 397 IF (zdz .LT. 0._wp) THEN 398 398 CALL ctl_stop( 'STOP', 'rst_iscpl : unable to compute the interpolation' ) … … 400 400 tsn(ji,jj,jk,jp_tem) = ( zdzp1*tsb(ji,jj,jk+1,jp_tem) & 401 401 & + zdz *tsb(ji,jj,jk ,jp_tem) & 402 & + zdzm1*tsb(ji,jj,jk-1,jp_tem) )/ fse3t_n(ji,jj,jk)402 & + zdzm1*tsb(ji,jj,jk-1,jp_tem) )/e3t_n(ji,jj,jk) 403 403 tsn(ji,jj,jk,jp_sal) = ( zdzp1*tsb(ji,jj,jk+1,jp_sal) & 404 404 & + zdz *tsb(ji,jj,jk ,jp_sal) & 405 & + zdzm1*tsb(ji,jj,jk-1,jp_sal) )/ fse3t_n(ji,jj,jk)405 & + zdzm1*tsb(ji,jj,jk-1,jp_sal) )/e3t_n(ji,jj,jk) 406 406 END IF 407 407 END DO -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r6069 r6074 215 215 ! compute density of the water displaced by the ice shelf 216 216 DO jk = 1, jpk 217 CALL eos(ztstop(:,:,:), fsdept_n(:,:,jk),zrhd(:,:,jk))217 CALL eos(ztstop(:,:,:),gdept_n(:,:,jk),zrhd(:,:,jk)) 218 218 END DO 219 219 … … 228 228 DO ji = 1, jpi 229 229 ikt=mikt(ji,jj) 230 ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * fse3w(ji,jj,1) * (1._wp - tmask(ji,jj,1))230 ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * e3w(ji,jj,1) * (1._wp - tmask(ji,jj,1)) 231 231 DO jk=2,ikt-1 232 ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * fse3w(ji,jj,jk) &232 ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * e3w(ji,jj,jk) & 233 233 & * (1._wp - tmask(ji,jj,jk)) 234 234 END DO -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90
r6069 r6074 216 216 DO jj = 2, jpj 217 217 DO ji = fs_2, fs_jpim1 218 zdep = 1._wp / fse3t_n(ji,jj,jk)218 zdep = 1._wp / e3t_n(ji,jj,jk) 219 219 tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) - htsc_iscpl(ji,jj,jk,jp_tem) & 220 220 & * zdep
Note: See TracChangeset
for help on using the changeset viewer.