Changeset 10921
- Timestamp:
- 2019-05-01T12:56:55+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OFF
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OFF/dtadyn.F90
r10425 r10921 94 94 CONTAINS 95 95 96 SUBROUTINE dta_dyn( kt )96 SUBROUTINE dta_dyn( kt, Kbb, Kmm, Kaa ) 97 97 !!---------------------------------------------------------------------- 98 98 !! *** ROUTINE dta_dyn *** … … 105 105 !! - interpolates data if needed 106 106 !!---------------------------------------------------------------------- 107 INTEGER, INTENT(in) :: kt ! ocean time-step index 107 INTEGER, INTENT(in) :: kt ! ocean time-step index 108 INTEGER, INTENT(in) :: Kbb, Kmm, Kaa ! ocean time level indices 108 109 ! 109 110 INTEGER :: ji, jj, jk … … 123 124 IF( l_ldfslp .AND. .NOT.lk_c1d ) CALL dta_dyn_slp( kt ) ! Computation of slopes 124 125 ! 125 ts n(:,:,:,jp_tem) = sf_dyn(jf_tem)%fnow(:,:,:) * tmask(:,:,:) ! temperature126 ts n(:,:,:,jp_sal) = sf_dyn(jf_sal)%fnow(:,:,:) * tmask(:,:,:) ! salinity126 ts(:,:,:,jp_tem,Kmm) = sf_dyn(jf_tem)%fnow(:,:,:) * tmask(:,:,:) ! temperature 127 ts(:,:,:,jp_sal,Kmm) = sf_dyn(jf_sal)%fnow(:,:,:) * tmask(:,:,:) ! salinity 127 128 wndm(:,:) = sf_dyn(jf_wnd)%fnow(:,:,1) * tmask(:,:,1) ! wind speed - needed for gas exchange 128 129 fmmflx(:,:) = sf_dyn(jf_fmf)%fnow(:,:,1) * tmask(:,:,1) ! downward salt flux (v3.5+) … … 132 133 IF( ln_dynrnf ) THEN 133 134 rnf (:,:) = sf_dyn(jf_rnf)%fnow(:,:,1) * tmask(:,:,1) ! E-P 134 IF( ln_dynrnf_depth .AND. .NOT. ln_linssh ) CALL dta_dyn_hrnf 135 ENDIF 136 ! 137 u n(:,:,:) = sf_dyn(jf_uwd)%fnow(:,:,:) * umask(:,:,:) ! effective u-transport138 v n(:,:,:) = sf_dyn(jf_vwd)%fnow(:,:,:) * vmask(:,:,:) ! effective v-transport139 w n(:,:,:) = sf_dyn(jf_wwd)%fnow(:,:,:) * tmask(:,:,:) ! effective v-transport135 IF( ln_dynrnf_depth .AND. .NOT. ln_linssh ) CALL dta_dyn_hrnf(Kmm) 136 ENDIF 137 ! 138 uu(:,:,:,Kmm) = sf_dyn(jf_uwd)%fnow(:,:,:) * umask(:,:,:) ! effective u-transport 139 vv(:,:,:,Kmm) = sf_dyn(jf_vwd)%fnow(:,:,:) * vmask(:,:,:) ! effective v-transport 140 ww(:,:,:) = sf_dyn(jf_wwd)%fnow(:,:,:) * tmask(:,:,:) ! effective v-transport 140 141 ! 141 142 IF( .NOT.ln_linssh ) THEN … … 144 145 emp_b (:,:) = sf_dyn(jf_empb)%fnow(:,:,1) * tmask(:,:,1) ! E-P 145 146 zemp (:,:) = ( 0.5_wp * ( emp(:,:) + emp_b(:,:) ) + rnf(:,:) + fwbcorr ) * tmask(:,:,1) 146 CALL dta_dyn_ssh( kt, zhdivtr, ssh b, zemp, ssha, e3t_a(:,:,:) ) != ssh, vertical scale factor & vertical transport147 CALL dta_dyn_ssh( kt, zhdivtr, ssh(:,:,Kbb), zemp, ssh(:,:,Kaa), e3t(:,:,:,Kaa) ) != ssh, vertical scale factor & vertical transport 147 148 DEALLOCATE( zemp , zhdivtr ) 148 149 ! Write in the tracer restart file … … 152 153 IF(lwp) WRITE(numout,*) 'dta_dyn_ssh : ssh field written in tracer restart file at it= ', kt,' date= ', ndastp 153 154 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 154 CALL iom_rstput( kt, nitrst, numrtw, 'sshn', ssh a)155 CALL iom_rstput( kt, nitrst, numrtw, 'sshb', ssh n)155 CALL iom_rstput( kt, nitrst, numrtw, 'sshn', ssh(:,:,Kaa) ) 156 CALL iom_rstput( kt, nitrst, numrtw, 'sshb', ssh(:,:,Kmm) ) 156 157 ENDIF 157 158 ENDIF 158 159 ! 159 CALL eos ( ts n, rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop160 CALL eos_rab( ts n, rab_n ) ! now local thermal/haline expension ratio at T-points161 CALL bn2 ( ts n, rab_n, rn2 ) ! before Brunt-Vaisala frequency need for zdfmxl160 CALL eos ( ts(:,:,:,:,Kmm), rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 161 CALL eos_rab( ts(:,:,:,:,Kmm), rab_n ) ! now local thermal/haline expension ratio at T-points 162 CALL bn2 ( ts(:,:,:,:,Kmm), rab_n, rn2 ) ! before Brunt-Vaisala frequency need for zdfmxl 162 163 163 164 rn2b(:,:,:) = rn2(:,:,:) ! need for zdfmxl … … 174 175 ! 175 176 ! 176 CALL eos( ts n, rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop177 CALL eos( ts(:,:,:,:,Kmm), rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 177 178 ! 178 179 IF(ln_ctl) THEN ! print control 179 CALL prt_ctl(tab3d_1=ts n(:,:,:,jp_tem), clinfo1=' tn - : ', mask1=tmask, kdim=jpk )180 CALL prt_ctl(tab3d_1=ts n(:,:,:,jp_sal), clinfo1=' sn - : ', mask1=tmask, kdim=jpk )181 CALL prt_ctl(tab3d_1=u n , clinfo1=' un- : ', mask1=umask, kdim=jpk )182 CALL prt_ctl(tab3d_1=v n , clinfo1=' vn- : ', mask1=vmask, kdim=jpk )183 CALL prt_ctl(tab3d_1=wn , clinfo1=' w n- : ', mask1=tmask, kdim=jpk )180 CALL prt_ctl(tab3d_1=ts(:,:,:,jp_tem,Kmm), clinfo1=' tn - : ', mask1=tmask, kdim=jpk ) 181 CALL prt_ctl(tab3d_1=ts(:,:,:,jp_sal,Kmm), clinfo1=' sn - : ', mask1=tmask, kdim=jpk ) 182 CALL prt_ctl(tab3d_1=uu(:,:,:,Kmm) , clinfo1=' uu(:,:,:,Kmm) - : ', mask1=umask, kdim=jpk ) 183 CALL prt_ctl(tab3d_1=vv(:,:,:,Kmm) , clinfo1=' vv(:,:,:,Kmm) - : ', mask1=vmask, kdim=jpk ) 184 CALL prt_ctl(tab3d_1=wn , clinfo1=' ww - : ', mask1=tmask, kdim=jpk ) 184 185 CALL prt_ctl(tab3d_1=avt , clinfo1=' kz - : ', mask1=tmask, kdim=jpk ) 185 186 CALL prt_ctl(tab3d_1=uslp , clinfo1=' slp - u : ', tab3d_2=vslp, clinfo2=' v : ', kdim=jpk) … … 192 193 193 194 194 SUBROUTINE dta_dyn_init 195 SUBROUTINE dta_dyn_init( Kbb, Kmm, Kaa ) 195 196 !!---------------------------------------------------------------------- 196 197 !! *** ROUTINE dta_dyn_init *** … … 199 200 !! ** Method : - read the data namdta_dyn namelist 200 201 !!---------------------------------------------------------------------- 202 INTEGER, INTENT(in) :: Kbb, Kmm, Kaa ! ocean time level indices 203 ! 201 204 INTEGER :: ierr, ierr0, ierr1, ierr2, ierr3 ! return error code 202 205 INTEGER :: ifpr ! dummy loop indice … … 312 315 IF( .NOT. sf_dyn(jf_uwd)%ln_clim .AND. ln_rsttr .AND. & ! Restart: read in restart file 313 316 iom_varid( numrtr, 'sshn', ldstop = .FALSE. ) > 0 ) THEN 314 IF(lwp) WRITE(numout,*) ' ssh nforcing fields read in the restart file for initialisation'315 CALL iom_get( numrtr, jpdom_autoglo, 'sshn', ssh n(:,:) )316 CALL iom_get( numrtr, jpdom_autoglo, 'sshb', ssh b(:,:) )317 IF(lwp) WRITE(numout,*) ' ssh(:,:,Kmm) forcing fields read in the restart file for initialisation' 318 CALL iom_get( numrtr, jpdom_autoglo, 'sshn', ssh(:,:,Kmm) ) 319 CALL iom_get( numrtr, jpdom_autoglo, 'sshb', ssh(:,:,Kbb) ) 317 320 ELSE 318 IF(lwp) WRITE(numout,*) ' ssh nforcing fields read in the restart file for initialisation'321 IF(lwp) WRITE(numout,*) ' ssh(:,:,Kmm) forcing fields read in the restart file for initialisation' 319 322 CALL iom_open( 'restart', inum ) 320 CALL iom_get( inum, jpdom_autoglo, 'sshn', ssh n(:,:) )321 CALL iom_get( inum, jpdom_autoglo, 'sshb', ssh b(:,:) )323 CALL iom_get( inum, jpdom_autoglo, 'sshn', ssh(:,:,Kmm) ) 324 CALL iom_get( inum, jpdom_autoglo, 'sshb', ssh(:,:,Kbb) ) 322 325 CALL iom_close( inum ) ! close file 323 326 ENDIF 324 327 ! 325 328 DO jk = 1, jpkm1 326 e3t _n(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + sshn(:,:) * tmask(:,:,1) / ( ht_0(:,:) + 1.0 - tmask(:,:,1) ) )329 e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * ( 1._wp + ssh(:,:,Kmm) * tmask(:,:,1) / ( ht_0(:,:) + 1.0 - tmask(:,:,1) ) ) 327 330 ENDDO 328 e3t _a(:,:,jpk) = e3t_0(:,:,jpk)331 e3t(:,:,jpk,Kaa) = e3t_0(:,:,jpk) 329 332 330 333 ! Horizontal scale factor interpolations 331 334 ! -------------------------------------- 332 CALL dom_vvl_interpol( e3t _n(:,:,:), e3u_n(:,:,:), 'U' )333 CALL dom_vvl_interpol( e3t _n(:,:,:), e3v_n(:,:,:), 'V' )335 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 336 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 334 337 335 338 ! Vertical scale factor interpolations 336 339 ! ------------------------------------ 337 CALL dom_vvl_interpol( e3t _n(:,:,:), e3w_n(:,:,:), 'W' )340 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w(:,:,:,Kmm), 'W' ) 338 341 339 e3t _b(:,:,:) = e3t_n(:,:,:)340 e3u _b(:,:,:) = e3u_n(:,:,:)341 e3v _b(:,:,:) = e3v_n(:,:,:)342 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 343 e3u(:,:,:,Kbb) = e3u(:,:,:,Kmm) 344 e3v(:,:,:,Kbb) = e3v(:,:,:,Kmm) 342 345 343 346 ! t- and w- points depth 344 347 ! ---------------------- 345 gdept _n(:,:,1) = 0.5_wp * e3w_n(:,:,1)346 gdepw _n(:,:,1) = 0.0_wp348 gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 349 gdepw(:,:,1,Kmm) = 0.0_wp 347 350 348 351 DO jk = 2, jpk … … 354 357 ! mikt 355 358 zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk)) 356 gdepw _n(ji,jj,jk) = gdepw_n(ji,jj,jk-1) + e3t_n(ji,jj,jk-1)357 gdept _n(ji,jj,jk) = zcoef * ( gdepw_n(ji,jj,jk ) + 0.5 * e3w_n(ji,jj,jk)) &358 & + (1-zcoef) * ( gdept _n(ji,jj,jk-1) + e3w_n(ji,jj,jk))359 gdepw(ji,jj,jk,Kmm) = gdepw(ji,jj,jk-1,Kmm) + e3t(ji,jj,jk-1,Kmm) 360 gdept(ji,jj,jk,Kmm) = zcoef * ( gdepw(ji,jj,jk ,Kmm) + 0.5 * e3w(ji,jj,jk,Kmm)) & 361 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm)) 359 362 END DO 360 363 END DO 361 364 END DO 362 365 363 gdept _b(:,:,:) = gdept_n(:,:,:)364 gdepw _b(:,:,:) = gdepw_n(:,:,:)366 gdept(:,:,:,Kbb) = gdept(:,:,:,Kmm) 367 gdepw(:,:,:,Kbb) = gdepw(:,:,:,Kmm) 365 368 ! 366 369 ENDIF … … 393 396 h_rnf(ji,jj) = 0._wp 394 397 DO jk = 1, nk_rnf(ji,jj) 395 h_rnf(ji,jj) = h_rnf(ji,jj) + e3t _n(ji,jj,jk)398 h_rnf(ji,jj) = h_rnf(ji,jj) + e3t(ji,jj,jk,Kmm) 396 399 END DO 397 400 END DO … … 399 402 ELSE ! runoffs applied at the surface 400 403 nk_rnf(:,:) = 1 401 h_rnf (:,:) = e3t _n(:,:,1)404 h_rnf (:,:) = e3t(:,:,1,Kmm) 402 405 ENDIF 403 406 nkrnf_max = MAXVAL( nk_rnf(:,:) ) … … 411 414 IF(lwp) WRITE(numout,*) ' ' 412 415 ! 413 CALL dta_dyn( nit000 )416 CALL dta_dyn( nit000, Kbb, Kmm, Kaa ) 414 417 ! 415 418 END SUBROUTINE dta_dyn_init 416 419 417 SUBROUTINE dta_dyn_sed( kt )420 SUBROUTINE dta_dyn_sed( kt, Kmm ) 418 421 !!---------------------------------------------------------------------- 419 422 !! *** ROUTINE dta_dyn *** … … 427 430 !!---------------------------------------------------------------------- 428 431 INTEGER, INTENT(in) :: kt ! ocean time-step index 432 INTEGER, INTENT(in) :: Kmm ! ocean time level index 429 433 ! 430 434 !!---------------------------------------------------------------------- … … 439 443 CALL fld_read( kt, 1, sf_dyn ) != read data at kt time step ==! 440 444 ! 441 ts n(:,:,:,jp_tem) = sf_dyn(jf_tem)%fnow(:,:,:) * tmask(:,:,:) ! temperature442 ts n(:,:,:,jp_sal) = sf_dyn(jf_sal)%fnow(:,:,:) * tmask(:,:,:) ! salinity443 ! 444 CALL eos ( ts n, rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop445 ts(:,:,:,jp_tem,Kmm) = sf_dyn(jf_tem)%fnow(:,:,:) * tmask(:,:,:) ! temperature 446 ts(:,:,:,jp_sal,Kmm) = sf_dyn(jf_sal)%fnow(:,:,:) * tmask(:,:,:) ! salinity 447 ! 448 CALL eos ( ts(:,:,:,:,Kmm), rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 445 449 446 450 IF(ln_ctl) THEN ! print control 447 CALL prt_ctl(tab3d_1=ts n(:,:,:,jp_tem), clinfo1=' tn - : ', mask1=tmask, kdim=jpk )448 CALL prt_ctl(tab3d_1=ts n(:,:,:,jp_sal), clinfo1=' sn - : ', mask1=tmask, kdim=jpk )451 CALL prt_ctl(tab3d_1=ts(:,:,:,jp_tem,Kmm), clinfo1=' tn - : ', mask1=tmask, kdim=jpk ) 452 CALL prt_ctl(tab3d_1=ts(:,:,:,jp_sal,Kmm), clinfo1=' sn - : ', mask1=tmask, kdim=jpk ) 449 453 ENDIF 450 454 ! … … 454 458 455 459 456 SUBROUTINE dta_dyn_sed_init 460 SUBROUTINE dta_dyn_sed_init( Kmm ) 457 461 !!---------------------------------------------------------------------- 458 462 !! *** ROUTINE dta_dyn_init *** … … 461 465 !! ** Method : - read the data namdta_dyn namelist 462 466 !!---------------------------------------------------------------------- 467 INTEGER, INTENT( in ) :: Kmm ! ocean time level index 468 ! 463 469 INTEGER :: ierr, ierr0, ierr1, ierr2, ierr3 ! return error code 464 470 INTEGER :: ifpr ! dummy loop indice … … 525 531 END DO 526 532 ! 527 CALL dta_dyn_sed( nit000 )533 CALL dta_dyn_sed( nit000, Kmm ) 528 534 ! 529 535 END SUBROUTINE dta_dyn_sed_init 530 536 531 SUBROUTINE dta_dyn_swp( kt )537 SUBROUTINE dta_dyn_swp( kt, Kbb, Kmm, Kaa ) 532 538 !!--------------------------------------------------------------------- 533 539 !! *** ROUTINE dta_dyn_swp *** … … 536 542 !! at U/V/W pointand the depht 537 543 !!--------------------------------------------------------------------- 538 INTEGER, INTENT(in) :: kt ! time step 544 INTEGER, INTENT(in) :: kt ! time step 545 INTEGER, INTENT(in) :: Kbb, Kmm, Kaa ! ocean time level indices 539 546 ! 540 547 INTEGER :: ji, jj, jk … … 548 555 ENDIF 549 556 550 ssh b(:,:) = sshn(:,:) + atfp * ( sshb(:,:) - 2 * sshn(:,:) + ssha(:,:)) ! before <-- now filtered551 ssh n(:,:) = ssha(:,:)552 553 e3t _n(:,:,:) = e3t_a(:,:,:)557 ssh(:,:,Kbb) = ssh(:,:,Kmm) + atfp * ( ssh(:,:,Kbb) - 2 * ssh(:,:,Kmm) + ssh(:,:,Kaa)) ! before <-- now filtered 558 ssh(:,:,Kmm) = ssh(:,:,Kaa) 559 560 e3t(:,:,:,Kmm) = e3t(:,:,:,Kaa) 554 561 555 562 ! Reconstruction of all vertical scale factors at now and before time steps … … 558 565 ! Horizontal scale factor interpolations 559 566 ! -------------------------------------- 560 CALL dom_vvl_interpol( e3t _n(:,:,:), e3u_n(:,:,:), 'U' )561 CALL dom_vvl_interpol( e3t _n(:,:,:), e3v_n(:,:,:), 'V' )567 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 568 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 562 569 563 570 ! Vertical scale factor interpolations 564 571 ! ------------------------------------ 565 CALL dom_vvl_interpol( e3t _n(:,:,:), e3w_n (:,:,:), 'W' )566 567 e3t _b(:,:,:) = e3t_n(:,:,:)568 e3u _b(:,:,:) = e3u_n(:,:,:)569 e3v _b(:,:,:) = e3v_n(:,:,:)572 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W' ) 573 574 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 575 e3u(:,:,:,Kbb) = e3u(:,:,:,Kmm) 576 e3v(:,:,:,Kbb) = e3v(:,:,:,Kmm) 570 577 571 578 ! t- and w- points depth 572 579 ! ---------------------- 573 gdept _n(:,:,1) = 0.5_wp * e3w_n(:,:,1)574 gdepw _n(:,:,1) = 0.0_wp580 gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 581 gdepw(:,:,1,Kmm) = 0.0_wp 575 582 ! 576 583 DO jk = 2, jpk … … 578 585 DO ji = 1,jpi 579 586 zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk)) 580 gdepw _n(ji,jj,jk) = gdepw_n(ji,jj,jk-1) + e3t_n(ji,jj,jk-1)581 gdept _n(ji,jj,jk) = zcoef * ( gdepw_n(ji,jj,jk ) + 0.5 * e3w_n(ji,jj,jk)) &582 & + (1-zcoef) * ( gdept _n(ji,jj,jk-1) + e3w_n(ji,jj,jk))587 gdepw(ji,jj,jk,Kmm) = gdepw(ji,jj,jk-1,Kmm) + e3t(ji,jj,jk-1,Kmm) 588 gdept(ji,jj,jk,Kmm) = zcoef * ( gdepw(ji,jj,jk ,Kmm) + 0.5 * e3w(ji,jj,jk,Kmm)) & 589 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm)) 583 590 END DO 584 591 END DO 585 592 END DO 586 593 ! 587 gdept _b(:,:,:) = gdept_n(:,:,:)588 gdepw _b(:,:,:) = gdepw_n(:,:,:)594 gdept(:,:,:,Kbb) = gdept(:,:,:,Kmm) 595 gdepw(:,:,:,Kbb) = gdepw(:,:,:,Kmm) 589 596 ! 590 597 END SUBROUTINE dta_dyn_swp … … 595 602 !! *** ROUTINE dta_dyn_wzv *** 596 603 !! 597 !! ** Purpose : compute the after ssh (ssh a) and the now vertical velocity604 !! ** Purpose : compute the after ssh (ssh(:,:,Kaa)) and the now vertical velocity 598 605 !! 599 606 !! ** Method : Using the incompressibility hypothesis, … … 608 615 !! The boundary conditions are w=0 at the bottom (no flux) 609 616 !! 610 !! ** action : ssh a / e3t_a / wn617 !! ** action : ssh(:,:,Kaa) / e3t(:,:,:,Kaa) / ww 611 618 !! 612 619 !! Reference : Leclair, M., and G. Madec, 2009, Ocean Modelling. … … 641 648 642 649 643 SUBROUTINE dta_dyn_hrnf 650 SUBROUTINE dta_dyn_hrnf( Kmm ) 644 651 !!---------------------------------------------------------------------- 645 652 !! *** ROUTINE sbc_rnf *** … … 654 661 !!---------------------------------------------------------------------- 655 662 !! 656 INTEGER :: ji, jj, jk ! dummy loop indices 663 INTEGER, INTENT(in) :: Kmm ! ocean time level index 664 ! 665 INTEGER :: ji, jj, jk ! dummy loop indices 657 666 !!---------------------------------------------------------------------- 658 667 ! … … 661 670 h_rnf(ji,jj) = 0._wp 662 671 DO jk = 1, nk_rnf(ji,jj) ! recalculates h_rnf to be the depth in metres 663 h_rnf(ji,jj) = h_rnf(ji,jj) + e3t _n(ji,jj,jk) ! to the bottom of the relevant grid box672 h_rnf(ji,jj) = h_rnf(ji,jj) + e3t(ji,jj,jk,Kmm) ! to the bottom of the relevant grid box 664 673 END DO 665 674 END DO -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OFF/nemogcm.F90
r10905 r10921 117 117 CALL iom_setkt ( istp - nit000 + 1, cxios_context ) ! say to iom that we are at time step kstp 118 118 #if defined key_sed_off 119 CALL dta_dyn_sed( istp )! Interpolation of the dynamical fields119 CALL dta_dyn_sed( istp, Nnn ) ! Interpolation of the dynamical fields 120 120 #else 121 CALL dta_dyn ( istp )! Interpolation of the dynamical fields122 IF( .NOT.ln_linssh ) CALL dta_dyn_swp( istp )! swap of sea surface height and vertical scale factors121 CALL dta_dyn ( istp, Nbb, Nnn, Naa ) ! Interpolation of the dynamical fields 122 IF( .NOT.ln_linssh ) CALL dta_dyn_swp( istp, Nbb, Nnn, Naa ) ! swap of sea surface height and vertical scale factors 123 123 #endif 124 CALL trc_stp ( istp, Nbb, Nnn, Nrhs, Naa ) 124 CALL trc_stp ( istp, Nbb, Nnn, Nrhs, Naa ) ! time-stepping 125 125 CALL stp_ctl ( istp, indic ) ! Time loop: control and print 126 126 istp = istp + 1 … … 331 331 CALL trc_rst_cal( nit000, 'READ' ) ! calendar 332 332 #if defined key_sed_off 333 CALL dta_dyn_sed_init ! Initialization for the dynamics333 CALL dta_dyn_sed_init( Nnn ) ! Initialization for the dynamics 334 334 #else 335 CALL dta_dyn_init ! Initialization for the dynamics335 CALL dta_dyn_init( Nbb, Nnn, Naa ) ! Initialization for the dynamics 336 336 #endif 337 337
Note: See TracChangeset
for help on using the changeset viewer.