Changeset 2095 for branches/dev_1784_EVP/NEMO/LIM_SRC_3/limrhg.F90
- Timestamp:
- 2010-09-15T14:10:33+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_1784_EVP/NEMO/LIM_SRC_3/limrhg.F90
r2046 r2095 4 4 !! Ice rheology : sea ice rheology 5 5 !!====================================================================== 6 !! History : -! 2007-03 (M.A. Morales Maqueda, S. Bouillon) Original code7 !! 3.0 ! 2008-03 (M. Vancoppenolle) LIM 36 !! History : LIM ! 2007-03 (M.A. Morales Maqueda, S. Bouillon) Original code 7 !! 3.0 ! 2008-03 (M. Vancoppenolle) LIM 3 8 8 !! - ! 2008-11 (M. Vancoppenolle, S. Bouillon, Y. Aksenov) add surface tilt in ice rheolohy 9 !! -! 2009-05 (G.Garric) addition of the lim2_evp cas9 !! 3.3 ! 2009-05 (G.Garric) addition of the lim2_evp cas 10 10 !!---------------------------------------------------------------------- 11 11 #if defined key_lim3 || ( defined key_lim2 && ! defined key_lim2_vp ) … … 15 15 !! lim_rhg : computes ice velocities 16 16 !!---------------------------------------------------------------------- 17 !! * Modules used 18 USE phycst 19 USE par_oce 20 USE dom_oce 21 USE sbc_oce ! Surface boundary condition: ocean fields 22 USE sbc_ice ! Surface boundary condition: ice fields 23 USE lbclnk 24 USE lib_mpp 25 USE in_out_manager ! I/O manager 26 USE limitd_me 27 USE prtctl ! Print control 17 USE phycst ! physical constants 18 USE par_oce ! ocean parameters 19 USE dom_oce ! ocean domain 20 USE sbc_oce ! Surface boundary condition: ocean fields 21 USE sbc_ice ! Surface boundary condition: ice fields 22 USE lbclnk ! lateral boundary condition - MPP exchanges 23 USE lib_mpp ! MPP library 24 USE in_out_manager ! I/O manager 25 USE limitd_me ! LIM3: 26 USE prtctl ! control print 28 27 #if defined key_lim3 29 USE dom_ice30 USE ice31 USE iceini 28 USE ice ! LIM3: ice variables 29 USE dom_ice ! LIM3: ice domain 30 USE iceini ! LIM3: ice initialisation 32 31 #endif 33 32 #if defined key_lim2 && ! defined key_lim2_vp 34 USE dom_ice_235 USE ice_236 USE iceini_2 33 USE ice_2 ! LIM2: ice variables 34 USE dom_ice_2 ! LIM2: ice domain 35 USE iceini_2 ! LIM2: ice initialisation 37 36 #endif 38 37 … … 40 39 PRIVATE 41 40 42 !! * Routine accessibility 43 PUBLIC lim_rhg ! routine called by lim_dyn 44 45 !! * Substitutions 46 # include "vectopt_loop_substitute.h90" 41 PUBLIC lim_rhg ! routine called by lim_dyn module 47 42 48 43 !! * Module variables … … 50 45 rzero = 0.e0 , & 51 46 rone = 1.e0 47 48 !! * Substitutions 49 # include "vectopt_loop_substitute.h90" 52 50 !!---------------------------------------------------------------------- 53 !! LIM 3.0, UCL-LOCEAN-IPSL (2008)51 !! NEMO/LIM-3 3.3, UCL-LOCEAN-IPSL (2010) 54 52 !! $Id$ 55 53 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 56 54 !!---------------------------------------------------------------------- 57 58 55 CONTAINS 59 56 60 57 SUBROUTINE lim_rhg( k_j1, k_jpj ) 61 62 58 !!------------------------------------------------------------------- 63 59 !! *** SUBROUTINE lim_rhg *** … … 107 103 !! 108 104 !! ** References : Hunke and Dukowicz, JPO97 109 !! Bouillon et al., 08, in prep (update this when 110 !! published) 111 !! Vancoppenolle et al., OM08 105 !! Bouillon et al., 2009, Ocean. Modelling, 27, 174-184. 106 !! Vancoppenolle et al. 2009, Ocean Modelling, 27, 33-53. 107 !!------------------------------------------------------------------- 108 INTEGER, INTENT(in) :: k_j1 ! southern j-index for ice computation 109 INTEGER, INTENT(in) :: k_jpj ! northern j-index for ice computation 112 110 !! 113 !!------------------------------------------------------------------- 114 ! * Arguments 115 ! 116 INTEGER, INTENT(in) :: & 117 k_j1 , & !: southern j-index for ice computation 118 k_jpj !: northern j-index for ice computation 119 120 ! * Local variables 121 INTEGER :: ji, jj !: dummy loop indices 122 123 INTEGER :: & 124 jter !: temporary integers 125 126 CHARACTER (len=50) :: charout 127 128 REAL(wp) :: & 129 zt11, zt12, zt21, zt22, & !: temporary scalars 130 ztagnx, ztagny, & !: wind stress on U/V points 131 delta ! 132 133 REAL(wp) :: & 134 za, & !: 135 zstms, & !: temporary scalar for ice strength 136 zsang, & !: temporary scalar for coriolis term 137 zmask !: mask for the computation of ice mass 138 139 REAL(wp),DIMENSION(jpi,jpj) :: & 140 zpresh , & !: temporary array for ice strength 141 zpreshc , & !: Ice strength on grid cell corners (zpreshc) 142 zfrld1, zfrld2, & !: lead fraction on U/V points 143 zmass1, zmass2, & !: ice/snow mass on U/V points 144 zcorl1, zcorl2, & !: coriolis parameter on U/V points 145 za1ct, za2ct , & !: temporary arrays 146 zc1 , & !: ice mass 147 zusw , & !: temporary weight for the computation 148 !: of ice strength 149 u_oce1, v_oce1, & !: ocean u/v component on U points 150 u_oce2, v_oce2, & !: ocean u/v component on V points 151 u_ice2, & !: ice u component on V point 152 v_ice1 !: ice v component on U point 111 INTEGER :: ji, jj ! dummy loop indices 112 INTEGER :: jter ! local integers 113 CHARACTER (len=50) :: charout ! local character 114 REAL(wp) :: zt11, zt12, zt21, zt22 ! local scalars 115 REAL(wp) :: ztagnx, ztagny, delta ! - - 116 REAL(wp) :: za, zstms, zsang, zmask ! - - 117 REAL(wp) :: zresm, zindb, zdummy ! - - 118 119 REAL(wp),DIMENSION(jpi,jpj) :: zpresh , zfrld1, zmass1, zcorl1, za1ct ! 2D workspace 120 REAL(wp),DIMENSION(jpi,jpj) :: zpreshc, zfrld2, zmass2, zcorl2, za2ct ! - - 121 REAL(wp),DIMENSION(jpi,jpj) :: u_oce1, v_oce1, u_ice2, zc1 ! - - 122 REAL(wp),DIMENSION(jpi,jpj) :: u_oce2, v_oce2, v_ice1, zusw ! - - 123 REAL(wp),DIMENSION(jpi,jpj) :: zf1, zf2 ! - - 153 124 154 125 REAL(wp) :: & … … 166 137 sigma1, sigma2 !: internal ice stress 167 138 168 REAL(wp),DIMENSION(jpi,jpj) :: &169 zf1, zf2 !: arrays for internal stresses170 139 171 140 REAL(wp),DIMENSION(jpi,jpj) :: & … … 177 146 zs12 !: Non-diagonal stress tensor component zs12 178 147 179 REAL(wp) :: & 180 zresm , & !: Maximal error on ice velocity 181 zindb , & !: ice (1) or not (0) 182 zdummy !: dummy argument 183 184 REAL(wp),DIMENSION(jpi,jpj) :: & 185 zu_ice , & !: Ice velocity on previous time step 186 zv_ice , & 187 zresr !: Local error on velocity 148 149 REAL(wp),DIMENSION(jpi,jpj) :: zu_ice, zv_ice, zresr ! 150 !!------------------------------------------------------------------- 188 151 189 152 #if defined key_lim2 && ! defined key_lim2_vp
Note: See TracChangeset
for help on using the changeset viewer.