Changeset 9112


Ignore:
Timestamp:
2017-12-18T10:43:17+01:00 (3 years ago)
Author:
jchanut
Message:

bugs with top & bottom friction

File:
1 edited

Legend:

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

    r9109 r9112  
    226226         DO jj = 2, jpjm1 
    227227            DO ji = fs_2, fs_jpim1   ! vector opt. 
    228                zCdU_u(ji,jj) = 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) + rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) 
    229                zCdU_v(ji,jj) = 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) + rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) 
     228               zCdU_u(ji,jj) = r1_2*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) + rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) 
     229               zCdU_v(ji,jj) = r1_2*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) + rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) 
    230230            END DO 
    231231         END DO 
     
    233233         DO jj = 2, jpjm1 
    234234            DO ji = fs_2, fs_jpim1   ! vector opt. 
    235                zCdU_u(ji,jj) = 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) 
    236                zCdU_v(ji,jj) = 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) 
     235               zCdU_u(ji,jj) = r1_2*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) 
     236               zCdU_v(ji,jj) = r1_2*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) 
    237237            END DO 
    238238         END DO 
     
    526526         DO jj = 2, jpjm1 
    527527            DO ji = fs_2, fs_jpim1   ! vector opt. 
    528                zu_frc(ji,jj) = zu_frc(ji,jj) + MAX(r1_hu_n(ji,jj) * zCdU_u(ji,jj), zztmp ) * zwx(ji,jj) *  wdrampu(ji,jj) 
    529                zv_frc(ji,jj) = zv_frc(ji,jj) + MAX(r1_hv_n(ji,jj) * zCdU_v(ji,jj), zztmp ) * zwy(ji,jj) *  wdrampv(ji,jj) 
     528               zu_frc(ji,jj) = zu_frc(ji,jj) + &  
     529               & MAX(r1_hu_n(ji,jj) * r1_2 * ( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ), zztmp ) * zwx(ji,jj) *  wdrampu(ji,jj) 
     530               zv_frc(ji,jj) = zv_frc(ji,jj) + &  
     531               & MAX(r1_hv_n(ji,jj) * r1_2 * ( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ), zztmp ) * zwy(ji,jj) *  wdrampv(ji,jj) 
    530532            END DO 
    531533         END DO 
     
    533535         DO jj = 2, jpjm1 
    534536            DO ji = fs_2, fs_jpim1   ! vector opt. 
    535                zu_frc(ji,jj) = zu_frc(ji,jj) + r1_hu_n(ji,jj) * zCdU_u(ji,jj) * zwx(ji,jj) 
    536                zv_frc(ji,jj) = zv_frc(ji,jj) + r1_hv_n(ji,jj) * zCdU_v(ji,jj) * zwy(ji,jj) 
     537               zu_frc(ji,jj) = zu_frc(ji,jj) + r1_hu_n(ji,jj) * r1_2 * ( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) * zwx(ji,jj) 
     538               zv_frc(ji,jj) = zv_frc(ji,jj) + r1_hv_n(ji,jj) * r1_2 * ( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) * zwy(ji,jj) 
    537539            END DO 
    538540         END DO 
    539541      END IF 
    540       ! 
    541       !                                         ! Add top stress contribution from baroclinic velocities:       
    542       IF( ln_bt_fw ) THEN 
    543          zztmp = -1._wp / rdtbt 
    544          DO jj = 2, jpjm1 
    545             DO ji = fs_2, fs_jpim1   ! vector opt. 
    546                zu_frc(ji,jj) = zu_frc(ji,jj) + MAX( r1_hu_n(ji,jj) * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) , zztmp ) * zwx(ji,jj) 
    547                zv_frc(ji,jj) = zv_frc(ji,jj) + MAX( r1_hv_n(ji,jj) * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) , zztmp ) * zwy(ji,jj) 
    548             END DO 
    549          END DO 
    550       ELSE 
    551          DO jj = 2, jpjm1 
    552             DO ji = fs_2, fs_jpim1   ! vector opt. 
    553                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) 
    554                zv_frc(ji,jj) = zv_frc(ji,jj) + r1_hv_n(ji,jj) * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) * zwy(ji,jj) 
    555             END DO 
    556          END DO 
    557       ENDIF 
    558542      ! 
    559543      IF( ln_isfcav ) THEN       ! Add TOP stress contribution from baroclinic velocities:       
     
    581565         DO jj = 2, jpjm1               
    582566            DO ji = fs_2, fs_jpim1   ! vector opt. 
    583                zu_frc(ji,jj) = zu_frc(ji,jj) + r1_hu_n(ji,jj) * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * zwx(ji,jj) 
    584                zv_frc(ji,jj) = zv_frc(ji,jj) + r1_hv_n(ji,jj) * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) * zwy(ji,jj) 
     567               zu_frc(ji,jj) = zu_frc(ji,jj) + r1_hu_n(ji,jj) * r1_2 * ( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * zwx(ji,jj) 
     568               zv_frc(ji,jj) = zv_frc(ji,jj) + r1_hv_n(ji,jj) * r1_2 * ( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) * zwy(ji,jj) 
    585569            END DO 
    586570         END DO 
Note: See TracChangeset for help on using the changeset viewer.