MODULE limistate !!====================================================================== !! *** MODULE limistate *** !! Initialisation of diagnostics ice variables !!====================================================================== #if defined key_lim3 !!---------------------------------------------------------------------- !! 'key_lim3' : LIM3 sea-ice model !!---------------------------------------------------------------------- !! lim_istate : Initialisation of diagnostics ice variables !! lim_istate_init : initialization of ice state and namelist read !!---------------------------------------------------------------------- !! * Modules used USE phycst USE ocfzpt USE oce ! dynamics and tracers variables USE dom_oce USE par_ice ! ice parameters USE ice_oce ! ice variables USE in_out_manager USE dom_ice USE ice USE lbclnk IMPLICIT NONE PRIVATE !! * Accessibility PUBLIC lim_istate ! routine called by lim_init.F90 !! * Module variables REAL(wp) :: & !!! ** init namelist (namiceini) ** ttest = 2.0 , & ! threshold water temperature for initial sea ice hninn = 0.5 , & ! initial snow thickness in the north hginn_u = 2.5 , & ! initial ice thickness in the north aginn_u = 0.7 , & ! initial leads area in the north hginn_d = 5.0 , & ! initial ice thickness in the north aginn_d = 0.25 , & ! initial leads area in the north hnins = 0.1 , & ! initial snow thickness in the south hgins_u = 1.0 , & ! initial ice thickness in the south agins_u = 0.7 , & ! initial leads area in the south hgins_d = 2.0 , & ! initial ice thickness in the south agins_d = 0.2 , & ! initial leads area in the south sinn = 6.301 , & ! initial salinity sins = 6.301 REAL(wp) :: & ! constant values zzero = 0.0 , & zone = 1.0 !!---------------------------------------------------------------------- !! LIM 2.0, UCL-LOCEAN-IPSL (2005) !! $Header: /home/opalod/NEMOCVSROOT/NEMO/LIM_SRC/limistate.F90,v 1.3 2005/03/27 18:34:41 opalod Exp $ !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt !!---------------------------------------------------------------------- CONTAINS SUBROUTINE lim_istate !!------------------------------------------------------------------- !! *** ROUTINE lim_istate *** !! !! ** Purpose : defined the sea-ice initial state !! !! ** Method : restart from a state defined in a binary file !! or from arbitrary sea-ice conditions !! !! History : !! 2.0 ! 01-04 (C. Ethe, G. Madec) Original code !!-------------------------------------------------------------------- !! * Local variables INTEGER :: ji, jj, jk, jl ! dummy loop indices REAL(wp) :: zidto, & ! temporary scalar zs0, ztf, zbin, & zeps6, zeps, ztmelts, & epsi06 REAL(wp), DIMENSION(jpm) :: & zgfactorn, zhin, & zgfactors, zhis REAL(wp), DIMENSION(jpi,jpj) :: & ztn REAL(wp) :: & zvol, zare, zh, zh1, zh2, zh3, zan, zbn, zas, zbs !-------------------------------------------------------------------- !-------------------------------------------------------------------- ! 1) Preliminary things !-------------------------------------------------------------------- epsi06 = 1.0e-6 CALL lim_istate_init ! reading the initials parameters of the ice !-- Initialisation of sst,sss,u,v do i=1,jpi u_io(:,:) = 0.e0 ! ice velocity in x direction v_io(:,:) = 0.e0 ! ice velocity in y direction ! Initialisation at tn or -2 if ice DO jj = 1, jpj DO ji = 1, jpi zbin = MAX( 0., SIGN( 1., fzptn(ji,jj) - tn(ji,jj,1) ) ) ztn(ji,jj) = ( (1.-zbin) * tn(ji,jj,1) - 2. * zbin + rt0 ) * tmask(ji,jj,1) END DO END DO u_io (:,:) = 0. v_io (:,:) = 0. sst_io(:,:) = ( nfice - 1 ) * ( tn(:,:,1) + rt0 ) ! use the ocean initial values sss_io(:,:) = ( nfice - 1 ) * sn(:,:,1) ! tricky trick *(nfice-1) ! !-------------------------------------------------------------------- ! 2) Ice initialization (hi,hs,frld,t_su,sm_i,t_i,t_s) | !-------------------------------------------------------------------- WRITE(numout,*) WRITE(numout,*) 'lim_istate : Ice initialization ' WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ' ! reference salinity 34psu zs0 = 34.e0 ztf = ABS ( rt0 - 0.0575 * zs0 & & + 1.710523e-03 * zs0 * SQRT( zs0 ) & & - 2.154996e-04 * zs0 *zs0 ) ! constants for heat contents zeps = 1.0d-20 zeps6 = 1.0d-06 ! t_bo: Seawater freezing point t_bo(:,:) = ztf ! zgfactor for initial ice distribution zgfactorn(:) = 0.0 zgfactors(:) = 0.0 ! first ice type DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) zhin (1) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 zgfactorn(1) = zgfactorn(1) + exp(-(zhin(1)-hginn_u)*(zhin(1)-hginn_u)/2.0) zhis (1) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 zgfactors(1) = zgfactors(1) + exp(-(zhis(1)-hgins_u)*(zhis(1)-hgins_u)/2.0) END DO ! jl zgfactorn(1) = aginn_u / zgfactorn(1) zgfactors(1) = agins_u / zgfactors(1) ! ------------- ! new distribution, polynom of second order, conserving area and volume zh1 = 0.0 zh2 = 0.0 zh3 = 0.0 DO jl = 1, jpl zh = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 zh1 = zh1 + zh zh2 = zh2 + zh*zh zh3 = zh3 + zh*zh*zh END DO WRITE(numout,*) ' zh1 : ', zh1 WRITE(numout,*) ' zh2 : ', zh2 WRITE(numout,*) ' zh3 : ', zh3 zvol = aginn_u*hginn_u zare = aginn_u IF ( jpl .GE. 2 ) THEN zbn = ( zvol*zh2 - zare*zh3 ) / ( zh2*zh2 - zh1*zh3) zan = ( zare - zbn*zh1 ) / zh2 ENDIF WRITE(numout,*) ' zvol: ', zvol WRITE(numout,*) ' zare: ', zare WRITE(numout,*) ' zbn : ', zbn WRITE(numout,*) ' zan : ', zan zvol = agins_u*hgins_u zare = agins_u IF ( jpl .GE. 2 ) THEN zbs = ( zvol*zh2 - zare*zh3 ) / ( zh2*zh2 - zh1*zh3) zas = ( zare - zbs*zh1 ) / zh2 ENDIF WRITE(numout,*) ' zvol: ', zvol WRITE(numout,*) ' zare: ', zare WRITE(numout,*) ' zbn : ', zbn WRITE(numout,*) ' zan : ', zan !end of new lines ! ------------- !!! ! retour a LIMA_MEC ! ! second ice type ! zdummy = hi_max(ice_cat_bounds(2,1)-1) ! hi_max(ice_cat_bounds(2,1)-1) = 0.0 ! ! here to change !!!! ! jm = 2 ! DO jl = ice_cat_bounds(jm,1), ice_cat_bounds(jm,2) ! zhin (2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 ! zhin (2) = ( hi_max_typ(jl-ice_cat_bounds(2,1),jm ) + & ! hi_max_typ(jl-ice_cat_bounds(2,1) + 1,jm) ) / 2.0 ! zgfactorn(2) = zgfactorn(2) + exp(-(zhin(2)-hginn_d)*(zhin(2)-hginn_d)/2.0) ! zhis (2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 ! zhis (2) = ( hi_max_typ(jl-ice_cat_bounds(2,1),jm ) + & ! hi_max_typ(jl-ice_cat_bounds(2,1) + 1,jm) ) / 2.0 ! zgfactors(2) = zgfactors(2) + exp(-(zhis(2)-hgins_d)*(zhis(2)-hgins_d)/2.0) ! END DO ! jl ! zgfactorn(2) = aginn_d / zgfactorn(2) ! zgfactors(2) = agins_d / zgfactors(2) ! hi_max(ice_cat_bounds(2,1)-1) = zdummy ! END retour a LIMA_MEC !!! DO jj = 1, jpj DO ji = 1, jpi !--- Criterion for presence (zidto=1) or absence (zidto=0) of ice zidto = tms(ji,jj) * ( 1.0 - MAX(zzero, SIGN( zone, ztn(ji,jj) - t_bo(ji,jj) - ttest) ) ) !--- Northern hemisphere !---------------------------------------------------------------- IF( fcor(ji,jj) >= 0.e0 ) THEN !----------------------- ! Ice area / thickness !----------------------- IF ( jpl .EQ. 1) THEN ! one category DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) ! loop over ice thickness categories a_i(ji,jj,jl) = zidto * aginn_u ht_i(ji,jj,jl) = zidto * hginn_u v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl) END DO ELSE ! several categories DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) ! loop over ice thickness categories zhin(1) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 a_i(ji,jj,jl) = zidto * MAX( zgfactorn(1) * exp(-(zhin(1)-hginn_u)* & (zhin(1)-hginn_u)/2.0) , epsi06) ! new line a_i(ji,jj,jl) = zidto * ( zan * zhin(1) * zhin(1) + zbn * zhin(1) ) ht_i(ji,jj,jl) = zidto * zhin(1) v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl) END DO ENDIF !!! ! retour a LIMA_MEC ! !ridged ice ! zdummy = hi_max(ice_cat_bounds(2,1)-1) ! hi_max(ice_cat_bounds(2,1)-1) = 0.0 ! DO jl = ice_cat_bounds(2,1), ice_cat_bounds(2,2) ! loop over ice thickness categories ! zhin(2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 ! a_i(ji,jj,jl) = zidto * MAX( zgfactorn(2) * exp(-(zhin(2)-hginn_d)* & ! (zhin(2)-hginn_d)/2.0) , epsi06) ! ht_i(ji,jj,jl) = zidto * zhin(2) ! v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl) ! END DO ! hi_max(ice_cat_bounds(2,1)-1) = zdummy ! !rafted ice ! jl = 6 ! a_i(ji,jj,jl) = 0.0 ! ht_i(ji,jj,jl) = 0.0 ! v_i(ji,jj,jl) = 0.0 ! END retour a LIMA_MEC !!! DO jl = 1, jpl !------------- ! Snow depth !------------- ht_s(ji,jj,jl) = zidto * hninn v_s(ji,jj,jl) = ht_s(ji,jj,jl)*a_i(ji,jj,jl) !--------------- ! Ice salinity !--------------- sm_i(ji,jj,jl) = zidto * sinn + ( 1.0 - zidto ) * 0.1 smv_i(ji,jj,jl) = MIN( sm_i(ji,jj,jl) , sss_io(ji,jj) ) * v_i(ji,jj,jl) !---------- ! Ice age !---------- o_i(ji,jj,jl) = zidto * 1.0 + ( 1.0 - zidto ) oa_i(ji,jj,jl) = o_i(ji,jj,jl) * a_i(ji,jj,jl) !------------------------------ ! Sea ice surface temperature !------------------------------ t_su(ji,jj,jl) = zidto * 270.0 + ( 1.0 - zidto ) * t_bo(ji,jj) !------------------------------------ ! Snow temperature and heat content !------------------------------------ DO jk = 1, nlay_s t_s(ji,jj,jk,jl) = zidto * 270.00 + ( 1.0 - zidto ) * rtt ! Snow energy of melting e_s(ji,jk,jk,jl) = zidto * rhosn * ( cpic * ( rtt - t_s(ji,jj,jk,jl) ) + lfus ) ! Change dimensions e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) / unit_fac ! Multiply by volume, so that heat content in 10^9 Joules e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * area(ji,jj) * & v_s(ji,jj,jl) / nlay_s END DO !jk !----------------------------------------------- ! Ice salinities, temperature and heat content !----------------------------------------------- DO jk = 1, nlay_i t_i(ji,jj,jk,jl) = zidto*270.00 + ( 1.0 - zidto ) * rtt s_i(ji,jj,jk,jl) = zidto * sinn + ( 1.0 - zidto ) * 0.1 ztmelts = - tmut * s_i(ji,jj,jk,jl) + rtt !Melting temperature in K ! heat content per unit volume e_i(ji,jj,jk,jl) = zidto * rhoic * & ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) & + lfus * ( 1.0 - (ztmelts-rtt) / MIN((t_i(ji,jj,jk,jl)-rtt),-zeps) ) & - rcp * ( ztmelts - rtt ) & ) ! Correct dimensions to avoid big values e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) / unit_fac ! Mutliply by ice volume, and divide by number of layers to get heat content in 10^9 J e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * & area(ji,jj) * a_i(ji,jj,jl) * ht_i(ji,jj,jl) / & nlay_i END DO ! jk END DO ! jl ELSE ! on fcor !--- Southern hemisphere !---------------------------------------------------------------- !----------------------- ! Ice area / thickness !----------------------- IF ( jpl .EQ. 1) THEN ! one category DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) ! loop over ice thickness categories a_i(ji,jj,jl) = zidto * agins_u ht_i(ji,jj,jl) = zidto * hgins_u v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl) END DO ELSE ! several categories !level ice DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) !over thickness categories zhis(1) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 a_i(ji,jj,jl) = zidto * MAX( zgfactors(1) * exp(-(zhis(1)-hgins_u) * & (zhis(1)-hgins_u)/2.0) , epsi06 ) ! new line square distribution volume conserving a_i(ji,jj,jl) = zidto * ( zas * zhis(1) * zhis(1) + zbs * zhis(1) ) ht_i(ji,jj,jl) = zidto * zhis(1) v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl) END DO ! jl ENDIF !!! ! retour a LIMA_MEC ! !ridged ice ! zdummy = hi_max(ice_cat_bounds(2,1)-1) ! hi_max(ice_cat_bounds(2,1)-1) = 0.0 ! DO jl = ice_cat_bounds(2,1), ice_cat_bounds(2,2) !over thickness categories ! zhis(2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 ! a_i(ji,jj,jl) = zidto*MAX( zgfactors(2) * exp(-(zhis(2)-hgins_d)*(zhis(2)-hgins_d)/2.0), epsi06 ) ! ht_i(ji,jj,jl) = zidto * zhis(2) ! v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl) ! END DO ! hi_max(ice_cat_bounds(2,1)-1) = zdummy ! !rafted ice ! jl = 6 ! a_i(ji,jj,jl) = 0.0 ! ht_i(ji,jj,jl) = 0.0 ! v_i(ji,jj,jl) = 0.0 ! END retour a LIMA_MEC !!! DO jl = 1, jpl !over thickness categories !--------------- ! Snow depth !--------------- ht_s(ji,jj,jl) = zidto * hnins v_s(ji,jj,jl) = ht_s(ji,jj,jl)*a_i(ji,jj,jl) !--------------- ! Ice salinity !--------------- sm_i(ji,jj,jl) = zidto * sins + ( 1.0 - zidto ) * 0.1 smv_i(ji,jj,jl) = MIN( sm_i(ji,jj,jl) , sss_io(ji,jj) ) * v_i(ji,jj,jl) !---------- ! Ice age !---------- o_i(ji,jj,jl) = zidto * 1.0 + ( 1.0 - zidto ) oa_i(ji,jj,jl) = o_i(ji,jj,jl) * a_i(ji,jj,jl) !------------------------------ ! Sea ice surface temperature !------------------------------ t_su(ji,jj,jl) = zidto * 270.0 + ( 1.0 - zidto ) * t_bo(ji,jj) !---------------------------------- ! Snow temperature / heat content !---------------------------------- DO jk = 1, nlay_s t_s(ji,jj,jk,jl) = zidto * 270.00 + ( 1.0 - zidto ) * rtt ! Snow energy of melting e_s(ji,jj,jk,jl) = zidto * rhosn * ( cpic * ( rtt - t_s(ji,jj,jk,jl) ) + lfus ) ! Change dimensions e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) / unit_fac ! Multiply by volume, so that heat content in 10^9 Joules e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * area(ji,jj) * & v_s(ji,jj,jl) / nlay_s END DO !--------------------------------------------- ! Ice temperature, salinity and heat content !--------------------------------------------- DO jk = 1, nlay_i t_i(ji,jj,jk,jl) = zidto*270.00 + ( 1.0 - zidto ) * rtt s_i(ji,jj,jk,jl) = zidto * sins + ( 1.0 - zidto ) * 0.1 ztmelts = - tmut * s_i(ji,jj,jk,jl) + rtt !Melting temperature in K ! heat content per unit volume e_i(ji,jj,jk,jl) = zidto * rhoic * & ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) & + lfus * ( 1.0 - (ztmelts-rtt) / MIN((t_i(ji,jj,jk,jl)-rtt),-zeps) ) & - rcp * ( ztmelts - rtt ) & ) ! Correct dimensions to avoid big values e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) / unit_fac ! Mutliply by ice volume, and divide by number of layers to get heat content in 10^9 J e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * & area(ji,jj) * a_i(ji,jj,jl) * ht_i(ji,jj,jl) / & nlay_i END DO !jk END DO ! jl ENDIF ! on fcor ENDDO ENDDO !-------------------------------------------------------------------- ! 3) Global ice variables for output diagnostics | !-------------------------------------------------------------------- fsbbq (:,:) = 0.e0 u_ice (:,:) = 0.e0 v_ice (:,:) = 0.e0 stress1_i(:,:) = 0.0 stress2_i(:,:) = 0.0 stress12_i(:,:) = 0.0 # if defined key_coupled albege(:,:) = 0.8 * tms(:,:) # endif !-------------------------------------------------------------------- ! 4) Moments for advection !-------------------------------------------------------------------- sxice (:,:,:) = 0.e0 ; sxsn (:,:,:) = 0.e0 ; sxa (:,:,:) = 0.e0 syice (:,:,:) = 0.e0 ; sysn (:,:,:) = 0.e0 ; sya (:,:,:) = 0.e0 sxxice(:,:,:) = 0.e0 ; sxxsn(:,:,:) = 0.e0 ; sxxa (:,:,:) = 0.e0 syyice(:,:,:) = 0.e0 ; syysn(:,:,:) = 0.e0 ; syya (:,:,:) = 0.e0 sxyice(:,:,:) = 0.e0 ; sxysn(:,:,:) = 0.e0 ; sxya (:,:,:) = 0.e0 sxc0 (:,:,:) = 0.e0 ; sxe (:,:,:,:)= 0.e0 syc0 (:,:,:) = 0.e0 ; sye (:,:,:,:)= 0.e0 sxxc0 (:,:,:) = 0.e0 ; sxxe (:,:,:,:)= 0.e0 syyc0 (:,:,:) = 0.e0 ; syye (:,:,:,:)= 0.e0 sxyc0 (:,:,:) = 0.e0 ; sxye (:,:,:,:)= 0.e0 sxsal (:,:,:) = 0.e0 sysal (:,:,:) = 0.e0 sxxsal (:,:,:) = 0.e0 syysal (:,:,:) = 0.e0 sxysal (:,:,:) = 0.e0 !-------------------------------------------------------------------- ! 5) Lateral boundary conditions | !-------------------------------------------------------------------- DO jl = 1, jpl CALL lbc_lnk( a_i(:,:,jl) , 'T', 1. ) CALL lbc_lnk( v_i(:,:,jl) , 'T', 1. ) CALL lbc_lnk( v_s(:,:,jl) , 'T', 1. ) CALL lbc_lnk( smv_i(:,:,jl), 'T', 1. ) CALL lbc_lnk( oa_i(:,:,jl) , 'T', 1. ) CALL lbc_lnk( ht_i(:,:,jl) , 'T', 1. ) CALL lbc_lnk( ht_s(:,:,jl) , 'T', 1. ) CALL lbc_lnk( sm_i(:,:,jl) , 'T', 1. ) CALL lbc_lnk( o_i(:,:,jl) , 'T', 1. ) CALL lbc_lnk( t_su(:,:,jl) , 'T', 1. ) DO jk = 1, nlay_s CALL lbc_lnk(t_s(:,:,jk,jl), 'T', 1. ) END DO DO jk = 1, nlay_i CALL lbc_lnk(t_i(:,:,jk,jl), 'T', 1. ) CALL lbc_lnk(e_i(:,:,jk,jl), 'T', 1. ) END DO a_i (:,:,jl) = tms(:,:) * a_i(:,:,jl) END DO CALL lbc_lnk( at_i , 'T', 1. ) at_i(:,:) = tms(:,:) * at_i(:,:) ! put 0 over land CALL lbc_lnk( fsbbq , 'T', 1. ) CALL lbc_lnk( sss_io , 'T', 1. ) END SUBROUTINE lim_istate SUBROUTINE lim_istate_init !!------------------------------------------------------------------- !! *** ROUTINE lim_istate_init *** !! !! ** Purpose : Definition of initial state of the ice !! !! ** Method : Read the namiceini namelist and check the parameter !! values called at the first timestep (nit000) !! !! ** input : !! Namelist namiceini !! !! history : !! 8.5 ! 03-08 (C. Ethe) original code !!----------------------------------------------------------------------------- NAMELIST/namiceini/ ttest, hninn, hginn_u, aginn_u, hginn_d, aginn_d, hnins, & hgins_u, agins_u, hgins_d, agins_d, sinn, sins !!----------------------------------------------------------------------------- ! Define the initial parameters ! ------------------------- ! Read Namelist namiceini REWIND ( numnam_ice ) READ ( numnam_ice , namiceini ) IF(lwp) THEN WRITE(numout,*) WRITE(numout,*) 'lim_istate_init : ice parameters inititialisation ' WRITE(numout,*) '~~~~~~~~~~~~~~~' WRITE(numout,*) ' threshold water temp. for initial sea-ice ttest = ', ttest WRITE(numout,*) ' initial snow thickness in the north hninn = ', hninn WRITE(numout,*) ' initial undef ice thickness in the north hginn_u = ', hginn_u WRITE(numout,*) ' initial undef ice concentr. in the north aginn_u = ', aginn_u WRITE(numout,*) ' initial def ice thickness in the north hginn_d = ', hginn_d WRITE(numout,*) ' initial def ice concentr. in the north aginn_d = ', aginn_d WRITE(numout,*) ' initial snow thickness in the south hnins = ', hnins WRITE(numout,*) ' initial undef ice thickness in the north hgins_u = ', hgins_u WRITE(numout,*) ' initial undef ice concentr. in the north agins_u = ', agins_u WRITE(numout,*) ' initial def ice thickness in the north hgins_d = ', hgins_d WRITE(numout,*) ' initial def ice concentr. in the north agins_d = ', agins_d WRITE(numout,*) ' initial ice salinity in the north sinn = ', sinn WRITE(numout,*) ' initial ice salinity in the south sins = ', sins ENDIF END SUBROUTINE lim_istate_init #else !!---------------------------------------------------------------------- !! Default option : Empty module NO LIM sea-ice model !!---------------------------------------------------------------------- CONTAINS SUBROUTINE lim_istate ! Empty routine END SUBROUTINE lim_istate #endif !!====================================================================== END MODULE limistate