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.
iceini_2.F90 in branches/dev_002_LIM/NEMO/LIM_SRC_2 – NEMO

source: branches/dev_002_LIM/NEMO/LIM_SRC_2/iceini_2.F90 @ 833

Last change on this file since 833 was 823, checked in by rblod, 16 years ago

Final step to rename LIM_SRC in LIM_SRC_2

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.7 KB
RevLine 
[821]1MODULE iceini_2
[3]2   !!======================================================================
3   !!                       ***  MODULE iceini   ***
[821]4   !!   Sea-ice model : LIM 2.0 Sea ice model Initialization
[3]5   !!======================================================================
[508]6   !! History :   1.0  !  02-08  (G. Madec)  F90: Free form and modules
7   !!             2.0  !  03-08  (C. Ethe)  add ice_run
8   !!----------------------------------------------------------------------
[821]9#if defined key_lim2
[3]10   !!----------------------------------------------------------------------
[821]11   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
[3]12   !!----------------------------------------------------------------------
[508]13   !!----------------------------------------------------------------------
[821]14   !!   ice_init_2       : sea-ice model initialization
15   !!   ice_run_2        : Definition some run parameter for ice model
[3]16   !!----------------------------------------------------------------------
17   USE dom_oce
[821]18   USE dom_ice_2
[719]19   USE in_out_manager
[3]20   USE ice_oce         ! ice variables
[719]21   USE flx_oce
[3]22   USE phycst          ! Define parameters for the routines
23   USE ocfzpt
[821]24   USE ice_2
25   USE limmsh_2
26   USE limistate_2
27   USE limrst_2   
[253]28   USE ini1d           ! initialization of the 1D configuration
[508]29     
[3]30   IMPLICIT NONE
31   PRIVATE
32
[821]33   PUBLIC   ice_init_2               ! called by opa.F90
[3]34
[508]35   LOGICAL , PUBLIC               ::   ln_limdyn = .TRUE.   !: flag for ice dynamics (T) or not (F)
36   REAL(wp), PUBLIC               ::   hsndif = 0.e0        !: computation of temp. in snow (0) or not (9999)
37   REAL(wp), PUBLIC               ::   hicdif = 0.e0        !: computation of temp. in ice (0) or not (9999)
38   REAL(wp), PUBLIC, DIMENSION(2) ::   acrit  = (/ 1.e-06 , 1.e-06 /)    !: minimum fraction for leads in
39      !                                                                  !  north and south hemisphere
[3]40   !!----------------------------------------------------------------------
[247]41   !!   LIM 2.0,  UCL-LOCEAN-IPSL (2005)
[719]42   !! $Header$
[247]43   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
[3]44   !!----------------------------------------------------------------------
45
46CONTAINS
47
[821]48   SUBROUTINE ice_init_2
[3]49      !!----------------------------------------------------------------------
[821]50      !!                  ***  ROUTINE ice_init_2  ***
[3]51      !!
52      !! ** purpose :   
53      !!----------------------------------------------------------------------
[508]54      CHARACTER(len=80) :: namelist_icename
55      !!----------------------------------------------------------------------
56      !
[3]57      ! Open the namelist file
[391]58      namelist_icename = 'namelist_ice'
59      CALL ctlopn(numnam_ice,namelist_icename,'OLD', 'FORMATTED', 'SEQUENTIAL',   &
60                     1,numout,.FALSE.,1)     
[821]61      CALL ice_run_2                    !  read in namelist some run parameters
[3]62                 
63      ! Louvain la Neuve Ice model
[719]64      IF( nacc == 1 ) THEN
65          dtsd2   = nfice * rdtmin * 0.5
66          rdt_ice = nfice * rdtmin
67      ELSE
68          dtsd2   = nfice * rdt * 0.5
69          rdt_ice = nfice * rdt
70      ENDIF
[3]71
[821]72      CALL lim_msh_2                  ! ice mesh initialization
[3]73     
74      ! Initial sea-ice state
75      IF( .NOT.ln_rstart ) THEN
[821]76         CALL lim_istate_2            ! start from rest: sea-ice deduced from sst
[3]77      ELSE
[821]78         CALL lim_rst_read_2          ! start from a restart file
[3]79      ENDIF
80     
81      tn_ice(:,:) = sist(:,:)         ! initialisation of ice temperature   
82      freeze(:,:) = 1.0 - frld(:,:)   ! initialisation of sea/ice cover   
83# if defined key_coupled
84      alb_ice(:,:) = albege(:,:)      ! sea-ice albedo
85# endif
[508]86      !
[821]87   END SUBROUTINE ice_init_2
[3]88
89
[821]90   SUBROUTINE ice_run_2
[3]91      !!-------------------------------------------------------------------
[821]92      !!                  ***  ROUTINE ice_run_2 ***
[3]93      !!                 
94      !! ** Purpose :   Definition some run parameter for ice model
95      !!
96      !! ** Method  :   Read the namicerun namelist and check the parameter
97      !!       values called at the first timestep (nit000)
98      !!
99      !! ** input   :   Namelist namicerun
100      !!-------------------------------------------------------------------
[675]101      NAMELIST/namicerun/ ln_limdyn, ln_limdmp, acrit, hsndif, hicdif
[3]102      !!-------------------------------------------------------------------
[508]103      !                   
104      REWIND ( numnam_ice )                       ! Read Namelist namicerun
[3]105      READ   ( numnam_ice , namicerun )
[253]106
[508]107      IF( lk_cfg_1d  )   ln_limdyn = .FALSE.      ! No ice transport in 1D configuration
[253]108
[3]109      IF(lwp) THEN
110         WRITE(numout,*)
111         WRITE(numout,*) 'ice_run : ice share parameters for dynamics/advection/thermo of sea-ice'
112         WRITE(numout,*) ' ~~~~~~'
[76]113         WRITE(numout,*) '   switch for ice dynamics (1) or not (0)      ln_limdyn   = ', ln_limdyn
[675]114         WRITE(numout,*) '   Ice damping                                 ln_limdmp   = ', ln_limdmp
[76]115         WRITE(numout,*) '   minimum fraction for leads in the NH (SH)  acrit(1/2)   = ', acrit(:)
[3]116         WRITE(numout,*) '   computation of temp. in snow (=0) or not (=9999) hsndif = ', hsndif
117         WRITE(numout,*) '   computation of temp. in ice  (=0) or not (=9999) hicdif = ', hicdif
118      ENDIF
[508]119      !
[821]120   END SUBROUTINE ice_run_2
[3]121
122#else
123   !!----------------------------------------------------------------------
[821]124   !!   Default option :        Empty module       NO LIM 2.0 sea-ice model
[3]125   !!----------------------------------------------------------------------
126CONTAINS
[821]127   SUBROUTINE ice_init_2      ! Empty routine
128   END SUBROUTINE ice_init_2
[3]129#endif
130
131   !!======================================================================
[821]132END MODULE iceini_2
Note: See TracBrowser for help on using the repository browser.