Changeset 4311 for branches/2013/dev_r3858_NOC_ZTC/NEMOGCM
- Timestamp:
- 2013-11-22T11:41:01+01:00 (11 years ago)
- Location:
- branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90
r4178 r4311 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 168 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) 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 175 DO jk = 1, jpkm1 176 ua(:,:,jk) = ( ua(:,:,jk) - zua(:,:) * zhura(:,:) + ua_b(:,:) ) * umask(:,:,jk) 177 va(:,:,jk) = ( va(:,:,jk) - zva(:,:) * zhvra(:,:) + va_b(:,:) ) * vmask(:,:,jk) 171 178 END DO 172 179 ELSE … … 185 192 ! prior to asselin filtering 186 193 ! In the forward case, this is done below after asselin filtering 194 ! so that asselin contribution is removed at the same time 187 195 DO jk = 1, jpkm1 188 196 un(:,:,jk) = ( un(:,:,jk) - un_adv(:,:) + un_b(:,:) )*umask(:,:,jk) … … 333 341 ! 334 342 IF (lk_dynspg_ts.AND.ln_bt_fw) THEN 335 ! Remove asselin filtering of barotropic velocities if forward time splitting 336 ! note that we replace barotropic velocities by advective velocities 343 ! Revert "before" velocities to time split estimate 344 ! Doing it here also means that asselin filter contribution is removed 345 ! 337 346 zua(:,:) = 0._wp 338 347 zva(:,:) = 0._wp … … 360 369 ! 361 370 CALL wrk_dealloc( jpi,jpj,jpk, ze3u_f, ze3v_f ) 362 IF ( lk_dynspg_ts ) CALL wrk_dealloc( jpi,jpj, zua, zva )371 IF ( lk_dynspg_ts ) CALL wrk_dealloc( jpi,jpj, zua, zva , zhura, zhvra) 363 372 ! 364 373 IF( nn_timing == 1 ) CALL timing_stop('dyn_nxt') -
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/step.F90
r4288 r4311 126 126 CALL dyn_spg( kstp, indic ) ! surface pressure gradient 127 127 128 hdivb(:,:,:) = hdivn(:,:,:) ! Store now divergence and rot temporarly, revert to these below 129 rotb(:,:,:) = rotn(:,:,:) 130 ua_sv(:,:,:) = ua(:,:,:) ! Save trends (barotropic trend has been fully updated) 128 ua_sv(:,:,:) = ua(:,:,:) ! Save trends (barotropic trend has been fully updated at this stage) 131 129 va_sv(:,:,:) = va(:,:,:) 132 130 … … 134 132 ENDIF 135 133 IF( lk_vvl ) CALL dom_vvl_sf_nxt( kstp ) ! after vertical scale factors 136 CALL wzv ( kstp ) ! now cross-level velocity (original)134 CALL wzv ( kstp ) ! now cross-level velocity 137 135 138 136 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Note: See TracChangeset
for help on using the changeset viewer.