- Timestamp:
- 2015-02-03T18:11:02+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5044_CNRS_LIM3CLEAN/NEMOGCM/NEMO/LIM_SRC_3/limitd_th.F90
r5051 r5053 13 13 !! 'key_lim3' : LIM3 sea-ice model 14 14 !!---------------------------------------------------------------------- 15 !! lim_itd_th : thermodynamics of ice thickness distribution16 15 !! lim_itd_th_rem : 17 16 !! lim_itd_th_reb : … … 26 25 USE ice ! LIM-3 variables 27 26 USE par_ice ! LIM-3 parameters 28 USE limthd_lac ! LIM-3 lateral accretion29 27 USE limvar ! LIM-3 variables 30 28 USE limcons ! LIM-3 conservation … … 34 32 USE wrk_nemo ! work arrays 35 33 USE lib_fortran ! to use key_nosignedzero 36 USE timing ! Timing 37 USE limcons ! conservation tests 34 USE limcons ! conservation tests 38 35 39 36 IMPLICIT NONE 40 37 PRIVATE 41 38 42 PUBLIC lim_itd_th ! called by ice_stp43 39 PUBLIC lim_itd_th_rem 44 40 PUBLIC lim_itd_th_reb … … 52 48 !!---------------------------------------------------------------------- 53 49 CONTAINS 54 55 SUBROUTINE lim_itd_th( kt )56 !!------------------------------------------------------------------57 !! *** ROUTINE lim_itd_th ***58 !!59 !! ** Purpose : computes the thermodynamics of ice thickness distribution60 !!61 !! ** Method :62 !!------------------------------------------------------------------63 INTEGER, INTENT(in) :: kt ! time step index64 !65 INTEGER :: ji, jj, jk, jl ! dummy loop index66 !67 REAL(wp) :: zvi_b, zsmv_b, zei_b, zfs_b, zfw_b, zft_b68 !!------------------------------------------------------------------69 IF( nn_timing == 1 ) CALL timing_start('limitd_th')70 71 ! conservation test72 IF( ln_limdiahsb ) CALL lim_cons_hsm(0, 'limitd_th', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b)73 74 IF( kt == nit000 .AND. lwp ) THEN75 WRITE(numout,*)76 WRITE(numout,*) 'lim_itd_th : Thermodynamics of the ice thickness distribution'77 WRITE(numout,*) '~~~~~~~~~~~'78 ENDIF79 80 !------------------------------------------------------------------------------|81 ! 1) Transport of ice between thickness categories. |82 !------------------------------------------------------------------------------|83 ! Given thermodynamic growth rates, transport ice between84 ! thickness categories.85 IF( jpl > 1 ) CALL lim_itd_th_rem( 1, jpl, kt )86 !87 CALL lim_var_glo2eqv ! only for info88 CALL lim_var_agg(1)89 90 !------------------------------------------------------------------------------|91 ! 3) Add frazil ice growing in leads.92 !------------------------------------------------------------------------------|93 CALL lim_thd_lac94 CALL lim_var_glo2eqv ! only for info95 96 ! MV: Could put lateral melting here, would be better I think ???97 98 99 IF(ln_ctl) THEN ! Control print100 CALL prt_ctl_info(' ')101 CALL prt_ctl_info(' - Cell values : ')102 CALL prt_ctl_info(' ~~~~~~~~~~~~~ ')103 CALL prt_ctl(tab2d_1=area , clinfo1=' lim_itd_th : cell area :')104 CALL prt_ctl(tab2d_1=at_i , clinfo1=' lim_itd_th : at_i :')105 CALL prt_ctl(tab2d_1=vt_i , clinfo1=' lim_itd_th : vt_i :')106 CALL prt_ctl(tab2d_1=vt_s , clinfo1=' lim_itd_th : vt_s :')107 DO jl = 1, jpl108 CALL prt_ctl_info(' ')109 CALL prt_ctl_info(' - Category : ', ivar1=jl)110 CALL prt_ctl_info(' ~~~~~~~~~~')111 CALL prt_ctl(tab2d_1=a_i (:,:,jl) , clinfo1= ' lim_itd_th : a_i : ')112 CALL prt_ctl(tab2d_1=ht_i (:,:,jl) , clinfo1= ' lim_itd_th : ht_i : ')113 CALL prt_ctl(tab2d_1=ht_s (:,:,jl) , clinfo1= ' lim_itd_th : ht_s : ')114 CALL prt_ctl(tab2d_1=v_i (:,:,jl) , clinfo1= ' lim_itd_th : v_i : ')115 CALL prt_ctl(tab2d_1=v_s (:,:,jl) , clinfo1= ' lim_itd_th : v_s : ')116 CALL prt_ctl(tab2d_1=e_s (:,:,1,jl) , clinfo1= ' lim_itd_th : e_s : ')117 CALL prt_ctl(tab2d_1=t_su (:,:,jl) , clinfo1= ' lim_itd_th : t_su : ')118 CALL prt_ctl(tab2d_1=t_s (:,:,1,jl) , clinfo1= ' lim_itd_th : t_snow : ')119 CALL prt_ctl(tab2d_1=sm_i (:,:,jl) , clinfo1= ' lim_itd_th : sm_i : ')120 CALL prt_ctl(tab2d_1=smv_i (:,:,jl) , clinfo1= ' lim_itd_th : smv_i : ')121 DO jk = 1, nlay_i122 CALL prt_ctl_info(' ')123 CALL prt_ctl_info(' - Layer : ', ivar1=jk)124 CALL prt_ctl_info(' ~~~~~~~')125 CALL prt_ctl(tab2d_1=t_i(:,:,jk,jl) , clinfo1= ' lim_itd_th : t_i : ')126 CALL prt_ctl(tab2d_1=e_i(:,:,jk,jl) , clinfo1= ' lim_itd_th : e_i : ')127 END DO128 END DO129 ENDIF130 !131 ! conservation test132 IF( ln_limdiahsb ) CALL lim_cons_hsm(1, 'limitd_th', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b)133 !134 IF( nn_timing == 1 ) CALL timing_stop('limitd_th')135 END SUBROUTINE lim_itd_th136 !137 50 138 51 SUBROUTINE lim_itd_th_rem( klbnd, kubnd, kt ) … … 156 69 REAL(wp) :: zx1, zwk1, zdh0, zetamin, zdamax ! local scalars 157 70 REAL(wp) :: zx2, zwk2, zda0, zetamax ! - - 158 REAL(wp) :: zx3 , zareamin ! - -71 REAL(wp) :: zx3 159 72 CHARACTER (len = 15) :: fieldid 160 73 … … 191 104 CALL wrk_alloc( jpi,jpj, zhb0,zhb1,vt_i_init,vt_i_final,vt_s_init,vt_s_final,et_i_init,et_i_final,et_s_init,et_s_final ) 192 105 193 zareamin = epsi10 !minimum area in thickness categories tolerated by the conceptors of the model194 195 106 !!---------------------------------------------------------------------------------------------- 196 107 !! 0) Conservation checkand changes in each ice category … … 242 153 DO jj = 1, jpj 243 154 DO ji = 1, jpi 244 IF ( at_i(ji,jj) .gt. zareamin) THEN155 IF ( at_i(ji,jj) > epsi10 ) THEN 245 156 nbrem = nbrem + 1 246 157 nind_i(nbrem) = ji … … 1014 925 !!---------------------------------------------------------------------- 1015 926 CONTAINS 1016 SUBROUTINE lim_itd_th ! Empty routines1017 END SUBROUTINE lim_itd_th1018 SUBROUTINE lim_itd_th_ini1019 END SUBROUTINE lim_itd_th_ini1020 927 SUBROUTINE lim_itd_th_rem 1021 928 END SUBROUTINE lim_itd_th_rem
Note: See TracChangeset
for help on using the changeset viewer.