- Timestamp:
- 2017-09-01T15:49:35+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceadv_umx.F90
r8409 r8486 4 4 !! LIM sea-ice model : sea-ice advection using the ULTIMATE-MACHO scheme 5 5 !!============================================================================== 6 !! History : 3.5 ! 2014-11 (C. Rousset, G. Madec) Original code 7 !!---------------------------------------------------------------------- 8 6 !! History : 3.6 ! 2014-11 (C. Rousset, G. Madec) Original code 7 !!---------------------------------------------------------------------- 8 #if defined key_lim3 9 !!---------------------------------------------------------------------- 10 !! 'key_lim3' LIM 3.0 sea-ice model 9 11 !!---------------------------------------------------------------------- 10 12 !! ice_adv_umx : update the tracer trend with the 3D advection trends using a TVD scheme 11 !! ultimate 12 !! macho : 13 !! ultimate_x(_y): compute a tracer value at velocity points using ULTIMATE scheme at various orders 14 !! macho : ??? 13 15 !! nonosc_2d : compute monotonic tracer fluxes by a non-oscillatory algorithm 14 !!----------------------------------------------------------------------15 #if defined key_lim316 !!----------------------------------------------------------------------17 !! 'key_lim3' : LIM 3.0 sea-ice model18 16 !!---------------------------------------------------------------------- 19 17 USE phycst ! physical constant 20 18 USE dom_oce ! ocean domain 21 USE sbc_oce , ONLY: nn_fsbc ! oceansurface boundary condition22 USE ice ! ice variables19 USE sbc_oce , ONLY : nn_fsbc ! update frequency of surface boundary condition 20 USE ice ! sea-ice variables 23 21 ! 24 22 USE in_out_manager ! I/O manager … … 33 31 PUBLIC ice_adv_umx ! routine called by iceadv.F90 34 32 35 REAL(wp) :: z1_6 = 1._wp / 6._wp ! =1/636 REAL(wp) :: z1_120 = 1._wp / 120._wp ! =1/12033 REAL(wp) :: z1_6 = 1._wp / 6._wp ! =1/6 34 REAL(wp) :: z1_120 = 1._wp / 120._wp ! =1/120 37 35 38 36 !! * Substitutions 39 37 # include "vectopt_loop_substitute.h90" 40 38 !!---------------------------------------------------------------------- 41 !! NEMO/ OPA 3.3 , NEMO Consortium (2010)39 !! NEMO/ICE 4.0 , NEMO Consortium (2017) 42 40 !! $Id: iceadv_umx.F90 4499 2014-02-18 15:14:31Z timgraham $ 43 41 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 58 56 !! ** Action : - pt the after advective tracer 59 57 !!---------------------------------------------------------------------- 60 INTEGER , INTENT(in ) :: kt! number of iteration61 REAL(wp) , INTENT(in ) :: pdt! tracer time-step62 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) :: puc, pvc! 2 ice velocity components => u*e263 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) 64 REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) :: ptc! tracer content field58 INTEGER , INTENT(in ) :: kt ! number of iteration 59 REAL(wp) , INTENT(in ) :: pdt ! tracer time-step 60 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) :: puc , pvc ! 2 ice velocity components => u*e2 61 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) :: pubox, pvbox ! upstream velocity 62 REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) :: ptc ! tracer content field 65 63 ! 66 64 INTEGER :: ji, jj ! dummy loop indices … … 68 66 REAL(wp) :: zfp_ui, zfp_vj ! - - 69 67 REAL(wp) :: zfm_ui, zfm_vj ! - - 70 REAL(wp), DIMENSION(jpi,jpj) :: zt_ups, zfu_ups, zfv_ups, ztrd, zfu_ho, zfv_ho, zt_u, zt_v 68 REAL(wp), DIMENSION(jpi,jpj) :: zfu_ups, zfu_ho, zt_u, zt_ups 69 REAL(wp), DIMENSION(jpi,jpj) :: zfv_ups, zfv_ho, zt_v, ztrd 71 70 !!---------------------------------------------------------------------- 72 71 ! … … 394 393 ! 395 394 SELECT CASE (k_order ) 396 ! 397 CASE( 1 ) !== 1st order central TIM ==! (Eq. 21) 398 ! 395 ! 396 CASE( 1 ) !== 1st order central TIM ==! (Eq. 21) 399 397 DO jj = 1, jpjm1 400 398 DO ji = 1, jpi … … 404 402 END DO 405 403 ! 406 CASE( 2 ) 404 CASE( 2 ) !== 2nd order central TIM ==! (Eq. 23) 407 405 DO jj = 1, jpjm1 408 406 DO ji = 1, jpi … … 414 412 CALL lbc_lnk( pt_v(:,:) , 'V', 1. ) 415 413 ! 416 CASE( 3 ) !== 3rd order central TIM ==! (Eq. 24) 417 ! 414 CASE( 3 ) !== 3rd order central TIM ==! (Eq. 24) 418 415 DO jj = 1, jpjm1 419 416 DO ji = 1, jpi … … 428 425 END DO 429 426 ! 430 CASE( 4 ) !== 4th order central TIM ==! (Eq. 27) 431 ! 427 CASE( 4 ) !== 4th order central TIM ==! (Eq. 27) 432 428 DO jj = 1, jpjm1 433 429 DO ji = 1, jpi … … 442 438 END DO 443 439 ! 444 CASE( 5 ) !== 5th order central TIM ==! (Eq. 29) 445 ! 440 CASE( 5 ) !== 5th order central TIM ==! (Eq. 29) 446 441 DO jj = 1, jpjm1 447 442 DO ji = 1, jpi … … 569 564 !! Default option Dummy module NO LIM 3.0 sea-ice model 570 565 !!---------------------------------------------------------------------- 571 CONTAINS572 !573 SUBROUTINE ice_adv_umx ! Dummy routine574 WRITE(*,*) 'ice_adv_umx: You should not have seen this print! error?'575 END SUBROUTINE ice_adv_umx576 566 #endif 567 577 568 !!====================================================================== 578 569 END MODULE iceadv_umx
Note: See TracChangeset
for help on using the changeset viewer.