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 4105 for branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90 – NEMO

Ignore:
Timestamp:
2013-10-22T16:47:27+02:00 (11 years ago)
Author:
acc
Message:

Branch 2013/dev_r3858_NOC_ZTC, #863. Port across time-stepping changes from dev_r3867_MERCATOR1_DYN branch. Part 1: modules totally independent of ztilde changes (chiefly BDY stuff).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90

    r3851 r4105  
    2929   USE iom             ! IOM library 
    3030   USE in_out_manager  ! I/O logical units 
     31   USE dynspg_oce, ONLY: lk_dynspg_ts ! Split-explicit free surface flag 
    3132#if defined key_lim2 
    3233   USE ice_2 
     
    9394         CALL wrk_alloc(jpi,jpj,pu2d,pv2d)  
    9495 
    95          pu2d(:,:) = 0.e0 
    96          pv2d(:,:) = 0.e0 
     96         pu2d(:,:) = 0._wp 
     97         pv2d(:,:) = 0._wp 
    9798 
    9899         DO ik = 1, jpkm1   !! Vertically integrated momentum trends 
     
    195196               IF( nn_dyn2d(ib_bdy) .gt. 0 ) THEN 
    196197                  IF( nn_dyn2d_dta(ib_bdy) .eq. 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 
    197                      dta_bdy(ib_bdy)%ssh(:) = 0.0 
    198                      dta_bdy(ib_bdy)%u2d(:) = 0.0 
    199                      dta_bdy(ib_bdy)%v2d(:) = 0.0 
     198                     dta_bdy(ib_bdy)%ssh(:) = 0._wp 
     199                     dta_bdy(ib_bdy)%u2d(:) = 0._wp 
     200                     dta_bdy(ib_bdy)%v2d(:) = 0._wp 
    200201                  ENDIF 
    201202                  IF (nn_tra(ib_bdy).ne.4) THEN 
     
    216217 
    217218                           igrd = 2                      ! zonal velocity 
    218                            dta_bdy(ib_bdy)%u2d(:) = 0.0 
     219                           dta_bdy(ib_bdy)%u2d(:) = 0._wp 
    219220                           DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
    220221                              ii   = idx_bdy(ib_bdy)%nbi(ib,igrd) 
     
    230231                           END DO 
    231232                           igrd = 3                      ! meridional velocity 
    232                            dta_bdy(ib_bdy)%v2d(:) = 0.0 
     233                           dta_bdy(ib_bdy)%v2d(:) = 0._wp 
    233234                           DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
    234235                              ii   = idx_bdy(ib_bdy)%nbi(ib,igrd) 
     
    272273               ELSE 
    273274                  IF( nn_dyn2d(ib_bdy) .gt. 0 .and. nn_dyn2d_dta(ib_bdy) .eq. 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 
    274                      dta_bdy(ib_bdy)%ssh(:) = 0.0 
    275                      dta_bdy(ib_bdy)%u2d(:) = 0.0 
    276                      dta_bdy(ib_bdy)%v2d(:) = 0.0 
     275                     dta_bdy(ib_bdy)%ssh(:) = 0._wp 
     276                     dta_bdy(ib_bdy)%u2d(:) = 0._wp 
     277                     dta_bdy(ib_bdy)%v2d(:) = 0._wp 
    277278                  ENDIF 
    278279                  IF( nb_bdy_fld(ib_bdy) .gt. 0 ) THEN ! update external data 
     
    286287                    &   nn_dyn3d_dta(ib_bdy) .EQ. 1 ) ) THEN 
    287288                     igrd = 2                      ! zonal velocity 
    288                      dta_bdy(ib_bdy)%u2d(:) = 0.0 
     289                     dta_bdy(ib_bdy)%u2d(:) = 0._wp 
    289290                     DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
    290291                        ii   = idx_bdy(ib_bdy)%nbi(ib,igrd) 
     
    300301                     END DO 
    301302                     igrd = 3                      ! meridional velocity 
    302                      dta_bdy(ib_bdy)%v2d(:) = 0.0 
     303                     dta_bdy(ib_bdy)%v2d(:) = 0._wp 
    303304                     DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
    304305                        ii   = idx_bdy(ib_bdy)%nbi(ib,igrd) 
     
    314315                     END DO 
    315316                  ENDIF 
    316                   IF( nn_dyn2d(ib_bdy) .gt. 0 .and. nn_dyn2d_dta(ib_bdy) .ge. 2 ) THEN ! update tidal harmonic forcing 
    317                      CALL bdytide_update( kt=kt, idx=idx_bdy(ib_bdy), dta=dta_bdy(ib_bdy),  & 
    318                                         & td=tides(ib_bdy), time_offset=time_offset ) 
    319                   ENDIF 
    320317               ENDIF 
    321318            ENDIF 
     
    324321      END DO  ! ib_bdy 
    325322 
     323#if defined key_tide 
     324      ! Add tides if not split-explicit free surface else this is done in ts loop 
     325      IF (.NOT.lk_dynspg_ts) CALL bdy_dta_tides( kt=kt, time_offset=time_offset ) 
     326#endif 
    326327      IF ( ln_apr_obc ) THEN 
    327328         DO ib_bdy = 1, nb_bdy 
     
    476477            IF( nn_dyn2d(ib_bdy) .gt. 0 .and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) THEN  
    477478 
    478                IF( nn_tra(ib_bdy) .ne. 4 ) THEN ! runoff condition : no ssh reading 
     479               IF( nn_dyn2d(ib_bdy) .ne. jp_frs .and. nn_tra(ib_bdy) .ne. 4 ) THEN ! runoff condition : no ssh reading 
    479480                  jfld = jfld + 1 
    480481                  blf_i(jfld) = bn_ssh 
     
    572573            ! Recalculate field counts 
    573574            !------------------------- 
    574             nb_bdy_fld_sum = 0 
    575575            IF( ib_bdy .eq. 1 ) THEN  
     576               nb_bdy_fld_sum = 0 
    576577               nb_bdy_fld(ib_bdy) = jfld 
    577578               nb_bdy_fld_sum     = jfld               
     
    616617               ALLOCATE( dta_bdy(ib_bdy)%u2d(ilen0(2)) ) 
    617618               ALLOCATE( dta_bdy(ib_bdy)%v2d(ilen0(3)) ) 
    618                IF (nn_dyn2d_dta(ib_bdy).eq.1.or.nn_dyn2d_dta(ib_bdy).eq.3) THEN 
     619               IF ( nn_dyn2d(ib_bdy) .ne. jp_frs .and. (nn_dyn2d_dta(ib_bdy).eq.1.or.nn_dyn2d_dta(ib_bdy).eq.3) ) THEN 
    619620                  jfld = jfld + 1 
    620621                  dta_bdy(ib_bdy)%ssh => bf(jfld)%fnow(:,1,1) 
Note: See TracChangeset for help on using the changeset viewer.