Changeset 4312
- Timestamp:
- 2013-11-22T12:21:18+01:00 (10 years ago)
- Location:
- branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90
r4292 r4312 106 106 REAL(wp) :: zue3a, zue3n, zue3b, zuf, zec ! local scalars 107 107 REAL(wp) :: zve3a, zve3n, zve3b, zvf ! - - 108 REAL(wp), POINTER, DIMENSION(:,:) :: zua, zva 108 REAL(wp), POINTER, DIMENSION(:,:) :: zua, zva, zhura, zhvra 109 109 REAL(wp), POINTER, DIMENSION(:,:,:) :: ze3u_f, ze3v_f 110 110 !!---------------------------------------------------------------------- … … 113 113 ! 114 114 CALL wrk_alloc( jpi,jpj,jpk, ze3u_f, ze3v_f ) 115 IF ( lk_dynspg_ts ) CALL wrk_alloc( jpi,jpj, zua, zva )115 IF ( lk_dynspg_ts ) CALL wrk_alloc( jpi,jpj, zua, zva, zhura, zhvra ) 116 116 ! 117 117 IF( kt == nit000 ) THEN … … 162 162 zva(:,:) = 0._wp 163 163 IF (lk_vvl) THEN 164 zhura(:,:) = 0._wp 165 zhvra(:,:) = 0._wp 164 166 DO jk = 1, jpkm1 165 167 zua(:,:) = zua(:,:) + fse3u_a(:,:,jk) * ua(:,:,jk) * umask(:,:,jk) 166 zva(:,:) = zva(:,:) + fse3v_a(:,:,jk) * va(:,:,jk) * vmask(:,:,jk) 167 END DO 168 DO jk = 1, jpkm1 169 ua(:,:,jk) = ( ua(:,:,jk) - zua(:,:) * hur_e(:,:) + ua_b(:,:) ) * umask(:,:,jk) 170 va(:,:,jk) = ( va(:,:,jk) - zva(:,:) * hvr_e(:,:) + va_b(:,:) ) * vmask(:,:,jk) 168 zva(:,:) = zva(:,:) + fse3v_a(:,:,jk) * va(:,:,jk) * vmask(:,:,jk) 169 zhura(:,:) = zhura(:,:) + fse3u_a(:,:,jk) * umask(:,:,jk) 170 zhvra(:,:) = zhvra(:,:) + fse3v_a(:,:,jk) * vmask(:,:,jk) 171 END DO 172 zhura(:,:) = umask(:,:,1) / ( zhura(:,:) + 1._wp - umask(:,:,1) ) 173 zhvra(:,:) = vmask(:,:,1) / ( zhvra(:,:) + 1._wp - vmask(:,:,1) ) 174 DO jk = 1, jpkm1 175 ua(:,:,jk) = ( ua(:,:,jk) - zua(:,:) * zhura(:,:) + ua_b(:,:) ) * umask(:,:,jk) 176 va(:,:,jk) = ( va(:,:,jk) - zva(:,:) * zhvra(:,:) + va_b(:,:) ) * vmask(:,:,jk) 171 177 END DO 172 178 ELSE … … 184 190 ! Remove advective velocity from "now velocities" 185 191 ! prior to asselin filtering 186 ! In the forward case, this is done below after asselin filtering 192 ! In the forward case, this is done below after asselin filtering 193 ! so that asselin contribution is removed at the same time 187 194 DO jk = 1, jpkm1 188 195 un(:,:,jk) = ( un(:,:,jk) - un_adv(:,:) + un_b(:,:) )*umask(:,:,jk) … … 308 315 DO jk = 1, jpkm1 309 316 DO jj = 1, jpj 310 DO ji = 1, jpi ! ---------------------------317 DO ji = 1, jpi 311 318 zue3a = ua(ji,jj,jk) * fse3u_a(ji,jj,jk) 312 319 zve3a = va(ji,jj,jk) * fse3v_a(ji,jj,jk) … … 333 340 ! 334 341 IF (lk_dynspg_ts.AND.ln_bt_fw) THEN 335 ! Remove asselin filtering of barotropic velocities if forward time splitting336 ! note that we replace barotropic velocities by advective velocities342 ! Revert "before" velocities to time split estimate 343 ! Doing it here also means that asselin filter contribution is removed 337 344 zua(:,:) = 0._wp 338 345 zva(:,:) = 0._wp … … 360 367 ! 361 368 CALL wrk_dealloc( jpi,jpj,jpk, ze3u_f, ze3v_f ) 362 IF ( lk_dynspg_ts ) CALL wrk_dealloc( jpi,jpj, zua, zva )369 IF ( lk_dynspg_ts ) CALL wrk_dealloc( jpi,jpj, zua, zva, zhura, zhvra ) 363 370 ! 364 371 IF( nn_timing == 1 ) CALL timing_stop('dyn_nxt') -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/step.F90
r4292 r4312 132 132 CALL dyn_spg( kstp, indic ) ! surface pressure gradient 133 133 134 hdivb(:,:,:) = hdivn(:,:,:) ! Store now divergence and rot temporarly, revert to these below 135 rotb(:,:,:) = rotn(:,:,:) 136 ua_sv(:,:,:) = ua(:,:,:) ! Save trends (barotropic trend has been fully updated) 134 ua_sv(:,:,:) = ua(:,:,:) ! Save trends (barotropic trend has been fully updated at this stage) 137 135 va_sv(:,:,:) = va(:,:,:) 138 136 … … 140 138 ENDIF 141 139 IF( lk_vvl ) CALL dom_vvl_sf_nxt( kstp ) ! after vertical scale factors 142 CALL wzv ( kstp ) ! now cross-level velocity (original)140 CALL wzv ( kstp ) ! now cross-level velocity 143 141 144 142 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Note: See TracChangeset
for help on using the changeset viewer.