Changeset 2715 for trunk/NEMOGCM/NEMO/LIM_SRC_3/limadv.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_3/limadv.F90
r2528 r2715 6 6 !! History : LIM ! 2008-03 (M. Vancoppenolle) LIM-3 from LIM-2 code 7 7 !! 3.2 ! 2009-06 (F. Dupont) correct a error in the North fold b. c. 8 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation 8 9 !!-------------------------------------------------------------------- 9 10 #if defined key_lim3 … … 14 15 !! lim_adv_y : advection of sea ice on y axis 15 16 !!---------------------------------------------------------------------- 16 USE dom_oce 17 USE dom_ice 18 USE ice 19 USE lbclnk 20 USE in_out_manager ! I/O manager 21 USE prtctl ! Print control 17 USE dom_oce ! ocean domain 18 USE dom_ice ! LIM-3 domain 19 USE ice ! LIM-3 variables 20 USE lbclnk ! lateral boundary condition - MPP exchanges 21 USE in_out_manager ! I/O manager 22 USE prtctl ! Print control 23 USE lib_mpp ! MPP library 22 24 23 25 IMPLICIT NONE … … 27 29 PUBLIC lim_adv_y ! called by lim_trp 28 30 29 REAL(wp) :: epsi20 = 1.e-20 ! constant values30 REAL(wp) :: rzero = 0. e0! - -31 REAL(wp) :: rone = 1. e0! - -31 REAL(wp) :: epsi20 = 1.e-20_wp ! constant values 32 REAL(wp) :: rzero = 0._wp ! - - 33 REAL(wp) :: rone = 1._wp ! - - 32 34 33 35 !! * Substitutions 34 36 # include "vectopt_loop_substitute.h90" 35 37 !!---------------------------------------------------------------------- 36 !! NEMO/LIM3 3.3 , UCL - NEMO Consortium (2010)38 !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2011) 37 39 !! $Id$ 38 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 39 !!---------------------------------------------------------------------- 40 40 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 41 !!---------------------------------------------------------------------- 41 42 CONTAINS 42 43 … … 55 56 !! Reference: Prather, 1986, JGR, 91, D6. 6671-6681. 56 57 !!-------------------------------------------------------------------- 58 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 59 USE wrk_nemo, ONLY: zf0 => wrk_2d_11 , zfx => wrk_2d_12 , zfy => wrk_2d_13 , zbet => wrk_2d_14 ! 2D workspace 60 USE wrk_nemo, ONLY: zfm => wrk_2d_15 , zfxx => wrk_2d_16 , zfyy => wrk_2d_17 , zfxy => wrk_2d_18 ! - - 61 USE wrk_nemo, ONLY: zalg => wrk_2d_19 , zalg1 => wrk_2d_20 , zalg1q => wrk_2d_21 ! - - 62 ! 57 63 REAL(wp) , INTENT(in ) :: pdf ! reduction factor for the time step 58 64 REAL(wp) , INTENT(in ) :: pcrh ! call lim_adv_x then lim_adv_y (=1) or the opposite (=0) … … 64 70 !! 65 71 INTEGER :: ji, jj ! dummy loop indices 66 REAL(wp) :: zs1max, zrdt, zslpmax, ztemp, zin0 ! temporary scalars 67 REAL(wp) :: zs1new, zalf , zalfq , zbt ! - - 68 REAL(wp) :: zs2new, zalf1, zalf1q, zbt1 ! - - 69 REAL(wp), DIMENSION(jpi,jpj) :: zf0, zfx , zfy , zbet ! 2D workspace 70 REAL(wp), DIMENSION(jpi,jpj) :: zfm, zfxx, zfyy, zfxy ! - - 71 REAL(wp), DIMENSION(jpi,jpj) :: zalg, zalg1, zalg1q ! - - 72 REAL(wp) :: zs1max, zrdt, zslpmax, ztemp, zin0 ! local scalars 73 REAL(wp) :: zs1new, zalf , zalfq , zbt ! - - 74 REAL(wp) :: zs2new, zalf1, zalf1q, zbt1 ! - - 72 75 !--------------------------------------------------------------------- 76 77 IF( wrk_in_use(2, 11,12,13,14,15,16,17,18,19,20,21) ) THEN 78 CALL ctl_stop('lim_adv_x: requested workspace arrays unavailable') ; RETURN 79 ENDIF 73 80 74 81 ! Limitation of moments. … … 216 223 CALL prt_ctl(tab2d_1=psxy , clinfo1=' lim_adv_x: psxy :') 217 224 ENDIF 225 ! 226 IF( wrk_not_released(2, 11,12,13,14,15,16,17,18,19,20,21) ) & 227 CALL ctl_stop('lim_adv_x : failed to release workspace arrays') 218 228 ! 219 229 END SUBROUTINE lim_adv_x … … 234 244 !! Reference: Prather, 1986, JGR, 91, D6. 6671-6681. 235 245 !!--------------------------------------------------------------------- 246 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 247 USE wrk_nemo, ONLY: zf0 => wrk_2d_11 , zfx => wrk_2d_12 , zfy => wrk_2d_13 , zbet => wrk_2d_14 ! 2D workspace 248 USE wrk_nemo, ONLY: zfm => wrk_2d_15 , zfxx => wrk_2d_16 , zfyy => wrk_2d_17 , zfxy => wrk_2d_18 ! - - 249 USE wrk_nemo, ONLY: zalg => wrk_2d_19 , zalg1 => wrk_2d_20 , zalg1q => wrk_2d_21 ! - - 250 ! 236 251 REAL(wp) , INTENT(in ) :: pdf ! reduction factor for the time step 237 252 REAL(wp) , INTENT(in ) :: pcrh ! call lim_adv_x then lim_adv_y (=1) or the opposite (=0) … … 246 261 REAL(wp) :: zs1new, zalf , zalfq , zbt ! - - 247 262 REAL(wp) :: zs2new, zalf1, zalf1q, zbt1 ! - - 248 REAL(wp), DIMENSION(jpi,jpj) :: zf0, zfx , zfy , zbet ! 2D workspace249 REAL(wp), DIMENSION(jpi,jpj) :: zfm, zfxx, zfyy, zfxy ! - -250 REAL(wp), DIMENSION(jpi,jpj) :: zalg, zalg1, zalg1q ! - -251 263 !--------------------------------------------------------------------- 264 265 IF( wrk_in_use(2, 11,12,13,14,15,16,17,18,19,20,21) ) THEN 266 CALL ctl_stop('lim_adv_y : requested workspace arrays unavailable') ; RETURN 267 ENDIF 252 268 253 269 ! Limitation of moments. … … 397 413 ENDIF 398 414 ! 415 IF( wrk_not_released(2, 11,12,13,14,15,16,17,18,19,20,21) ) & 416 CALL ctl_stop('lim_adv_y: failed to release workspace arrays') 417 ! 399 418 END SUBROUTINE lim_adv_y 400 401 419 402 420 #else
Note: See TracChangeset
for help on using the changeset viewer.