- Timestamp:
- 2011-12-11T16:00:26+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/C1D/dynnxt_c1d.F90
r2409 r3211 23 23 24 24 PUBLIC dyn_nxt_c1d ! routine called by step.F90 25 !! * Array index permutations 26 # include "oce_ftrans.h90" 27 # include "dom_oce_ftrans.h90" 25 28 !!---------------------------------------------------------------------- 26 29 !! NEMO/C1D 3.3 , NEMO Consortium (2010) … … 51 54 INTEGER, INTENT( in ) :: kt ! ocean time-step index 52 55 !! 56 #if defined key_z_first 57 INTEGER :: ji, jj, jk ! dummy loop indices 58 #else 53 59 INTEGER :: jk ! dummy loop indices 60 #endif 54 61 REAL(wp) :: z2dt ! temporary scalar 55 62 !!---------------------------------------------------------------------- … … 66 73 CALL lbc_lnk( ua, 'U', -1. ) ; CALL lbc_lnk( va, 'V', -1. ) ! Lateral boundary conditions 67 74 75 #if defined key_z_first 76 DO jj = 1, jpj ! Next Velocity 77 DO ji = 1, jpi 78 DO jk = 1, jpkm1 79 ua(ji,jj,jk) = ( ub(ji,jj,jk) + z2dt * ua(ji,jj,jk) ) * umask(ji,jj,jk) 80 va(ji,jj,jk) = ( vb(ji,jj,jk) + z2dt * va(ji,jj,jk) ) * vmask(ji,jj,jk) 81 END DO 82 END DO 83 END DO 84 #else 68 85 DO jk = 1, jpkm1 ! Next Velocity 69 86 ua(:,:,jk) = ( ub(:,:,jk) + z2dt * ua(:,:,jk) ) * umask(:,:,jk) 70 87 va(:,:,jk) = ( vb(:,:,jk) + z2dt * va(:,:,jk) ) * vmask(:,:,jk) 71 88 END DO 89 #endif 72 90 91 #if defined key_z_first 92 IF( neuler == 0 .AND. kt == nit000 ) THEN ! Euler (forward) time stepping 93 DO jj = 1, jpj ! Time filter and swap of dynamics arrays 94 DO ji = 1, jpi 95 ub(ji,jj,1:jpkm1) = un(ji,jj,1:jpkm1) 96 vb(ji,jj,1:jpkm1) = vn(ji,jj,1:jpkm1) 97 un(ji,jj,1:jpkm1) = ua(ji,jj,1:jpkm1) 98 vn(ji,jj,1:jpkm1) = va(ji,jj,1:jpkm1) 99 END DO 100 END DO 101 ELSE ! Leap-frog time stepping 102 DO jj =1 , jpj 103 DO ji = 1, jpi 104 DO jk = 1, jpkm1 105 ub(ji,jj,jk) = atfp * ( ub(ji,jj,jk) + ua(ji,jj,jk) ) + atfp1 * un(ji,jj,jk) 106 vb(ji,jj,jk) = atfp * ( vb(ji,jj,jk) + va(ji,jj,jk) ) + atfp1 * vn(ji,jj,jk) 107 un(ji,jj,jk) = ua(ji,jj,jk) 108 vn(ji,jj,jk) = va(ji,jj,jk) 109 END DO 110 END DO 111 END DO 112 ENDIF 113 #else 73 114 DO jk = 1, jpkm1 ! Time filter and swap of dynamics arrays 74 115 IF( neuler == 0 .AND. kt == nit000 ) THEN ! Euler (forward) time stepping … … 84 125 ENDIF 85 126 END DO 127 #endif 86 128 87 129 IF(ln_ctl) CALL prt_ctl( tab3d_1=un, clinfo1=' nxt_c1d - Un: ', mask1=umask, &
Note: See TracChangeset
for help on using the changeset viewer.