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 3896 for branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/LIM_SRC_2 – NEMO

Ignore:
Timestamp:
2013-05-02T14:40:43+02:00 (11 years ago)
Author:
acc
Message:

Branch 2013/dev_r3858_NOC_ZTC, #863. Fix to dynvor.F90 to remove instability when using the EEN vorticity scheme with z-tilde. Also cosmetic changes and better initial settings for zstar/ztilde when using full ice embedding

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90

    r3625 r3896  
    2424   USE phycst           ! physical constants 
    2525   USE dom_oce          ! ocean domain 
     26   USE domvvl           ! ocean vertical scale factors 
    2627   USE dom_ice_2        ! LIM-2: ice domain 
    2728   USE ice_2            ! LIM-2: ice variables 
     
    5960   !! * Substitutions 
    6061#  include "vectopt_loop_substitute.h90" 
     62#  include "domzgr_substitute.h90" 
    6163   !!---------------------------------------------------------------------- 
    6264   !! NEMO/LIM2 4.0 , UCL - NEMO Consortium (2011) 
     
    444446      !!------------------------------------------------------------------- 
    445447      ! 
     448      INTEGER :: jk           ! local integer 
     449      ! 
    446450      IF(lwp) WRITE(numout,*) 
    447451      IF(lwp) WRITE(numout,*) 'lim_sbc_init_2 : LIM-2 sea-ice - surface boundary condition' 
     
    475479         sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 
    476480         sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 
     481         do jk = 1,jpkm1                     ! adjust initial vertical scale factors 
     482          fse3t_n(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshn(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 
     483          fse3t_b(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshb(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 
     484         end do 
     485         fse3t_a(:,:,:) = fse3t_b(:,:,:) 
     486         ! Reconstruction of all vertical scale factors at now and before time steps 
     487         ! ============================================================================= 
     488         ! Horizontal scale factor interpolations 
     489         ! -------------------------------------- 
     490         CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3u_b(:,:,:), 'U' ) 
     491         CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3v_b(:,:,:), 'V' ) 
     492         CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3u_n(:,:,:), 'U' ) 
     493         CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3v_n(:,:,:), 'V' ) 
     494         CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3f_n(:,:,:), 'F' ) 
     495         ! Vertical scale factor interpolations 
     496         ! ------------------------------------ 
     497         CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n (:,:,:), 'W'  ) 
     498         CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3uw_n(:,:,:), 'UW' ) 
     499         CALL dom_vvl_interpol( fse3v_n(:,:,:), fse3vw_n(:,:,:), 'VW' ) 
     500         CALL dom_vvl_interpol( fse3u_b(:,:,:), fse3uw_b(:,:,:), 'UW' ) 
     501         CALL dom_vvl_interpol( fse3v_b(:,:,:), fse3vw_b(:,:,:), 'VW' ) 
     502         ! t- and w- points depth 
     503         ! ---------------------- 
     504         fsdept_n(:,:,1) = 0.5_wp * fse3w_n(:,:,1) 
     505         fsdepw_n(:,:,1) = 0.0_wp 
     506         fsde3w_n(:,:,1) = fsdept_n(:,:,1) - sshn(:,:) 
     507         DO jk = 2, jpk 
     508            fsdept_n(:,:,jk) = fsdept_n(:,:,jk-1) + fse3w_n(:,:,jk) 
     509            fsdepw_n(:,:,jk) = fsdepw_n(:,:,jk-1) + fse3t_n(:,:,jk-1) 
     510            fsde3w_n(:,:,jk) = fsdept_n(:,:,jk  ) - sshn   (:,:) 
     511         END DO 
    477512      ENDIF 
    478513      ! 
Note: See TracChangeset for help on using the changeset viewer.