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 4205 for branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limrst.F90 – NEMO

Ignore:
Timestamp:
2013-11-14T18:02:06+01:00 (10 years ago)
Author:
clem
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limrst.F90

    r4161 r4205  
    1717   !!---------------------------------------------------------------------- 
    1818   USE ice            ! sea-ice variables 
     19   USE oce     , ONLY :  snwice_mass, snwice_mass_b 
    1920   USE par_ice        ! sea-ice parameters 
    2021   USE dom_oce        ! ocean domain 
     
    159160      END DO 
    160161 
    161       CALL iom_rstput( iter, nitrst, numriw, 'u_ice'     , u_ice      ) 
    162       CALL iom_rstput( iter, nitrst, numriw, 'v_ice'     , v_ice      ) 
    163       CALL iom_rstput( iter, nitrst, numriw, 'fsbbq'     , fsbbq      ) 
    164       CALL iom_rstput( iter, nitrst, numriw, 'iatte'     , iatte      ) ! clem modif 
    165       CALL iom_rstput( iter, nitrst, numriw, 'oatte'     , oatte      ) ! clem modif 
    166       CALL iom_rstput( iter, nitrst, numriw, 'stress1_i' , stress1_i ) 
    167       CALL iom_rstput( iter, nitrst, numriw, 'stress2_i' , stress2_i  ) 
    168       CALL iom_rstput( iter, nitrst, numriw, 'stress12_i', stress12_i ) 
     162      CALL iom_rstput( iter, nitrst, numriw, 'u_ice'        , u_ice      ) 
     163      CALL iom_rstput( iter, nitrst, numriw, 'v_ice'        , v_ice      ) 
     164      CALL iom_rstput( iter, nitrst, numriw, 'fsbbq'        , fsbbq      ) 
     165      CALL iom_rstput( iter, nitrst, numriw, 'stress1_i'    , stress1_i  ) 
     166      CALL iom_rstput( iter, nitrst, numriw, 'stress2_i'    , stress2_i  ) 
     167      CALL iom_rstput( iter, nitrst, numriw, 'stress12_i'   , stress12_i ) 
     168      CALL iom_rstput( iter, nitrst, numriw, 'snwice_mass'  , snwice_mass )   !clem modif 
     169      CALL iom_rstput( iter, nitrst, numriw, 'snwice_mass_b', snwice_mass_b ) !clem modif 
    169170 
    170171      DO jl = 1, jpl  
     
    371372         CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 
    372373         t_su(:,:,jl) = z2d(:,:) 
    373          tn_ice (:,:,:) = t_su (:,:,:) 
    374       END DO 
    375  
    376       DO jl = 1, jpl  
    377          CALL lbc_lnk( smv_i(:,:,jl) , 'T' ,  1. ) 
    378          CALL lbc_lnk( v_i  (:,:,jl) , 'T' ,  1. ) 
    379          CALL lbc_lnk( a_i  (:,:,jl) , 'T' ,  1. ) 
    380       END DO 
    381  
    382       ! we first with bulk ice salinity 
    383       DO jl = 1, jpl 
    384          DO jj = 1, jpj 
    385             DO ji = 1, jpi 
    386                zindb          = MAX( 0.0 , SIGN( 1.0 , v_i(ji,jj,jl) - 1.0e-4 ) )  
    387                sm_i(ji,jj,jl) = smv_i(ji,jj,jl) / MAX(v_i(ji,jj,jl),1.0e-6) * zindb 
    388                ht_i(ji,jj,jl) = v_i(ji,jj,jl)   / MAX(a_i(ji,jj,jl),1.0e-6) * zindb 
    389             END DO 
    390          END DO 
    391       END DO 
    392  
    393       DO jk = 1, nlay_i 
    394          s_i(:,:,jk,:) = sm_i(:,:,:) 
    395       END DO 
    396  
    397       IF( num_sal == 2 ) THEN      ! Salinity profile 
    398          DO jl = 1, jpl 
    399             DO jk = 1, nlay_i 
    400                DO jj = 1, jpj 
    401                   DO ji = 1, jpi 
    402                      zs_inf        = sm_i(ji,jj,jl) 
    403                      z_slope_s     = 2._wp * sm_i(ji,jj,jl) / MAX( 0.01_wp , ht_i(ji,jj,jl) ) 
    404                      !- slope of the salinity profile 
    405                      zs_zero(jk)   = z_slope_s * ( REAL(jk,wp) - 0.5_wp ) * ht_i(ji,jj,jl) / REAL(nlay_i,wp) 
    406                      zsmax = 4.5_wp 
    407                      zsmin = 3.5_wp 
    408                      IF(     sm_i(ji,jj,jl) < zsmin ) THEN 
    409                         zalpha = 1._wp 
    410                      ELSEIF( sm_i(ji,jj,jl) < zsmax ) THEN 
    411                         zalpha = sm_i(ji,jj,jl) / ( zsmin - zsmax ) + zsmax / ( zsmax - zsmin ) 
    412                      ELSE 
    413                         zalpha = 0._wp 
    414                      ENDIF 
    415                      s_i(ji,jj,jk,jl) = zalpha * zs_zero(jk) + ( 1._wp - zalpha ) * zs_inf 
    416                   END DO 
    417                END DO 
    418             END DO 
    419          END DO 
    420       ENDIF 
     374      END DO 
    421375 
    422376      DO jl = 1, jpl  
     
    440394      CALL iom_get( numrir, jpdom_autoglo, 'v_ice'     , v_ice      ) 
    441395      CALL iom_get( numrir, jpdom_autoglo, 'fsbbq'     , fsbbq      ) 
    442       CALL iom_get( numrir, jpdom_autoglo, 'iatte'     , iatte      ) ! clem modif 
    443       CALL iom_get( numrir, jpdom_autoglo, 'oatte'     , oatte      ) ! clem modif 
    444396      CALL iom_get( numrir, jpdom_autoglo, 'stress1_i' , stress1_i  ) 
    445397      CALL iom_get( numrir, jpdom_autoglo, 'stress2_i' , stress2_i  ) 
    446398      CALL iom_get( numrir, jpdom_autoglo, 'stress12_i', stress12_i ) 
     399      CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass'  , snwice_mass )   !clem modif 
     400      CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass_b', snwice_mass_b ) !clem modif 
    447401 
    448402      DO jl = 1, jpl  
     
    568522      END DO 
    569523      ! 
    570       !clem CALL iom_close( numrir ) 
     524      !CALL iom_close( numrir ) !clem: closed in sbcice_lim.F90 
    571525      ! 
    572526      CALL wrk_dealloc( nlay_i, zs_zero ) 
Note: See TracChangeset for help on using the changeset viewer.