Changeset 10954 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/tranpc.F90
- Timestamp:
- 2019-05-09T18:12:29+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/tranpc.F90
r10946 r10954 85 85 IF( l_trdtra ) THEN !* Save initial after fields 86 86 ALLOCATE( ztrdt(jpi,jpj,jpk) , ztrds(jpi,jpj,jpk) ) 87 ztrdt(:,:,:) = ts a(:,:,:,jp_tem)88 ztrds(:,:,:) = ts a(:,:,:,jp_sal)87 ztrdt(:,:,:) = ts(:,:,:,jp_tem,Krhs) 88 ztrds(:,:,:) = ts(:,:,:,jp_sal,Krhs) 89 89 ENDIF 90 90 ! … … 96 96 ENDIF 97 97 ! 98 CALL eos_rab( ts a, zab) ! after alpha and beta (given on T-points)99 CALL bn2 ( ts a, zab, zn2) ! after Brunt-Vaisala (given on W-points)98 CALL eos_rab( ts(:,:,:,:,Krhs), zab, Kmm ) ! after alpha and beta (given on T-points) 99 CALL bn2 ( ts(:,:,:,:,Krhs), zab, zn2, Kmm ) ! after Brunt-Vaisala (given on W-points) 100 100 ! 101 101 inpcc = 0 … … 106 106 IF( tmask(ji,jj,2) == 1 ) THEN ! At least 2 ocean points 107 107 ! ! consider one ocean column 108 zvts(:,jp_tem) = ts a(ji,jj,:,jp_tem) ! temperature109 zvts(:,jp_sal) = ts a(ji,jj,:,jp_sal) ! salinity108 zvts(:,jp_tem) = ts(ji,jj,:,jp_tem,Krhs) ! temperature 109 zvts(:,jp_sal) = ts(ji,jj,:,jp_sal,Krhs) ! salinity 110 110 ! 111 111 zvab(:,jp_tem) = zab(ji,jj,:,jp_tem) ! Alpha … … 187 187 DO jk = ikup, ikbot ! Inside the instable (and overlying neutral) portion of the column 188 188 ! 189 zdz = e3t _n(ji,jj,jk)189 zdz = e3t(ji,jj,jk,Kmm) 190 190 zsum_temp = zsum_temp + zvts(jk,jp_tem)*zdz 191 191 zsum_sali = zsum_sali + zvts(jk,jp_sal)*zdz … … 236 236 237 237 !! Interpolating alfa and beta at W point: 238 zrw = (gdepw _n(ji,jj,jk ) - gdept_n(ji,jj,jk)) &239 & / (gdept _n(ji,jj,jk-1) - gdept_n(ji,jj,jk))238 zrw = (gdepw(ji,jj,jk ,Kmm) - gdept(ji,jj,jk,Kmm)) & 239 & / (gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm)) 240 240 zaw = zvab(jk,jp_tem) * (1._wp - zrw) + zvab(jk-1,jp_tem) * zrw 241 241 zbw = zvab(jk,jp_sal) * (1._wp - zrw) + zvab(jk-1,jp_sal) * zrw … … 244 244 zvn2(jk) = grav*( zaw * ( zvts(jk-1,jp_tem) - zvts(jk,jp_tem) ) & 245 245 & - zbw * ( zvts(jk-1,jp_sal) - zvts(jk,jp_sal) ) ) & 246 & / e3w _n(ji,jj,jk) * tmask(ji,jj,jk)246 & / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 247 247 248 248 !! OR, faster => just considering the vertical gradient of density … … 288 288 289 289 !! Updating tsa: 290 ts a(ji,jj,:,jp_tem) = zvts(:,jp_tem)291 ts a(ji,jj,:,jp_sal) = zvts(:,jp_sal)290 ts(ji,jj,:,jp_tem,Krhs) = zvts(:,jp_tem) 291 ts(ji,jj,:,jp_sal,Krhs) = zvts(:,jp_sal) 292 292 293 293 !! LB: Potentially some other global variable beside theta and S can be treated here … … 303 303 IF( l_trdtra ) THEN ! send the Non penetrative mixing trends for diagnostic 304 304 z1_r2dt = 1._wp / (2._wp * rdt) 305 ztrdt(:,:,:) = ( ts a(:,:,:,jp_tem) - ztrdt(:,:,:) ) * z1_r2dt306 ztrds(:,:,:) = ( ts a(:,:,:,jp_sal) - ztrds(:,:,:) ) * z1_r2dt305 ztrdt(:,:,:) = ( ts(:,:,:,jp_tem,Krhs) - ztrdt(:,:,:) ) * z1_r2dt 306 ztrds(:,:,:) = ( ts(:,:,:,jp_sal,Krhs) - ztrds(:,:,:) ) * z1_r2dt 307 307 CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_tem, jptra_npc, ztrdt ) 308 308 CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_sal, jptra_npc, ztrds ) … … 310 310 ENDIF 311 311 ! 312 CALL lbc_lnk_multi( 'tranpc', ts a(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. )312 CALL lbc_lnk_multi( 'tranpc', ts(:,:,:,jp_tem,Krhs), 'T', 1., ts(:,:,:,jp_sal,Krhs), 'T', 1. ) 313 313 ! 314 314 IF( lwp .AND. l_LB_debug ) THEN
Note: See TracChangeset
for help on using the changeset viewer.