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 834 for trunk/NEMO/LIM_SRC_3/iceini.F90 – NEMO

Ignore:
Timestamp:
2008-03-07T18:11:35+01:00 (16 years ago)
Author:
ctlod
Message:

Clean comments and useless lines, see ticket:#72

File:
1 edited

Legend:

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

    r830 r834  
    2222   USE par_ice 
    2323   USE limvar 
    24    USE limicepoints 
    2524 
    2625   IMPLICIT NONE 
     
    5150   !!---------------------------------------------------------------------- 
    5251   !!   LIM 2.0,  UCL-LOCEAN-IPSL (2005)  
     52   !!   LIM 3.0,  UCL-ASTR-LOCEAN-IPSL (2008)  
    5353   !! $Header: /home/opalod/NEMOCVSROOT/NEMO/LIM_SRC/iceini.F90,v 1.4 2005/03/27 18:34:41 opalod Exp $  
    5454   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     
    6464      !! 
    6565      !! History : 
    66       !!   8.5  !  02-08  (G. Madec)  F90: Free form and modules 
     66      !!   2.0  !  02-08  (G. Madec)  F90: Free form and modules 
     67      !!   3.0  !  08-03  (M. Vancop) ITD, salinity, EVP-C 
    6768      !!---------------------------------------------------------------------- 
    68  
    69       INTEGER :: ji,jj,jk,jl, index 
    7069 
    7170      ! Open the namelist file  
     
    7372 
    7473      CALL ice_run                    !  read in namelist some run parameters 
    75  
    76       CALL lim_icepoints              !  define specific checking ice points 
    7774                  
    7875      ! Louvain la Neuve Ice model 
     
    8784      CALL lim_msh                    ! ice mesh initialization 
    8885      
    89       CALL lim_itd_ini 
     86      CALL lim_itd_ini                ! initialize the ice thickness 
     87                                      ! distribution 
    9088      ! Initial sea-ice state 
    9189      IF( .NOT.ln_rstart ) THEN 
    9290         numit = 0 
    93          ! martin ajoute 
    9491         numit = nit000 - 1 
    9592         CALL lim_istate              ! start from rest: sea-ice deduced from sst 
    96          CALL lim_var_agg(1) 
    97          CALL lim_var_glo2eqv 
     93         CALL lim_var_agg(1)          ! aggregate category variables in 
     94                                      ! bulk variables 
     95         CALL lim_var_glo2eqv         ! convert global variables in equivalent 
     96                                      ! variables 
    9897      ELSE 
    9998         CALL lim_rst_read( numit )   ! start from a restart file 
    100          ! martin ajoute 
    10199         numit = nit000 - 1 
    102          CALL lim_var_agg(1) 
    103          CALL lim_var_glo2eqv 
     100         CALL lim_var_agg(1)          ! aggregate ice variables 
     101         CALL lim_var_glo2eqv         ! convert global var in equivalent variables 
    104102      ENDIF 
    105103 
     
    130128      !! history : 
    131129      !!   2.0  !  03-08 (C. Ethe)  Original code 
     130      !!   3.0  !  08-03 (M. Vancop) LIM3 
    132131      !!------------------------------------------------------------------- 
    133132      NAMELIST/namicerun/ ln_limdyn, acrit, hsndif, hicdif, cai, cao, ln_nicep 
     
    158157        !!            Initializes the ice thickness distribution 
    159158        !! ** Method  : 
    160         !!            Very simple 
     159        !!            Very simple. Currently there are no ice types in the 
     160        !!            model... 
    161161        !! 
    162162        !! ** Arguments : 
     
    172172        !! ** History : 
    173173        !!           (12-2005) Martin Vancoppenolle 
    174         !!           Rien n'est jamais acquis 
    175         !!           A l'homme ni sa force 
    176         !!           Ni sa faiblesse ni son coeur 
    177         !!           Et quand il croit 
    178         !!           Ouvrir ses bras son ombre 
    179         !!           Est celle d'une croix 
    180174        !! 
    181175        !!------------------------------------------------------------------ 
     
    183177 
    184178       !! * Local variables 
    185        INTEGER ::   ji,       &   ! spatial dummy loop index 
    186                     jl,       &   ! ice category dummy loop index 
     179       INTEGER ::   jl,       &   ! ice category dummy loop index 
    187180                    jm            ! ice types    dummy loop index 
    188181 
     
    198191 
    199192!!-- End of declarations 
    200 !!---------------------------------------------------------------------------------------------- 
    201  
    202 !--------------------------------------------------------------------------------------------------! 
    203 ! 1) Ice thickness distribution parameters initialization                                          ! 
    204 !--------------------------------------------------------------------------------------------------! 
    205  
    206       !- Types boundaries in integer thickness space 
    207       !---------------------------------------------- 
    208       !- Type 1 (undeformed ice) Boundaries 
     193!!------------------------------------------------------------------------------ 
     194 
     195!------------------------------------------------------------------------------! 
     196! 1) Ice thickness distribution parameters initialization     
     197!------------------------------------------------------------------------------! 
     198 
     199      !- Types boundaries (integer) 
     200      !---------------------------- 
    209201      ice_cat_bounds(1,1) = 1 
    210202      ice_cat_bounds(1,2) = jpl 
    211 !     !- Type 2 (ridged ice  ) Boundaries 
    212 !     ice_cat_bounds(2,1) = 4 
    213 !     ice_cat_bounds(2,2) = 5 
    214 !     !- Type 3 (rafted ice  ) Boundaries 
    215 !     ice_cat_bounds(3,1) = 6 
    216 !     ice_cat_bounds(3,2) = 6 
    217203 
    218204      !- Number of ice thickness categories in each ice type 
     
    223209      !- Make the correspondence between thickness categories and ice types 
    224210      !--------------------------------------------------------------------- 
    225       !- ice_types = 1 -> undeformed ice 
    226       !- ice_types = 2 -> ridged   ice 
    227       !- ice_types = 3 -> rafted   ice 
    228211      DO jm = 1, jpm       !over types 
    229212         DO jl = ice_cat_bounds(jm,1), ice_cat_bounds(jm,2) !over thickness categories 
     
    242225      WRITE(numout,*) 
    243226 
    244       !- Thickness categories boundaries in thickness space 
    245       !--------------------------------------------------------------------- 
    246  
    247       ! NEW DEFINITION 
    248  
    249          hi_max(:) = 0.0 
    250          hi_max_typ(:,:) = 0.0 
    251  
    252 ! new categories 
    253 !     !- Type 3 - rafted ice 
    254 !        hi_max(ice_cat_bounds(3,2)) = 5.0 
    255  
    256 !     !- Type 2 - ridged ice 
    257 !        zc1 = 3./REAL(ice_cat_bounds(2,2)-ice_cat_bounds(2,1)+1) 
    258 !        zc2 = 10.0*zc1 
    259 !        zc3 = 3.0 
    260  
    261 !        DO jl = ice_cat_bounds(2,1),ice_cat_bounds(2,2) 
    262 !           zx1 = REAL(jl-ice_cat_bounds(2,1)+1) / REAL(ice_cat_bounds(2,2)-ice_cat_bounds(2,1)+1) 
    263 !           hi_max(jl) = hi_max(jl-1) + zc1 + zc2 * (1.0 + TANH ( zc3 * (zx1 - 1.0 ) ) ) 
    264 !        END DO 
    265  
    266 !        ! force the thickness into the ice categories 
    267 !        hi_max(ice_cat_bounds(2,1)) = 15.0 
    268 !        hi_max(ice_cat_bounds(2,2)) = 25.0 
     227      !- Thickness categories boundaries  
     228      !---------------------------------- 
     229      hi_max(:) = 0.0 
     230      hi_max_typ(:,:) = 0.0 
    269231 
    270232      !- Type 1 - undeformed ice 
    271          zc1 = 3./REAL(ice_cat_bounds(1,2)-ice_cat_bounds(1,1)+1) 
    272          zc2 = 10.0*zc1 
    273          zc3 = 3.0 
    274  
    275          DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) 
    276             zx1 = REAL(jl-1) / REAL(ice_cat_bounds(1,2)-ice_cat_bounds(1,1)+1) 
    277             hi_max(jl) = hi_max(jl-1) + zc1 + zc2 * (1.0 + TANH ( zc3 * (zx1 - 1.0 ) ) ) 
    278          END DO 
     233      zc1 = 3./REAL(ice_cat_bounds(1,2)-ice_cat_bounds(1,1)+1) 
     234      zc2 = 10.0*zc1 
     235      zc3 = 3.0 
     236 
     237      DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) 
     238         zx1 = REAL(jl-1) / REAL(ice_cat_bounds(1,2)-ice_cat_bounds(1,1)+1) 
     239         hi_max(jl) = hi_max(jl-1) + zc1 + zc2 * (1.0 + TANH ( zc3 * (zx1 - 1.0 ) ) ) 
     240      END DO 
    279241 
    280242      !- Fill in the hi_max_typ vector, useful in other circumstances 
    281          DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) 
    282             hi_max_typ(jl,1) = hi_max(jl) 
    283          END DO 
    284 !        DO jl = ice_cat_bounds(2,1), ice_cat_bounds(2,2) 
    285 !           hi_max_typ(jl-ice_cat_bounds(2,1)+1,2) = hi_max(jl) 
    286 !        END DO 
    287 !        DO jl = ice_cat_bounds(3,1), ice_cat_bounds(3,2) 
    288 !           hi_max_typ(jl-ice_cat_bounds(3,1)+1,3) = hi_max(jl) 
    289 !        END DO 
    290  
    291          WRITE(numout,*) ' Thickness category boundaries independently of ice type ' 
    292          WRITE(numout,*) ' hi_max ', hi_max(0:jpl) 
    293  
    294          WRITE(numout,*) ' Thickness category boundaries inside ice types ' 
    295          DO jm = 1, jpm 
    296             WRITE(numout,*) ' Type number ', jm 
    297             WRITE(numout,*) ' hi_max_typ : ', hi_max_typ(0:ice_ncat_types(jm),jm) 
    298          END DO 
    299  
    300          DO jl = 1, jpl 
    301             hi_mean(jl) = ( hi_max(jl) + hi_max(jl-1) ) / 2.0 
    302          END DO 
    303  
    304          tn_ice(:,:,:) = t_su(:,:,:) 
     243      DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) 
     244         hi_max_typ(jl,1) = hi_max(jl) 
     245      END DO 
     246 
     247      WRITE(numout,*) ' Thickness category boundaries independently of ice type ' 
     248      WRITE(numout,*) ' hi_max ', hi_max(0:jpl) 
     249 
     250      WRITE(numout,*) ' Thickness category boundaries inside ice types ' 
     251      DO jm = 1, jpm 
     252         WRITE(numout,*) ' Type number ', jm 
     253         WRITE(numout,*) ' hi_max_typ : ', hi_max_typ(0:ice_ncat_types(jm),jm) 
     254      END DO 
     255 
     256      DO jl = 1, jpl 
     257         hi_mean(jl) = ( hi_max(jl) + hi_max(jl-1) ) / 2.0 
     258      END DO 
     259 
     260      tn_ice(:,:,:) = t_su(:,:,:) 
    305261 
    306262    END SUBROUTINE lim_itd_ini 
Note: See TracChangeset for help on using the changeset viewer.