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 13669 for NEMO/branches/UKMO/NEMO_4.0.1_implicit_ice_drag/src/OCE/DYN/dynnxt.F90 – NEMO

Ignore:
Timestamp:
2020-10-23T19:23:00+02:00 (4 years ago)
Author:
dancopsey
Message:

Merge in implicit sea ice drag code from NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.1_implicit_ice_drag/src/OCE/DYN/dynnxt.F90

    r11715 r13669  
    4848   USE prtctl         ! Print control 
    4949   USE timing         ! Timing 
     50   USE zdfdrg, ONLY: ln_drgice_imp, rCdU_top 
    5051#if defined key_agrif 
    5152   USE agrif_oce_interp 
     
    99100      REAL(wp) ::   zve3a, zve3n, zve3b, zvf, z1_2dt   !   -      - 
    100101      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zue, zve 
     102      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zutau, zvtau 
    101103      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ze3u_f, ze3v_f, zua, zva  
    102104      !!---------------------------------------------------------------------- 
     
    368370      ENDIF 
    369371      ! 
     372      IF ( iom_use("utau") ) THEN 
     373         IF ( ln_drgice_imp.OR.ln_isfcav ) THEN 
     374            ALLOCATE(zutau(jpi,jpj))  
     375            DO jj = 2, jpjm1 
     376               DO ji = 2, jpim1 
     377                  jk = miku(ji,jj)  
     378                  zutau(ji,jj) = utau(ji,jj) &  
     379                  &  + 0.5_wp * rau0 * (rCdU_top(ji+1,jj)+rCdU_top(ji,jj)) * ua(ji,jj,jk)  
     380               END DO 
     381            END DO 
     382            CALL lbc_lnk( 'dynnxt' , zutau, 'U', -1.) 
     383            CALL iom_put(  "utau", zutau(:,:) ) 
     384            DEALLOCATE(zutau) 
     385         ELSE 
     386            CALL iom_put(  "utau", utau(:,:) ) 
     387         ENDIF 
     388      ENDIF 
     389      ! 
     390      IF ( iom_use("vtau") ) THEN 
     391         IF ( ln_drgice_imp.OR.ln_isfcav ) THEN 
     392            ALLOCATE(zvtau(jpi,jpj)) 
     393            DO jj = 2, jpjm1 
     394               DO ji = 2, jpim1 
     395                  jk = mikv(ji,jj) 
     396                  zvtau(ji,jj) = vtau(ji,jj) & 
     397                  &  + 0.5_wp * rau0 * (rCdU_top(ji,jj+1)+rCdU_top(ji,jj)) * va(ji,jj,jk) 
     398               END DO 
     399            END DO 
     400            CALL lbc_lnk( 'dynnxt' , zvtau, 'V', -1.) 
     401            CALL iom_put(  "vtau", zvtau(:,:) ) 
     402            DEALLOCATE(zvtau) 
     403         ELSE 
     404            CALL iom_put(  "vtau", vtau(:,:) ) 
     405         ENDIF 
     406      ENDIF 
     407      ! 
    370408      IF(ln_ctl)   CALL prt_ctl( tab3d_1=un, clinfo1=' nxt  - Un: ', mask1=umask,   & 
    371409         &                       tab3d_2=vn, clinfo2=' Vn: '       , mask2=vmask ) 
Note: See TracChangeset for help on using the changeset viewer.