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 4267 for branches – NEMO

Changeset 4267 for branches


Ignore:
Timestamp:
2013-11-19T23:49:00+01:00 (10 years ago)
Author:
davestorkey
Message:

Bug fixes. Now compiles with key_bdy.

Location:
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC
Files:
1 added
4 edited

Legend:

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

    r4254 r4267  
    2727      INTEGER, POINTER, DIMENSION(:,:)   ::  nbr 
    2828      INTEGER, POINTER, DIMENSION(:,:)   ::  nbmap 
    29       REAL   , POINTER, DIMENSION(:,:)   ::  nbw 
    30       REAL   , POINTER, DIMENSION(:,:)   ::  nbd 
    31       REAL   , POINTER, DIMENSION(:,:)   ::  nbdout 
    32       REAL   , POINTER, DIMENSION(:,:)   ::  flagu 
    33       REAL   , POINTER, DIMENSION(:,:)   ::  flagv 
     29      REAL(wp)   , POINTER, DIMENSION(:,:)   ::  nbw 
     30      REAL(wp)   , POINTER, DIMENSION(:,:)   ::  nbd 
     31      REAL(wp)   , POINTER, DIMENSION(:,:)   ::  nbdout 
     32      REAL(wp)   , POINTER, DIMENSION(:,:)   ::  flagu 
     33      REAL(wp)   , POINTER, DIMENSION(:,:)   ::  flagv 
    3434   END TYPE OBC_INDEX 
    3535 
     
    4848      LOGICAL                         ::  ll_tem 
    4949      LOGICAL                         ::  ll_sal 
    50       REAL, POINTER, DIMENSION(:)     ::  ssh 
    51       REAL, POINTER, DIMENSION(:)     ::  u2d 
    52       REAL, POINTER, DIMENSION(:)     ::  v2d 
    53       REAL, POINTER, DIMENSION(:,:)   ::  u3d 
    54       REAL, POINTER, DIMENSION(:,:)   ::  v3d 
    55       REAL, POINTER, DIMENSION(:,:)   ::  tem 
    56       REAL, POINTER, DIMENSION(:,:)   ::  sal 
     50      REAL(wp), POINTER, DIMENSION(:)     ::  ssh 
     51      REAL(wp), POINTER, DIMENSION(:)     ::  u2d 
     52      REAL(wp), POINTER, DIMENSION(:)     ::  v2d 
     53      REAL(wp), POINTER, DIMENSION(:,:)   ::  u3d 
     54      REAL(wp), POINTER, DIMENSION(:,:)   ::  v3d 
     55      REAL(wp), POINTER, DIMENSION(:,:)   ::  tem 
     56      REAL(wp), POINTER, DIMENSION(:,:)   ::  sal 
    5757#if defined key_lim2 
    5858      LOGICAL                         ::  ll_frld 
    5959      LOGICAL                         ::  ll_hicif 
    6060      LOGICAL                         ::  ll_hsnif 
    61       REAL, POINTER, DIMENSION(:)     ::  frld 
    62       REAL, POINTER, DIMENSION(:)     ::  hicif 
    63       REAL, POINTER, DIMENSION(:)     ::  hsnif 
     61      REAL(wp), POINTER, DIMENSION(:)     ::  frld 
     62      REAL(wp), POINTER, DIMENSION(:)     ::  hicif 
     63      REAL(wp), POINTER, DIMENSION(:)     ::  hsnif 
    6464#endif 
    6565   END TYPE OBC_DATA 
     
    9393   LOGICAL, DIMENSION(jp_bdy) ::   ln_tra_dmp               !: =T Tracer damping 
    9494   LOGICAL, DIMENSION(jp_bdy) ::   ln_dyn3d_dmp             !: =T Baroclinic velocity damping 
    95    REAL,    DIMENSION(jp_bdy) ::   rn_time_dmp              !: Damping time scale in days 
    96    REAL,    DIMENSION(jp_bdy) ::   rn_time_dmp_out          !: Damping time scale in days at radiation outflow points 
     95   REAL(wp),    DIMENSION(jp_bdy) ::   rn_time_dmp              !: Damping time scale in days 
     96   REAL(wp),    DIMENSION(jp_bdy) ::   rn_time_dmp_out          !: Damping time scale in days at radiation outflow points 
    9797 
    9898#if defined key_lim2 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn.F90

    r4254 r4267  
    6060      LOGICAL               :: ll_dyn2d, ll_dyn3d, ll_orlanski 
    6161      !! 
     62      REAL(wp), POINTER, DIMENSION(:,:) :: phur1, phvr1     ! inverse depth at u and v points 
    6263 
    6364      IF( nn_timing == 1 ) CALL timing_start('bdy_dyn') 
     
    8485      phvr => hvr 
    8586      CALL wrk_alloc(jpi,jpj,pua2d,pva2d)  
    86       IF ( ll_orlanski ) CALL wrk_alloc(jpi,jpj,pub2d,pvb2d)  
     87      IF ( ll_orlanski ) CALL wrk_alloc(jpi,jpj,pub2d,pvb2d,phur1,phvr1)  
    8788 
    8889      !------------------------------------------------------- 
     
    9697       
    9798      IF (lk_vvl) THEN 
     99         phur1(:,:) = 0. 
     100         phvr1(:,:) = 0. 
    98101         DO jk = 1, jpkm1 
     102            phur1(:,:) = phur1(:,:) + fse3u_a(:,:,jk) * umask(:,:,jk) 
     103            phvr1(:,:) = phvr1(:,:) + fse3v_a(:,:,jk) * vmask(:,:,jk) 
    99104            pua2d(:,:) = pua2d(:,:) + fse3u_a(:,:,jk) * umask(:,:,jk) * ua(:,:,jk) 
    100105            pva2d(:,:) = pva2d(:,:) + fse3v_a(:,:,jk) * vmask(:,:,jk) * va(:,:,jk) 
    101106         END DO 
    102          pua2d(:,:) = pua2d(:,:) / ( hu_0(:,:) + sshu_a(:,:) + 1._wp - umask(:,:,1) )  
    103          pva2d(:,:) = pva2d(:,:) / ( hv_0(:,:) + sshv_a(:,:) + 1._wp - vmask(:,:,1) ) 
     107         phur1(:,:) = umask(:,:,1) / ( phur1(:,:) + 1. - umask(:,:,1) ) 
     108         phvr1(:,:) = vmask(:,:,1) / ( phvr1(:,:) + 1. - vmask(:,:,1) ) 
     109         pua2d(:,:) = pua2d(:,:) * phur1(:,:) 
     110         pva2d(:,:) = pva2d(:,:) * phvr1(:,:) 
    104111      ELSE 
    105112         DO jk = 1, jpkm1 
     
    123130 
    124131         IF (lk_vvl) THEN 
     132            phur1(:,:) = 0. 
     133            phvr1(:,:) = 0. 
    125134            DO jk = 1, jpkm1   !! Vertically integrated momentum trends 
     135               phur1(:,:) = phur1(:,:) + fse3u_b(:,:,jk) * umask(:,:,jk) 
     136               phvr1(:,:) = phvr1(:,:) + fse3v_b(:,:,jk) * vmask(:,:,jk) 
    126137               pub2d(:,:) = pub2d(:,:) + fse3u_b(:,:,jk) * umask(:,:,jk) * ub(:,:,jk) 
    127138               pvb2d(:,:) = pvb2d(:,:) + fse3v_b(:,:,jk) * vmask(:,:,jk) * vb(:,:,jk) 
    128139            END DO 
    129             pub2d(:,:) = pub2d(:,:) / ( hu_0(:,:) + sshu_b(:,:) + 1._wp - umask(:,:,1) )  
    130             pvb2d(:,:) = pvb2d(:,:) / ( hv_0(:,:) + sshv_b(:,:) + 1._wp - vmask(:,:,1) ) 
     140            phur1(:,:) = umask(:,:,1) / ( phur1(:,:) + 1. - umask(:,:,1) ) 
     141            phvr1(:,:) = vmask(:,:,1) / ( phvr1(:,:) + 1. - vmask(:,:,1) ) 
     142            pub2d(:,:) = pub2d(:,:) * phur1(:,:) 
     143            pvb2d(:,:) = pvb2d(:,:) * phvr1(:,:) 
    131144         ELSE 
    132145            DO jk = 1, jpkm1   !! Vertically integrated momentum trends 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn3d.F90

    r4254 r4267  
    266266      REAL(wp) ::   zwgt           ! boundary weight 
    267267      INTEGER  ::  ib_bdy          ! loop index 
     268      REAL(wp), POINTER, DIMENSION(:,:) :: phur1, phvr1     ! inverse depth at u and v points 
    268269      !!---------------------------------------------------------------------- 
    269270      ! 
     
    273274      ! Remove barotropic part from before velocity 
    274275      !------------------------------------------------------- 
    275       CALL wrk_alloc(jpi,jpj,pub2d,pvb2d)  
     276      CALL wrk_alloc(jpi,jpj,pub2d,pvb2d,phur1,phvr1)  
    276277 
    277278      pub2d(:,:) = 0.e0 
    278279      pvb2d(:,:) = 0.e0 
    279280 
     281      phur1(:,:) = 0. 
     282      phvr1(:,:) = 0. 
    280283      DO jk = 1, jpkm1 
    281284#if defined key_vvl 
     285         phur1(:,:) = phur1(:,:) + fse3u_a(:,:,jk) * umask(:,:,jk) 
     286         phvr1(:,:) = phvr1(:,:) + fse3v_a(:,:,jk) * vmask(:,:,jk) 
    282287         pub2d(:,:) = pub2d(:,:) + fse3u_b(:,:,jk)* ub(:,:,jk)   *umask(:,:,jk)  
    283288         pvb2d(:,:) = pvb2d(:,:) + fse3v_b(:,:,jk)* vb(:,:,jk)   *vmask(:,:,jk) 
     
    289294 
    290295      IF( lk_vvl ) THEN 
    291          pub2d(:,:) = pub2d(:,:) * umask(:,:,1) / ( hu_0(:,:) + sshu_b(:,:) + 1._wp - umask(:,:,1) ) 
    292          pvb2d(:,:) = pvb2d(:,:) * vmask(:,:,1) / ( hv_0(:,:) + sshv_b(:,:) + 1._wp - vmask(:,:,1) ) 
     296         phur1(:,:) = umask(:,:,1) / ( phur1(:,:) + 1. - umask(:,:,1) ) 
     297         phvr1(:,:) = vmask(:,:,1) / ( phvr1(:,:) + 1. - vmask(:,:,1) ) 
     298         pub2d(:,:) = pub2d(:,:) * umask(:,:,1) * phur1(:,:) 
     299         pvb2d(:,:) = pvb2d(:,:) * vmask(:,:,1) * phvr1(:,:) 
    293300      ELSE 
    294301         pub2d(:,:) = pvb2d(:,:) * hur(:,:) 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r4266 r4267  
    2525   USE oce             ! ocean dynamics and tracers  
    2626   USE dom_oce         ! ocean space and time domain 
     27   USE dynadv, ONLY: ln_dynadv_vec 
    2728   USE zdf_oce         ! ocean vertical physics 
    2829   USE ldftra_oce      ! ocean active tracers: lateral physics 
Note: See TracChangeset for help on using the changeset viewer.