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 8586 for branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/DYN – NEMO

Ignore:
Timestamp:
2017-10-04T09:19:23+02:00 (7 years ago)
Author:
gm
Message:

#1911 (ENHANCE-09): PART I.3 - phasing with branch dev_r8183_ICEMODEL revision 8575

Location:
branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/DYN
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/DYN/divhor.F90

    r8568 r8586  
    8181            END DO   
    8282         END DO   
    83          IF( .NOT. AGRIF_Root() ) THEN 
    84             IF( nbondi ==  1 .OR. nbondi == 2 )   hdivn(nlci-1,   :  ,jk) = 0._wp      ! east 
    85             IF( nbondi == -1 .OR. nbondi == 2 )   hdivn(  2   ,   :  ,jk) = 0._wp      ! west 
    86             IF( nbondj ==  1 .OR. nbondj == 2 )   hdivn(  :   ,nlcj-1,jk) = 0._wp      ! north 
    87             IF( nbondj == -1 .OR. nbondj == 2 )   hdivn(  :   ,  2   ,jk) = 0._wp      ! south 
    88          ENDIF 
    8983      END DO 
     84#if defined key_agrif 
     85      IF( .NOT. Agrif_Root() ) THEN 
     86         IF( nbondi == -1 .OR. nbondi == 2 )   hdivn( 2:nbghostcells+1,:        ,:) = 0._wp      ! west 
     87         IF( nbondi ==  1 .OR. nbondi == 2 )   hdivn( nlci-nbghostcells:nlci-1,:,:) = 0._wp      ! east 
     88         IF( nbondj == -1 .OR. nbondj == 2 )   hdivn( :,2:nbghostcells+1        ,:) = 0._wp      ! south 
     89         IF( nbondj ==  1 .OR. nbondj == 2 )   hdivn( :,nlcj-nbghostcells:nlcj-1,:) = 0._wp      ! north 
     90      ENDIF 
     91#endif 
    9092      ! 
    9193      IF( ln_rnf )   CALL sbc_rnf_div( hdivn )              !==  runoffs    ==!   (update hdivn field) 
  • branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90

    r8568 r8586  
    1717   USE phycst         ! physical constants 
    1818   USE sbc_oce        ! surface boundary condition: ocean 
     19   USE sbc_ice , ONLY : snwice_mass, snwice_mass_b 
    1920   USE sbcapr         ! surface boundary condition: atmospheric pressure 
    2021   USE dynspg_exp     ! surface pressure gradient     (dyn_spg_exp routine) 
     
    7071      !!             period is used to prevent the divergence of odd and even time step. 
    7172      !!---------------------------------------------------------------------- 
    72       INTEGER, INTENT(in   ) ::   kt   ! ocean time-step index 
     73      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    7374      ! 
    7475      INTEGER  ::   ji, jj, jk                   ! dummy loop indices 
     
    8889      IF(      ln_apr_dyn                                                &   ! atmos. pressure 
    8990         .OR.  ( .NOT.ln_dynspg_ts .AND. (ln_tide_pot .AND. ln_tide) )   &   ! tide potential (no time slitting) 
    90          .OR.  nn_ice_embd == 2  ) THEN                                      ! embedded sea-ice 
     91         .OR.  ln_ice_embd ) THEN                                            ! embedded sea-ice 
    9192         ! 
    9293         DO jj = 2, jpjm1 
     
    102103               DO ji = fs_2, fs_jpim1   ! vector opt. 
    103104                  spgu(ji,jj) = spgu(ji,jj) + zg_2 * (  ssh_ib (ji+1,jj) - ssh_ib (ji,jj)    & 
    104                      &                      + ssh_ibb(ji+1,jj) - ssh_ibb(ji,jj)  ) * r1_e1u(ji,jj) 
     105                     &                                + ssh_ibb(ji+1,jj) - ssh_ibb(ji,jj)  ) * r1_e1u(ji,jj) 
    105106                  spgv(ji,jj) = spgv(ji,jj) + zg_2 * (  ssh_ib (ji,jj+1) - ssh_ib (ji,jj)    & 
    106                      &                      + ssh_ibb(ji,jj+1) - ssh_ibb(ji,jj)  ) * r1_e2v(ji,jj) 
     107                     &                                + ssh_ibb(ji,jj+1) - ssh_ibb(ji,jj)  ) * r1_e2v(ji,jj) 
    107108               END DO 
    108109            END DO 
     
    122123         ENDIF 
    123124         ! 
    124          IF( nn_ice_embd == 2 ) THEN          !== embedded sea ice: Pressure gradient due to snow-ice mass ==! 
     125         IF( ln_ice_embd ) THEN              !== embedded sea ice: Pressure gradient due to snow-ice mass ==! 
    125126            ALLOCATE( zpice(jpi,jpj) ) 
    126127            zintp = REAL( MOD( kt-1, nn_fsbc ) ) / REAL( nn_fsbc ) 
  • branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r8568 r8586  
    206206            DO ji = fs_2, fs_jpim1   ! vector opt. 
    207207               zCdU_u(ji,jj) = 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) + rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) 
    208                zCdU_v(ji,jj) = 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) + rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) 
     208               zCdU_v(ji,jj) = 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) + rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) 
    209209            END DO 
    210210         END DO 
     
    504504         END DO 
    505505      ELSE 
    506          DO jj = 2, jpjm1                           
     506         DO jj = 2, jpjm1 
    507507            DO ji = fs_2, fs_jpim1   ! vector opt. 
    508508               zu_frc(ji,jj) = zu_frc(ji,jj) + r1_hu_n(ji,jj) * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) * zwx(ji,jj) 
     
    510510            END DO 
    511511         END DO 
    512       END IF 
     512      ENDIF 
    513513      ! 
    514514      IF( ln_isfcav ) THEN       ! Add TOP stress contribution from baroclinic velocities:       
     
    715715         IF( .NOT.Agrif_Root() .AND. ln_bt_fw ) THEN 
    716716            IF((nbondi == -1).OR.(nbondi == 2)) THEN 
    717                DO jj=1,jpj 
    718                   zwx(2,jj) = ubdy_w(jj) * e2u(2,jj) 
     717               DO jj = 1, jpj 
     718                  zwx(2:nbghostcells+1,jj) = ubdy_w(jj) * e2u(2:nbghostcells+1,jj) 
    719719               END DO 
    720720            ENDIF 
    721721            IF((nbondi ==  1).OR.(nbondi == 2)) THEN 
    722722               DO jj=1,jpj 
    723                   zwx(nlci-2,jj) = ubdy_e(jj) * e2u(nlci-2,jj) 
     723                  zwx(nlci-nbghostcells-1:nlci-2,jj) = ubdy_e(jj) * e2u(nlci-nbghostcells-1:nlci-2,jj) 
    724724               END DO 
    725725            ENDIF 
    726726            IF((nbondj == -1).OR.(nbondj == 2)) THEN 
    727727               DO ji=1,jpi 
    728                   zwy(ji,2) = vbdy_s(ji) * e1v(ji,2) 
     728                  zwy(ji,2:nbghostcells+1) = vbdy_s(ji) * e1v(ji,2:nbghostcells+1) 
    729729               END DO 
    730730            ENDIF 
    731731            IF((nbondj ==  1).OR.(nbondj == 2)) THEN 
    732732               DO ji=1,jpi 
    733                   zwy(ji,nlcj-2) = vbdy_n(ji) * e1v(ji,nlcj-2) 
     733                  zwy(ji,nlcj-nbghostcells-1:nlcj-2) = vbdy_n(ji) * e1v(ji,nlcj-nbghostcells-1:nlcj-2) 
    734734               END DO 
    735735            ENDIF 
     
    915915         ENDIF 
    916916         ! 
    917          DO jj = 2, jpjm1 
    918             DO ji = fs_2, fs_jpim1   ! vector opt. 
    919                ! Add top/bottom stresses: 
    920 !!gm old/new 
     917         DO jj = 2, jpjm1               ! Add top/bottom stresses: 
     918            DO ji = fs_2, fs_jpim1   ! vector opt. 
    921919               zu_trd(ji,jj) = zu_trd(ji,jj) + zCdU_u(ji,jj) * un_e(ji,jj) * hur_e(ji,jj) 
    922920               zv_trd(ji,jj) = zv_trd(ji,jj) + zCdU_v(ji,jj) * vn_e(ji,jj) * hvr_e(ji,jj) 
    923 !!gm 
    924921            END DO 
    925922         END DO 
    926923         ! 
    927924         ! Surface pressure trend: 
    928  
    929925         IF( ln_wd ) THEN 
    930926           DO jj = 2, jpjm1 
  • branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r8568 r8586  
    184184      !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 
    185185      !!---------------------------------------------------------------------- 
    186       INTEGER                          , INTENT(in   )::   kt          ! ocean time-step index 
    187       INTEGER                          , INTENT(in   )::   kvor        ! total, planetary, relative, or metric 
     186      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
     187      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    188188      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
    189189      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
     
    301301      !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 
    302302      !!---------------------------------------------------------------------- 
    303       INTEGER                          , INTENT(in   )::   kt          ! ocean time-step index 
    304       INTEGER                          , INTENT(in   )::   kvor        ! total, planetary, relative, or metric 
     303      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
     304      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    305305      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
    306306      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
     
    414414      !! References : Arakawa and Lamb 1980, Mon. Wea. Rev., 109, 18-36 
    415415      !!---------------------------------------------------------------------- 
    416       INTEGER                          , INTENT(in   )::   kt          ! ocean time-step index 
    417       INTEGER                          , INTENT(in   )::   kvor        ! total, planetary, relative, or metric 
     416      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
     417      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    418418      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
    419419      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
  • branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf.F90

    r8568 r8586  
    6666      !! ** Action :   (ua,va)   after velocity  
    6767      !!--------------------------------------------------------------------- 
    68       INTEGER , INTENT(in) ::  kt     ! ocean time-step index 
     68      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    6969      ! 
    7070      INTEGER  ::   ji, jj, jk         ! dummy loop indices 
  • branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/DYN/wet_dry.F90

    r8568 r8586  
    244244      !IF( ln_rnf      )   CALL sbc_rnf_div( hdivn )          ! runoffs (update hdivn field) 
    245245      !IF( nn_cla == 1 )   CALL cla_div    ( kt )             ! Cross Land Advection (update hdivn field) 
    246       ! 
    247246      ! 
    248247      ! 
Note: See TracChangeset for help on using the changeset viewer.