New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 10921 – NEMO

Changeset 10921


Ignore:
Timestamp:
2019-05-01T12:56:55+02:00 (5 years ago)
Author:
davestorkey
Message:

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : finish conversion of OFF

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  
    9494CONTAINS 
    9595 
    96    SUBROUTINE dta_dyn( kt ) 
     96   SUBROUTINE dta_dyn( kt, Kbb, Kmm, Kaa ) 
    9797      !!---------------------------------------------------------------------- 
    9898      !!                  ***  ROUTINE dta_dyn  *** 
     
    105105      !!             - interpolates data if needed 
    106106      !!---------------------------------------------------------------------- 
    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 
    108109      ! 
    109110      INTEGER             ::   ji, jj, jk 
     
    123124      IF( l_ldfslp .AND. .NOT.lk_c1d )   CALL  dta_dyn_slp( kt )    ! Computation of slopes 
    124125      ! 
    125       tsn(:,:,:,jp_tem) = sf_dyn(jf_tem)%fnow(:,:,:)  * tmask(:,:,:)    ! temperature 
    126       tsn(:,:,:,jp_sal) = sf_dyn(jf_sal)%fnow(:,:,:)  * tmask(:,:,:)    ! salinity 
     126      ts(:,:,:,jp_tem,Kmm) = sf_dyn(jf_tem)%fnow(:,:,:)  * tmask(:,:,:)    ! temperature 
     127      ts(:,:,:,jp_sal,Kmm) = sf_dyn(jf_sal)%fnow(:,:,:)  * tmask(:,:,:)    ! salinity 
    127128      wndm(:,:)         = sf_dyn(jf_wnd)%fnow(:,:,1)  * tmask(:,:,1)    ! wind speed - needed for gas exchange 
    128129      fmmflx(:,:)       = sf_dyn(jf_fmf)%fnow(:,:,1)  * tmask(:,:,1)    ! downward salt flux (v3.5+) 
     
    132133      IF( ln_dynrnf ) THEN  
    133134         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       un(:,:,:)        = sf_dyn(jf_uwd)%fnow(:,:,:) * umask(:,:,:)    ! effective u-transport 
    138       vn(:,:,:)        = sf_dyn(jf_vwd)%fnow(:,:,:) * vmask(:,:,:)    ! effective v-transport 
    139       wn(:,:,:)        = sf_dyn(jf_wwd)%fnow(:,:,:) * tmask(:,:,:)    ! effective v-transport 
     135         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 
    140141      ! 
    141142      IF( .NOT.ln_linssh ) THEN 
     
    144145         emp_b  (:,:)   = sf_dyn(jf_empb)%fnow(:,:,1) * tmask(:,:,1)    ! E-P 
    145146         zemp   (:,:)   = ( 0.5_wp * ( emp(:,:) + emp_b(:,:) ) + rnf(:,:) + fwbcorr ) * tmask(:,:,1) 
    146          CALL dta_dyn_ssh( kt, zhdivtr, sshb, zemp, ssha, e3t_a(:,:,:) )  !=  ssh, vertical scale factor & vertical transport 
     147         CALL dta_dyn_ssh( kt, zhdivtr, ssh(:,:,Kbb), zemp, ssh(:,:,Kaa), e3t(:,:,:,Kaa) )  !=  ssh, vertical scale factor & vertical transport 
    147148         DEALLOCATE( zemp , zhdivtr ) 
    148149         !                                           Write in the tracer restart file 
     
    152153            IF(lwp) WRITE(numout,*) 'dta_dyn_ssh : ssh field written in tracer restart file at it= ', kt,' date= ', ndastp 
    153154            IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    154             CALL iom_rstput( kt, nitrst, numrtw, 'sshn', ssha ) 
    155             CALL iom_rstput( kt, nitrst, numrtw, 'sshb', sshn ) 
     155            CALL iom_rstput( kt, nitrst, numrtw, 'sshn', ssh(:,:,Kaa) ) 
     156            CALL iom_rstput( kt, nitrst, numrtw, 'sshb', ssh(:,:,Kmm) ) 
    156157         ENDIF 
    157158      ENDIF 
    158159      ! 
    159       CALL eos    ( tsn, rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 
    160       CALL eos_rab( tsn, rab_n )       ! now    local thermal/haline expension ratio at T-points 
    161       CALL bn2    ( tsn, rab_n, rn2 ) ! before Brunt-Vaisala frequency need for zdfmxl 
     160      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 
    162163 
    163164      rn2b(:,:,:) = rn2(:,:,:)         ! need for zdfmxl 
     
    174175      ! 
    175176      ! 
    176       CALL eos( tsn, rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 
     177      CALL eos( ts(:,:,:,:,Kmm), rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 
    177178      ! 
    178179      IF(ln_ctl) THEN                  ! print control 
    179          CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_tem), clinfo1=' tn      - : ', mask1=tmask,  kdim=jpk   ) 
    180          CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_sal), clinfo1=' sn      - : ', mask1=tmask,  kdim=jpk   ) 
    181          CALL prt_ctl(tab3d_1=un               , clinfo1=' un      - : ', mask1=umask,  kdim=jpk   ) 
    182          CALL prt_ctl(tab3d_1=vn               , clinfo1=' vn      - : ', mask1=vmask,  kdim=jpk   ) 
    183          CALL prt_ctl(tab3d_1=wn               , clinfo1=' wn      - : ', 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   ) 
    184185         CALL prt_ctl(tab3d_1=avt              , clinfo1=' kz      - : ', mask1=tmask,  kdim=jpk   ) 
    185186         CALL prt_ctl(tab3d_1=uslp             , clinfo1=' slp  - u : ', tab3d_2=vslp, clinfo2=' v : ', kdim=jpk) 
     
    192193 
    193194 
    194    SUBROUTINE dta_dyn_init 
     195   SUBROUTINE dta_dyn_init( Kbb, Kmm, Kaa ) 
    195196      !!---------------------------------------------------------------------- 
    196197      !!                  ***  ROUTINE dta_dyn_init  *** 
     
    199200      !! ** Method  : - read the data namdta_dyn namelist 
    200201      !!---------------------------------------------------------------------- 
     202      INTEGER, INTENT(in) ::   Kbb, Kmm, Kaa  ! ocean time level indices 
     203      ! 
    201204      INTEGER  :: ierr, ierr0, ierr1, ierr2, ierr3   ! return error code 
    202205      INTEGER  :: ifpr                               ! dummy loop indice 
     
    312315        IF( .NOT. sf_dyn(jf_uwd)%ln_clim .AND. ln_rsttr .AND.    &                     ! Restart: read in restart file 
    313316           iom_varid( numrtr, 'sshn', ldstop = .FALSE. ) > 0 ) THEN 
    314            IF(lwp) WRITE(numout,*) ' sshn forcing fields read in the restart file for initialisation' 
    315            CALL iom_get( numrtr, jpdom_autoglo, 'sshn', sshn(:,:)   ) 
    316            CALL iom_get( numrtr, jpdom_autoglo, 'sshb', sshb(:,:)   ) 
     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)   ) 
    317320        ELSE 
    318            IF(lwp) WRITE(numout,*) ' sshn forcing fields read in the restart file for initialisation' 
     321           IF(lwp) WRITE(numout,*) ' ssh(:,:,Kmm) forcing fields read in the restart file for initialisation' 
    319322           CALL iom_open( 'restart', inum ) 
    320            CALL iom_get( inum, jpdom_autoglo, 'sshn', sshn(:,:)   ) 
    321            CALL iom_get( inum, jpdom_autoglo, 'sshb', sshb(:,:)   ) 
     323           CALL iom_get( inum, jpdom_autoglo, 'sshn', ssh(:,:,Kmm)   ) 
     324           CALL iom_get( inum, jpdom_autoglo, 'sshb', ssh(:,:,Kbb)   ) 
    322325           CALL iom_close( inum )                                        ! close file 
    323326        ENDIF 
    324327        ! 
    325328        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) ) ) 
    327330        ENDDO 
    328         e3t_a(:,:,jpk) = e3t_0(:,:,jpk) 
     331        e3t(:,:,jpk,Kaa) = e3t_0(:,:,jpk) 
    329332 
    330333        ! Horizontal scale factor interpolations 
    331334        ! -------------------------------------- 
    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' ) 
    334337 
    335338        ! Vertical scale factor interpolations 
    336339        ! ------------------------------------ 
    337         CALL dom_vvl_interpol( e3t_n(:,:,:), e3w_n(:,:,:), 'W' ) 
     340        CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w(:,:,:,Kmm), 'W' ) 
    338341   
    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) 
    342345 
    343346        ! t- and w- points depth 
    344347        ! ---------------------- 
    345         gdept_n(:,:,1) = 0.5_wp * e3w_n(:,:,1) 
    346         gdepw_n(:,:,1) = 0.0_wp 
     348        gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 
     349        gdepw(:,:,1,Kmm) = 0.0_wp 
    347350 
    348351        DO jk = 2, jpk 
     
    354357                                                                   ! mikt 
    355358                 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)) 
    359362              END DO 
    360363           END DO 
    361364        END DO 
    362365 
    363         gdept_b(:,:,:) = gdept_n(:,:,:) 
    364         gdepw_b(:,:,:) = gdepw_n(:,:,:) 
     366        gdept(:,:,:,Kbb) = gdept(:,:,:,Kmm) 
     367        gdepw(:,:,:,Kbb) = gdepw(:,:,:,Kmm) 
    365368        ! 
    366369      ENDIF 
     
    393396               h_rnf(ji,jj) = 0._wp 
    394397               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) 
    396399               END DO 
    397400            END DO 
     
    399402      ELSE                                       ! runoffs applied at the surface 
    400403         nk_rnf(:,:) = 1 
    401          h_rnf (:,:) = e3t_n(:,:,1) 
     404         h_rnf (:,:) = e3t(:,:,1,Kmm) 
    402405      ENDIF 
    403406      nkrnf_max = MAXVAL( nk_rnf(:,:) ) 
     
    411414      IF(lwp) WRITE(numout,*) ' ' 
    412415      ! 
    413       CALL dta_dyn( nit000 ) 
     416      CALL dta_dyn( nit000, Kbb, Kmm, Kaa ) 
    414417      ! 
    415418   END SUBROUTINE dta_dyn_init 
    416419 
    417    SUBROUTINE dta_dyn_sed( kt ) 
     420   SUBROUTINE dta_dyn_sed( kt, Kmm ) 
    418421      !!---------------------------------------------------------------------- 
    419422      !!                  ***  ROUTINE dta_dyn  *** 
     
    427430      !!---------------------------------------------------------------------- 
    428431      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     432      INTEGER, INTENT(in) ::   Kmm  ! ocean time level index 
    429433      ! 
    430434      !!---------------------------------------------------------------------- 
     
    439443      CALL fld_read( kt, 1, sf_dyn )      !=  read data at kt time step   ==! 
    440444      ! 
    441       tsn(:,:,:,jp_tem) = sf_dyn(jf_tem)%fnow(:,:,:)  * tmask(:,:,:)    ! temperature 
    442       tsn(:,:,:,jp_sal) = sf_dyn(jf_sal)%fnow(:,:,:)  * tmask(:,:,:)    ! salinity 
    443       ! 
    444       CALL eos    ( tsn, rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 
     445      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 
    445449 
    446450      IF(ln_ctl) THEN                  ! print control 
    447          CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_tem), clinfo1=' tn      - : ', mask1=tmask,  kdim=jpk   ) 
    448          CALL prt_ctl(tab3d_1=tsn(:,:,:,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   ) 
    449453      ENDIF 
    450454      ! 
     
    454458 
    455459 
    456    SUBROUTINE dta_dyn_sed_init 
     460   SUBROUTINE dta_dyn_sed_init( Kmm ) 
    457461      !!---------------------------------------------------------------------- 
    458462      !!                  ***  ROUTINE dta_dyn_init  *** 
     
    461465      !! ** Method  : - read the data namdta_dyn namelist 
    462466      !!---------------------------------------------------------------------- 
     467      INTEGER, INTENT( in ) :: Kmm                   ! ocean time level index 
     468      ! 
    463469      INTEGER  :: ierr, ierr0, ierr1, ierr2, ierr3   ! return error code 
    464470      INTEGER  :: ifpr                               ! dummy loop indice 
     
    525531      END DO 
    526532      ! 
    527       CALL dta_dyn_sed( nit000 ) 
     533      CALL dta_dyn_sed( nit000, Kmm ) 
    528534      ! 
    529535   END SUBROUTINE dta_dyn_sed_init 
    530536 
    531    SUBROUTINE dta_dyn_swp( kt ) 
     537   SUBROUTINE dta_dyn_swp( kt, Kbb, Kmm, Kaa ) 
    532538     !!--------------------------------------------------------------------- 
    533539      !!                    ***  ROUTINE dta_dyn_swp  *** 
     
    536542      !!              at U/V/W pointand the depht 
    537543      !!--------------------------------------------------------------------- 
    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 
    539546      ! 
    540547      INTEGER             :: ji, jj, jk 
     
    548555      ENDIF 
    549556 
    550       sshb(:,:) = sshn(:,:) + atfp * ( sshb(:,:) - 2 * sshn(:,:) + ssha(:,:))  ! before <-- now filtered 
    551       sshn(:,:) = 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) 
    554561 
    555562      ! Reconstruction of all vertical scale factors at now and before time steps 
     
    558565      ! Horizontal scale factor interpolations 
    559566      ! -------------------------------------- 
    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' ) 
    562569 
    563570      ! Vertical scale factor interpolations 
    564571      ! ------------------------------------ 
    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) 
    570577 
    571578      ! t- and w- points depth 
    572579      ! ---------------------- 
    573       gdept_n(:,:,1) = 0.5_wp * e3w_n(:,:,1) 
    574       gdepw_n(:,:,1) = 0.0_wp 
     580      gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 
     581      gdepw(:,:,1,Kmm) = 0.0_wp 
    575582      ! 
    576583      DO jk = 2, jpk 
     
    578585            DO ji = 1,jpi 
    579586               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)) 
    583590            END DO 
    584591         END DO 
    585592      END DO 
    586593      ! 
    587       gdept_b(:,:,:) = gdept_n(:,:,:) 
    588       gdepw_b(:,:,:) = gdepw_n(:,:,:) 
     594      gdept(:,:,:,Kbb) = gdept(:,:,:,Kmm) 
     595      gdepw(:,:,:,Kbb) = gdepw(:,:,:,Kmm) 
    589596      ! 
    590597   END SUBROUTINE dta_dyn_swp 
     
    595602      !!                ***  ROUTINE dta_dyn_wzv  *** 
    596603      !!                    
    597       !! ** Purpose :   compute the after ssh (ssha) and the now vertical velocity 
     604      !! ** Purpose :   compute the after ssh (ssh(:,:,Kaa)) and the now vertical velocity 
    598605      !! 
    599606      !! ** Method  : Using the incompressibility hypothesis,  
     
    608615      !!          The boundary conditions are w=0 at the bottom (no flux) 
    609616      !! 
    610       !! ** action  :   ssha / e3t_a / wn 
     617      !! ** action  :   ssh(:,:,Kaa) / e3t(:,:,:,Kaa) / ww 
    611618      !! 
    612619      !! Reference  : Leclair, M., and G. Madec, 2009, Ocean Modelling. 
     
    641648 
    642649 
    643    SUBROUTINE dta_dyn_hrnf 
     650   SUBROUTINE dta_dyn_hrnf( Kmm ) 
    644651      !!---------------------------------------------------------------------- 
    645652      !!                  ***  ROUTINE sbc_rnf  *** 
     
    654661      !!---------------------------------------------------------------------- 
    655662      !! 
    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 
    657666      !!---------------------------------------------------------------------- 
    658667      ! 
     
    661670            h_rnf(ji,jj) = 0._wp 
    662671            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 box 
     672                h_rnf(ji,jj) = h_rnf(ji,jj) + e3t(ji,jj,jk,Kmm)   ! to the bottom of the relevant grid box 
    664673            END DO 
    665674        END DO 
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OFF/nemogcm.F90

    r10905 r10921  
    117117                                CALL iom_setkt  ( istp - nit000 + 1, cxios_context )   ! say to iom that we are at time step kstp 
    118118#if defined key_sed_off 
    119                                 CALL dta_dyn_sed( istp )         ! Interpolation of the dynamical fields 
     119                                CALL dta_dyn_sed( istp,      Nnn      )       ! Interpolation of the dynamical fields 
    120120#else 
    121                                 CALL dta_dyn    ( istp )         ! Interpolation of the dynamical fields 
    122          IF( .NOT.ln_linssh )   CALL dta_dyn_swp( istp )         ! swap of sea  surface height and vertical scale factors 
     121                                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 
    123123#endif 
    124                                 CALL trc_stp    ( istp, Nbb, Nnn, Nrhs, Naa )         ! time-stepping 
     124                                CALL trc_stp    ( istp, Nbb, Nnn, Nrhs, Naa ) ! time-stepping 
    125125                                CALL stp_ctl    ( istp, indic )  ! Time loop: control and print 
    126126         istp = istp + 1 
     
    331331                           CALL trc_rst_cal( nit000, 'READ' )   ! calendar 
    332332#if defined key_sed_off 
    333                            CALL dta_dyn_sed_init ! Initialization for the dynamics 
     333                           CALL dta_dyn_sed_init(  Nnn      )        ! Initialization for the dynamics 
    334334#else 
    335                            CALL dta_dyn_init   ! Initialization for the dynamics 
     335                           CALL dta_dyn_init( Nbb, Nnn, Naa )        ! Initialization for the dynamics 
    336336#endif 
    337337 
Note: See TracChangeset for help on using the changeset viewer.