Changeset 14143 for NEMO/trunk/src/OCE/DYN
- Timestamp:
- 2020-12-09T22:26:04+01:00 (4 years ago)
- Location:
- NEMO/trunk/src/OCE/DYN
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/DYN/dynatf.F90
r14072 r14143 60 60 PUBLIC dyn_atf ! routine called by step.F90 61 61 62 #if defined key_qco 62 #if defined key_qco || defined key_linssh 63 63 !!---------------------------------------------------------------------- 64 !! 'key_qco' EMPTY ROUTINE Quasi-Eulerian vertical coordonate 64 !! 'key_qco' Quasi-Eulerian vertical coordinate 65 !! OR EMPTY MODULE 66 !! 'key_linssh' Fix in time vertical coordinate 65 67 !!---------------------------------------------------------------------- 66 68 CONTAINS 67 69 68 SUBROUTINE dyn_atf 70 SUBROUTINE dyn_atf( kt, Kbb, Kmm, Kaa, puu, pvv, pe3t, pe3u, pe3v ) 69 71 INTEGER , INTENT(in ) :: kt ! ocean time-step index 70 72 INTEGER , INTENT(in ) :: Kbb, Kmm, Kaa ! before and after time level indices -
NEMO/trunk/src/OCE/DYN/dynatf_qco.F90
r14053 r14143 66 66 CONTAINS 67 67 68 SUBROUTINE dyn_atf_qco 68 SUBROUTINE dyn_atf_qco( kt, Kbb, Kmm, Kaa, puu, pvv ) 69 69 !!---------------------------------------------------------------------- 70 70 !! *** ROUTINE dyn_atf_qco *** … … 196 196 ! JC: Would be more clever to swap variables than to make a full vertical 197 197 ! integration 198 ! CAUTION : calculation need to be done in the same way than see GM 198 ! CAUTION : calculation need to be done in the same way than see GM 199 #if defined key_linssh 200 uu_b(:,:,Kaa) = e3u(:,:,1,Kaa) * puu(:,:,1,Kaa) * umask(:,:,1) 201 uu_b(:,:,Kmm) = e3u(:,:,1,Kmm) * puu(:,:,1,Kmm) * umask(:,:,1) 202 vv_b(:,:,Kaa) = e3v(:,:,1,Kaa) * pvv(:,:,1,Kaa) * vmask(:,:,1) 203 vv_b(:,:,Kmm) = e3v(:,:,1,Kmm) * pvv(:,:,1,Kmm) * vmask(:,:,1) 204 DO jk = 2, jpkm1 205 uu_b(:,:,Kaa) = uu_b(:,:,Kaa) + e3u(:,:,jk,Kaa) * puu(:,:,jk,Kaa) * umask(:,:,jk) 206 uu_b(:,:,Kmm) = uu_b(:,:,Kmm) + e3u(:,:,jk,Kmm) * puu(:,:,jk,Kmm) * umask(:,:,jk) 207 vv_b(:,:,Kaa) = vv_b(:,:,Kaa) + e3v(:,:,jk,Kaa) * pvv(:,:,jk,Kaa) * vmask(:,:,jk) 208 vv_b(:,:,Kmm) = vv_b(:,:,Kmm) + e3v(:,:,jk,Kmm) * pvv(:,:,jk,Kmm) * vmask(:,:,jk) 209 END DO 210 uu_b(:,:,Kaa) = uu_b(:,:,Kaa) * r1_hu(:,:,Kaa) 211 vv_b(:,:,Kaa) = vv_b(:,:,Kaa) * r1_hv(:,:,Kaa) 212 uu_b(:,:,Kmm) = uu_b(:,:,Kmm) * r1_hu(:,:,Kmm) 213 vv_b(:,:,Kmm) = vv_b(:,:,Kmm) * r1_hv(:,:,Kmm) 214 #else 199 215 uu_b(:,:,Kaa) = e3u(:,:,1,Kaa) * puu(:,:,1,Kaa) * umask(:,:,1) 200 216 uu_b(:,:,Kmm) = (e3u_0(:,:,1) * ( 1._wp + r3u_f(:,:) * umask(:,:,1) )) * puu(:,:,1,Kmm) * umask(:,:,1) … … 211 227 uu_b(:,:,Kmm) = uu_b(:,:,Kmm) * (r1_hu_0(:,:)/( 1._wp + r3u_f(:,:) )) 212 228 vv_b(:,:,Kmm) = vv_b(:,:,Kmm) * (r1_hv_0(:,:)/( 1._wp + r3v_f(:,:) )) 229 #endif 213 230 ! 214 231 IF( .NOT.ln_dynspg_ts ) THEN ! output the barotropic currents -
NEMO/trunk/src/OCE/DYN/dynhpg.F90
r14141 r14143 186 186 & CALL ctl_stop( 'dyn_hpg_init : non-linear free surface incompatible with hpg_zco or hpg_zps' ) 187 187 ! 188 IF( .NOT. (ln_hpg_isf.AND.ln_isfcav) ) &188 IF( (.NOT.ln_hpg_isf .AND. ln_isfcav) .OR. (ln_hpg_isf .AND. .NOT.ln_isfcav) ) & 189 189 & CALL ctl_stop( 'dyn_hpg_init : ln_hpg_isf=T requires ln_isfcav=T and vice versa' ) 190 190 ! -
NEMO/trunk/src/OCE/DYN/dynvor.F90
r14072 r14143 406 406 END SELECT 407 407 ! 408 #if defined key_qco 408 #if defined key_qco || defined key_linssh 409 409 DO_2D( 1, 0, 1, 0 ) !== potential vorticity ==! (key_qco) 410 410 zwz(ji,jj) = zwz(ji,jj) / e3f_vor(ji,jj,jk) … … 533 533 ! 534 534 ! 535 #if defined key_qco 535 #if defined key_qco || defined key_linssh 536 536 DO_2D( 1, 0, 1, 0 ) !== potential vorticity ==! (key_qco) 537 537 zwz(ji,jj) = zwz(ji,jj) / e3f_vor(ji,jj,jk) … … 624 624 ! ! =============== 625 625 ! 626 #if defined key_qco 626 #if defined key_qco || defined key_linssh 627 627 DO_2D( 1, 0, 1, 0 ) ! == reciprocal of e3 at F-point (key_qco) 628 628 z1_e3f(ji,jj) = 1._wp / e3f_vor(ji,jj,jk) … … 952 952 ! 953 953 END SELECT 954 #if defined key_qco 955 SELECT CASE( nvor_scheme ) ! qco case: pre-computed a specific e3f_0 for some vorticity schemes954 #if defined key_qco || defined key_linssh 955 SELECT CASE( nvor_scheme ) ! qco or linssh cases : pre-computed a specific e3f_0 for some vorticity schemes 956 956 CASE( np_ENS , np_ENE , np_EEN , np_MIX ) 957 957 !
Note: See TracChangeset
for help on using the changeset viewer.