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 4155 for branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3 – NEMO

Ignore:
Timestamp:
2013-11-05T15:24:22+01:00 (11 years ago)
Author:
clem
Message:
 
Location:
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r4099 r4155  
    188188   REAL(wp), PUBLIC ::   alphaevp = 1._wp      !: coeficient of the internal stresses !SB 
    189189   REAL(wp), PUBLIC ::   unit_fac = 1.e+09_wp  !: conversion factor for ice / snow enthalpy 
    190    REAL(wp), PUBLIC ::   hminrhg = 0.05_wp     !: clem : ice thickness (in m) below which ice velocity is set to ocean velocity 
     190   REAL(wp), PUBLIC ::   hminrhg = 0.001_wp    !: clem : ice volume (a*h, in m) below which ice velocity is set to ocean velocity 
    191191 
    192192   !                                              !!** ice-salinity namelist (namicesal) ** 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/iceini.F90

    r4099 r4155  
    135135         ln_nicep = .FALSE. 
    136136         CALL ctl_warn( 'ice_run : specific control print for LIM3 desactivated with MPI' ) 
    137       ENDIF        
     137      ENDIF 
    138138      ! 
    139139      IF(lwp) THEN                        ! control print 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90

    r4072 r4155  
    224224      ENDIF 
    225225      ! 
    226  
    227226      ! ------------------------------- 
    228227      !- check conservation (C Rousset) 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limitd_th.F90

    r4072 r4155  
    161161      ! ------------------------------- 
    162162      !- check conservation (C Rousset) 
    163       IF (ln_limdiahsb) THEN 
     163      IF( ln_limdiahsb ) THEN 
    164164         zchk_fs  = glob_sum( ( sfx_bri(:,:) + sfx_thd(:,:) + sfx_res(:,:) + sfx_mec(:,:) ) * area(:,:) * tms(:,:) ) - zchk_fs_b 
    165165         zchk_fw  = glob_sum( rdm_ice(:,:) * area(:,:) * tms(:,:) ) - zchk_fw_b 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90

    r4099 r4155  
    659659         DO ji = fs_2, fs_jpim1 
    660660            zindb  = MAX( 0.0, SIGN( 1.0, at_i(ji,jj) - 1.0e-6 ) )  
    661             zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 
    662             !zdummy = vt_i(ji,jj) 
     661            !zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 
     662            zdummy = vt_i(ji,jj) 
    663663            IF ( zdummy .LE. hminrhg ) THEN 
    664664               u_ice(ji,jj) = u_oce(ji,jj) 
     
    682682         DO ji = fs_2, fs_jpim1 
    683683            zindb  = MAX( 0.0, SIGN( 1.0, at_i(ji,jj) - 1.0e-6 ) )  
    684             zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 
    685             !zdummy = vt_i(ji,jj) 
     684            !zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 
     685            zdummy = vt_i(ji,jj) 
    686686            IF ( zdummy .LE. hminrhg ) THEN 
    687687               v_ice1(ji,jj)  = 0.5*( (v_ice(ji,jj)+v_ice(ji,jj-1))*e1t(ji+1,jj)   & 
     
    707707            !- zds(:,:): shear on northeast corner of grid cells 
    708708            zindb  = MAX( 0.0, SIGN( 1.0, at_i(ji,jj) - 1.0e-6 ) )  
    709             zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 
    710             !zdummy = vt_i(ji,jj) 
     709            !zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 
     710            zdummy = vt_i(ji,jj) 
    711711            IF ( zdummy .LE. hminrhg ) THEN 
    712712 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90

    r4072 r4155  
    8181      REAL(wp), POINTER, DIMENSION(:,:,:,:)  ::   zs0e 
    8282      REAL(wp) :: zchk_v_i, zchk_smv, zchk_fs, zchk_fw, zchk_v_i_b, zchk_smv_b, zchk_fs_b, zchk_fw_b ! Check conservation (C Rousset) 
    83       REAL(wp) :: zchk_vmin, zchk_amin, zchk_amax ! Check errors (C Rousset) 
     83      REAL(wp) :: zchk_vmin, zchk_amin, zchk_amax, zchk_umax ! Check errors (C Rousset) 
    8484      ! mass and salt flux (clem) 
    8585      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zviold   ! old ice volume... 
     
    9999      ! ------------------------------- 
    100100      !- check conservation (C Rousset) 
    101       IF (ln_limdiahsb) THEN 
     101      IF( ln_limdiahsb ) THEN 
    102102         zchk_v_i_b = glob_sum( SUM(   v_i(:,:,:), dim=3 ) * area(:,:) * tms(:,:) ) 
    103103         zchk_smv_b = glob_sum( SUM( smv_i(:,:,:), dim=3 ) * area(:,:) * tms(:,:) ) 
     
    456456 
    457457                  ! Ice salinity and age 
    458                   zsal = MAX( MIN(  (rhoic-rhosn)/rhoic*sss_m(ji,jj) ,   & 
    459                      &              zusvoic * zs0sm(ji,jj,jl)         ) , s_i_min ) * v_i(ji,jj,jl) 
    460                   IF(  num_sal == 2  )   smv_i(ji,jj,jl) = zindic * zsal 
    461  
    462                   zage = MAX(  MIN( zbigval, zs0oi(ji,jj,jl) / MAX( a_i(ji,jj,jl), epsi16 ) ), 0._wp  ) * a_i(ji,jj,jl) 
     458                  !clem zsal = MAX( MIN( (rhoic-rhosn)/rhoic*sss_m(ji,jj), zusvoic * zs0sm(ji,jj,jl) ), s_i_min ) * v_i(ji,jj,jl) 
     459                  IF(  num_sal == 2  ) THEN 
     460                     smv_i(ji,jj,jl) = MAX( MIN( s_i_max * v_i(ji,jj,jl), zsmv ), s_i_min * v_i(ji,jj,jl) ) 
     461                  ENDIF 
     462 
     463                  zage = MAX( MIN( zbigval, zs0oi(ji,jj,jl) / MAX( a_i(ji,jj,jl), epsi16 ) ), 0._wp  ) * a_i(ji,jj,jl) 
    463464                  oa_i (ji,jj,jl)  = zindic * zage  
    464465 
     
    544545      ! ------------------------------- 
    545546      !- check conservation (C Rousset) 
    546       IF (ln_limdiahsb) THEN 
     547      IF( ln_limdiahsb ) THEN 
    547548         zchk_fs  = glob_sum( ( sfx_bri(:,:) + sfx_thd(:,:) + sfx_res(:,:) + sfx_mec(:,:) ) * area(:,:) * tms(:,:) ) - zchk_fs_b 
    548549         zchk_fw  = glob_sum( rdm_ice(:,:) * area(:,:) * tms(:,:) ) - zchk_fw_b 
     
    554555         zchk_amax = glob_max(SUM(a_i,dim=3)) 
    555556         zchk_amin = glob_min(a_i) 
     557         zchk_umax = glob_max(SQRT(u_ice**2 + v_ice**2)) 
    556558 
    557559         IF(lwp) THEN 
    558             IF ( ABS( zchk_v_i   ) >  1.e-5 ) WRITE(numout,*) 'violation volume [m3/day]     (limtrp) = ',(zchk_v_i * rday) 
     560            IF ( ABS( zchk_v_i   ) >  1.e-5 ) THEN 
     561               WRITE(numout,*) 'violation volume [m3/day]     (limtrp) = ',(zchk_v_i * rday) 
     562               WRITE(numout,*) 'u_ice max [m/s]               (limtrp) = ',zchk_umax 
     563               WRITE(numout,*) 'number of time steps          (limtrp) =',kt 
     564            ENDIF 
    559565            IF ( ABS( zchk_smv   ) >  1.e-4 ) WRITE(numout,*) 'violation saline [psu*m3/day] (limtrp) = ',(zchk_smv * rday) 
    560566            IF ( zchk_vmin <  0.            ) WRITE(numout,*) 'violation v_i<0  [mm]         (limtrp) = ',(zchk_vmin * 1.e-3) 
Note: See TracChangeset for help on using the changeset viewer.