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 1244 – NEMO

Changeset 1244


Ignore:
Timestamp:
2009-01-06T12:13:44+01:00 (15 years ago)
Author:
ctlod
Message:

improve the LIM 3.0 stability in using sea surface height, see ticket: #286

Location:
trunk/NEMO
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/LIM_SRC_3/limrhg.F90

    r1156 r1244  
    44   !!   Ice rheology : sea ice rheology 
    55   !!====================================================================== 
     6   !! History :   -   !  2007-03  (M.A. Morales Maqueda, S. Bouillon) Original code 
     7   !!            3.0  !  2008-03  (M. Vancoppenolle) LIM3 
     8   !!             -   !  2008-11  (M. Vancoppenolle, S. Bouillon, Y. Aksenov) add surface tilt in ice rheolohy  
     9   !!---------------------------------------------------------------------- 
    610#if defined key_lim3 
    711   !!---------------------------------------------------------------------- 
     
    1620   USE dom_oce 
    1721   USE dom_ice 
     22   USE sbc_oce         ! Surface boundary condition: ocean fields 
    1823   USE sbc_ice         ! Surface boundary condition: ice fields 
    1924   USE ice 
     
    100105      !!                 Vancoppenolle et al., OM08 
    101106      !! 
    102       !! History : 
    103       !!   1.0  !  07-03  (M.A. Morales Maqueda, S. Bouillon) 
    104       !!   2.0  !  08-03  M. Vancoppenolle : LIM3 
    105       !! 
    106107      !!------------------------------------------------------------------- 
    107108      ! * Arguments 
     
    290291            ! SB On utilise maintenant le gradient de la pente de l'ocean 
    291292            ! include it later 
    292             !    zdsshx =  (ssh_io(ji+1,jj) - ssh_io(ji,jj))/e1u(ji,jj) 
    293             !    zdsshy =  (ssh_io(ji,jj+1) - ssh_io(ji,jj))/e2v(ji,jj)   
    294  
    295             zdsshx = 0.0 
    296             zdsshy = 0.0  
     293 
     294            zdsshx =  (ssh_m(ji+1,jj) - ssh_m(ji,jj))/e1u(ji,jj) 
     295            zdsshy =  (ssh_m(ji,jj+1) - ssh_m(ji,jj))/e2v(ji,jj) 
    297296 
    298297            za1ct(ji,jj) = ztagnx - zmass1(ji,jj) * grav * zdsshx 
  • trunk/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r1230 r1244  
    6363   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sst_m     !: mean (nn_fsbc time-step) surface sea temperature     [Celsius] 
    6464   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sss_m     !: mean (nn_fsbc time-step) surface sea salinity            [psu] 
     65   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   ssh_m     !: mean (nn_fsbc time-step) sea surface height                [m] 
    6566 
    6667   !!---------------------------------------------------------------------- 
  • trunk/NEMO/OPA_SRC/SBC/sbcssm.F90

    r1214 r1244  
    6464         sst_m(:,:) = tn(:,:,1) 
    6565         sss_m(:,:) = sn(:,:,1) 
     66         ssh_m(:,:) = sshn(:,:) 
    6667         ! 
    6768      ELSE 
     
    7879               CALL iom_get( numror, jpdom_autoglo, 'sst_m'  , sst_m  )   !   "         "    temperature (T-point) 
    7980               CALL iom_get( numror, jpdom_autoglo, 'sss_m'  , sss_m  )   !   "         "    salinity    (T-point) 
     81               CALL iom_get( numror, jpdom_autoglo, 'ssh_m'  , ssh_m  )   !   "         "    height      (T-point) 
    8082               ! 
    8183               IF( zf_sbc /= REAL( nn_fsbc, wp ) ) THEN      ! nn_fsbc has changed between 2 runs 
     
    8789                  sst_m(:,:) = zcoef * sst_m(:,:) 
    8890                  sss_m(:,:) = zcoef * sss_m(:,:) 
     91                  ssh_m(:,:) = zcoef * ssh_m(:,:) 
    8992               ELSE 
    9093                  IF(lwp) WRITE(numout,*) '~~~~~~~   mean fields read in the ocean restart file' 
     
    97100               sst_m(:,:) = zcoef * tn(:,:,1) 
    98101               sss_m(:,:) = zcoef * sn(:,:,1) 
     102               ssh_m(:,:) = zcoef * sshn(:,:) 
    99103            ENDIF 
    100104            !                                             ! ---------------------------------------- ! 
     
    105109            sst_m(:,:) = 0.e0 
    106110            sss_m(:,:) = 0.e0 
     111            ssh_m(:,:) = 0.e0 
    107112         ENDIF 
    108113         !                                                ! ---------------------------------------- ! 
     
    113118         sst_m(:,:) = sst_m(:,:) + tn(:,:,1) 
    114119         sss_m(:,:) = sss_m(:,:) + sn(:,:,1) 
     120         ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) 
    115121 
    116122         !                                                ! ---------------------------------------- ! 
     
    122128            ssu_m(:,:) = ssu_m(:,:) * zcoef           ! mean suface current  [m/s] 
    123129            ssv_m(:,:) = ssv_m(:,:) * zcoef           ! 
     130            ssh_m(:,:) = ssh_m(:,:) * zcoef           ! mean SSH             [m] 
    124131            ! 
    125132         ENDIF 
     
    137144            CALL iom_rstput( kt, nitrst, numrow, 'sst_m'  , sst_m  ) 
    138145            CALL iom_rstput( kt, nitrst, numrow, 'sss_m'  , sss_m  ) 
     146            CALL iom_rstput( kt, nitrst, numrow, 'ssh_m'  , ssh_m  ) 
    139147            ! 
    140148         ENDIF 
Note: See TracChangeset for help on using the changeset viewer.