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 9554 for branches/2017/dev_merge_2017/NEMOGCM – NEMO

Ignore:
Timestamp:
2018-05-04T20:22:01+02:00 (6 years ago)
Author:
mathiot
Message:

Correction bug with isf and flux form (mask issue) + change mask used for ubaro output

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r9528 r9554  
    145145      INTEGER, INTENT(in)  ::   kt   ! ocean time-step index 
    146146      ! 
    147       INTEGER  ::   ji, jj, jk, jn        ! dummy loop indices 
     147      INTEGER  ::   ji, jj, jk, jn        ! dummy loop indices 
    148148      LOGICAL  ::   ll_fw_start           ! =T : forward integration  
    149       LOGICAL  ::   ll_init               ! =T : special startup of 2d equations 
     149      LOGICAL  ::   ll_init               ! =T : special startup of 2d equations 
    150150      LOGICAL  ::   ll_tmp1, ll_tmp2      ! local logical variables used in W/D 
    151151      INTEGER  ::   ikbu, iktu, noffset   ! local integers 
    152152      INTEGER  ::   ikbv, iktv            !   -      - 
    153       REAL(wp) ::   r1_2dt_b, z2dt_bf               ! local scalars 
     153      REAL(wp) ::   r1_2dt_b, z2dt_bf               ! local scalars 
    154154      REAL(wp) ::   zx1, zx2, zu_spg, zhura, z1_hu  !   -      - 
    155155      REAL(wp) ::   zy1, zy2, zv_spg, zhvra, z1_hv  !   -      - 
     
    254254               DO jj = 1, jpjm1 
    255255                  DO ji = 1, jpim1 
    256 !!gm bug for ocean cavities 
    257 !                     zwz(ji,jj) =   ( ht_n(ji  ,jj+1) + ht_n(ji+1,jj+1) +                     & 
    258 !                        &             ht_n(ji  ,jj  ) + ht_n(ji+1,jj  )   )                   & 
    259 !                        &       / ( MAX( 1._wp, tmask(ji  ,jj+1, 1) + tmask(ji+1,jj+1, 1) +    & 
    260 !                        &                       tmask(ji  ,jj  , 1) + tmask(ji+1,jj  , 1) ) ) 
    261 !! replace by : 
    262256                     zwz(ji,jj) =             (  ht_n  (ji  ,jj+1) + ht_n  (ji+1,jj+1)      & 
    263257                        &                      + ht_n  (ji  ,jj  ) + ht_n  (ji+1,jj  )  )   & 
    264258                        &       / ( MAX( 1._wp,  ssmask(ji  ,jj+1) + ssmask(ji+1,jj+1)      & 
    265259                        &                      + ssmask(ji  ,jj  ) + ssmask(ji+1,jj  )  )   ) 
    266 !!gm end 
    267260                     IF( zwz(ji,jj) /= 0._wp )   zwz(ji,jj) = ff_f(ji,jj) / zwz(ji,jj) 
    268261                  END DO 
     
    320313               DO jj = 1, jpjm1 
    321314                  DO ji = 1, jpim1 
    322 !!gm Bug here in case of ocean cavities, further more ht_0 is masked by definition ==>> remove mask multiplication  
    323 !                     zhf(ji,jj) = MAX( 0._wp,                                & 
    324 !                                & ( ht_0(ji  ,jj  )*tmask(ji  ,jj  ,1) +     & 
    325 !                                &   ht_0(ji+1,jj  )*tmask(ji+1,jj  ,1) +     & 
    326 !                                &   ht_0(ji  ,jj+1)*tmask(ji  ,jj+1,1) +     & 
    327 !                                &   ht_0(ji+1,jj+1)*tmask(ji+1,jj+1,1) ) /   & 
    328 !                                & ( tmask(ji  ,jj  ,1) + tmask(ji+1,jj  ,1) +& 
    329 !                                &   tmask(ji  ,jj+1,1) + tmask(ji+1,jj+1,1) +& 
    330 !                                &   rsmall  ) ) 
    331 !!gm replaced by : 
    332315                     zhf(ji,jj) =    (   ht_0  (ji,jj  ) + ht_0  (ji+1,jj  )          & 
    333316                        &              + ht_0  (ji,jj+1) + ht_0  (ji+1,jj+1)   )      & 
    334317                        &       / MAX(   ssmask(ji,jj  ) + ssmask(ji+1,jj  )          & 
    335318                        &              + ssmask(ji,jj+1) + ssmask(ji+1,jj+1) , 1._wp  ) 
    336 !!gm end 
    337319                  END DO 
    338320               END DO 
     
    12491231         DO jj = 1, jpjm1 
    12501232            DO ji = 1, jpim1      ! NO Vector Opt. 
    1251                zsshu_a(ji,jj) = r1_2 * umask(ji,jj,1)  * r1_e1e2u(ji,jj) & 
    1252                   &              * ( e1e2t(ji  ,jj) * ssha(ji  ,jj)    & 
     1233               zsshu_a(ji,jj) = r1_2 * ssumask(ji,jj)  * r1_e1e2u(ji,jj) & 
     1234                  &              * ( e1e2t(ji  ,jj) * ssha(ji  ,jj)      & 
    12531235                  &              +   e1e2t(ji+1,jj) * ssha(ji+1,jj) ) 
    1254                zsshv_a(ji,jj) = r1_2 * vmask(ji,jj,1)  * r1_e1e2v(ji,jj) & 
    1255                   &              * ( e1e2t(ji,jj  ) * ssha(ji,jj  )    & 
     1236               zsshv_a(ji,jj) = r1_2 * ssvmask(ji,jj)  * r1_e1e2v(ji,jj) & 
     1237                  &              * ( e1e2t(ji,jj  ) * ssha(ji,jj  )      & 
    12561238                  &              +   e1e2t(ji,jj+1) * ssha(ji,jj+1) ) 
    12571239            END DO 
     
    13101292      ! 
    13111293      IF( ln_diatmb ) THEN 
    1312          CALL iom_put( "baro_u" , un_b*umask(:,:,1)+zmdi*(1-umask(:,:,1 ) ) )  ! Barotropic  U Velocity 
    1313          CALL iom_put( "baro_v" , vn_b*vmask(:,:,1)+zmdi*(1-vmask(:,:,1 ) ) )  ! Barotropic  V Velocity 
     1294         CALL iom_put( "baro_u" , un_b*ssumask(:,:)+zmdi*(1.-ssumask(:,:) ) )  ! Barotropic  U Velocity 
     1295         CALL iom_put( "baro_v" , vn_b*ssvmask(:,:)+zmdi*(1.-ssvmask(:,:) ) )  ! Barotropic  V Velocity 
    13141296      ENDIF 
    13151297      ! 
Note: See TracChangeset for help on using the changeset viewer.