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 3970 for branches/2013/dev_r3867_MERCATOR1_DYN/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90 – NEMO

Ignore:
Timestamp:
2013-07-11T15:59:14+02:00 (11 years ago)
Author:
cbricaud
Message:

Time splitting update, see ticket #1079

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3867_MERCATOR1_DYN/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r3294 r3970  
    141141      END DO 
    142142       
     143#if defined key_dynspg_ts 
     144      ! bg jchanut tschanges 
     145      ht_0(:,:) = 0._wp                         ! Reference ocean depth at T-points 
     146      DO jk = 1, jpk 
     147         ht_0(:,:) = ht_0(:,:) + fse3t_0(:,:,jk) * tmask(:,:,jk) 
     148      END DO  
     149                                                ! Reference ocean depth at F-points  
     150                                                ! Ensure that depth is non-zero over land 
     151      IF ( .not. ln_sco ) THEN 
     152         IF( rn_hmin < 0._wp ) THEN    ;   jk = - INT( rn_hmin )                                      ! from a nb of level 
     153         ELSE                          ;   jk = MINLOC( gdepw_0, mask = gdepw_0 > rn_hmin, dim = 1 )  ! from a depth 
     154         ENDIF 
     155         hf_0(:,:) = gdepw_0(jk+1) 
     156      ELSE 
     157         hf_0(:,:) = hbatf(:,:) 
     158      END IF 
     159 
     160      DO jj = 1, jpjm1 
     161         hf_0(:,jj) = hf_0(:,jj)*(1._wp- umask(:,jj,1) * umask(:,jj+1,1)) 
     162      END DO   
     163            
     164      DO jk = 1, jpkm1 
     165         DO jj = 1, jpjm1 
     166            hf_0(:,jj) = hf_0(:,jj) + fse3f_0(:,jj,jk) * umask(:,jj,jk) * umask(:,jj+1,jk) 
     167         END DO 
     168      END DO 
     169      CALL lbc_lnk( hf_0, 'F', 1._wp ) 
     170      ! end jchanut tschanges 
     171#endif   
     172 
    143173      DO jj = 1, jpjm1                          ! initialise before and now Sea Surface Height at u-, v-, f-points 
    144174         DO ji = 1, jpim1   ! NO vector opt. 
     
    192222      INTEGER  ::   iku, ikv     ! local integers     
    193223      INTEGER  ::   ii0, ii1, ij0, ij1   ! temporary integers 
    194       REAL(wp) ::   zvt          ! local scalars 
     224      REAL(wp) ::   zvt, zvtip1, zvtjp1  ! local scalars 
    195225      !!---------------------------------------------------------------------- 
    196226      ! 
     
    202232         WRITE(numout,*) '~~~~~~~~~ ' 
    203233         pe3u_b(:,:,jpk) = fse3u_0(:,:,jpk) 
    204          pe3v_b(:,:,jpk) = fse3u_0(:,:,jpk) 
     234         pe3v_b(:,:,jpk) = fse3v_0(:,:,jpk) 
    205235      ENDIF 
    206236       
     
    208238         DO jj = 2, jpjm1 
    209239            DO ji = fs_2, fs_jpim1 
    210                zvt = fse3t_b(ji,jj,jk) * e1e2t(ji,jj) 
    211                pe3u_b(ji,jj,jk) = 0.5_wp * ( zvt + fse3t_b(ji+1,jj,jk) * e1e2t(ji+1,jj) ) / ( e1u(ji,jj) * e2u(ji,jj) ) 
    212                pe3v_b(ji,jj,jk) = 0.5_wp * ( zvt + fse3t_b(ji,jj+1,jk) * e1e2t(ji,jj+1) ) / ( e1v(ji,jj) * e2v(ji,jj) ) 
     240               zvt    = ( fse3t_b(ji  ,jj  ,jk) - fse3t_0(ji  ,jj  ,jk) ) * e1e2t(ji  ,jj  ) 
     241               zvtip1 = ( fse3t_b(ji+1,jj  ,jk) - fse3t_0(ji+1,jj  ,jk) ) * e1e2t(ji+1,jj  ) 
     242               zvtjp1 = ( fse3t_b(ji  ,jj+1,jk) - fse3t_0(ji  ,jj+1,jk) ) * e1e2t(ji  ,jj+1) 
     243               pe3u_b(ji,jj,jk) = fse3u_0(ji,jj,jk) + 0.5_wp * ( zvt + zvtip1 ) / ( e1u(ji,jj) * e2u(ji,jj) ) 
     244               pe3v_b(ji,jj,jk) = fse3v_0(ji,jj,jk) + 0.5_wp * ( zvt + zvtjp1 ) / ( e1v(ji,jj) * e2v(ji,jj) ) 
    213245            END DO 
    214246         END DO 
Note: See TracChangeset for help on using the changeset viewer.