Changeset 4488 for branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DYN
- Timestamp:
- 2014-02-06T11:43:09+01:00 (10 years ago)
- Location:
- branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DYN
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf.F90
r3294 r4488 20 20 USE dynldf_iso ! lateral mixing (dyn_ldf_iso routine) 21 21 USE dynldf_lap ! lateral mixing (dyn_ldf_lap routine) 22 USE ldftra_oce, ONLY: ln_traldf_hor ! ocean tracers lateral physics 22 23 USE trdmod ! ocean dynamics and tracer trends 23 24 USE trdmod_oce ! ocean variables trends … … 152 153 IF( ioptio > 1 ) CALL ctl_stop( ' use only ONE direction (level/hor/iso)' ) 153 154 155 IF( ln_dynldf_iso .AND. ln_traldf_hor ) CALL ctl_stop( 'Not sensible to use geopotential diffusion for tracers with isoneutral diffusion for dynamics' ) 156 154 157 ! ! Set nldf, the type of lateral diffusion, from ln_dynldf_... logicals 155 158 ierr = 0 -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilapg.F90
r3634 r4488 19 19 USE dom_oce ! ocean space and time domain 20 20 USE ldfdyn_oce ! ocean dynamics lateral physics 21 USE ldftra_oce, ONLY: ln_traldf_iso 21 22 USE zdf_oce ! ocean vertical physics 22 23 USE trdmod ! ocean dynamics trends … … 29 30 USE wrk_nemo ! Memory Allocation 30 31 USE timing ! Timing 31 32 32 33 33 IMPLICIT NONE … … 104 104 IF( dyn_ldf_bilapg_alloc() /= 0 ) CALL ctl_stop('STOP', 'dyn_ldf_bilapg: failed to allocate arrays') 105 105 ENDIF 106 ! 106 107 ! s-coordinate: Iso-level diffusion on tracer, but geopotential level diffusion on momentum 108 IF( ln_dynldf_hor .AND. ln_traldf_iso ) THEN 109 ! 110 DO jk = 1, jpk ! set the slopes of iso-level 111 DO jj = 2, jpjm1 112 DO ji = 2, jpim1 113 uslp (ji,jj,jk) = -1./e1u(ji,jj) * ( fsdept_b(ji+1,jj,jk) - fsdept_b(ji ,jj ,jk) ) * umask(ji,jj,jk) 114 vslp (ji,jj,jk) = -1./e2v(ji,jj) * ( fsdept_b(ji,jj+1,jk) - fsdept_b(ji ,jj ,jk) ) * vmask(ji,jj,jk) 115 wslpi(ji,jj,jk) = -1./e1t(ji,jj) * ( fsdepw_b(ji+1,jj,jk) - fsdepw_b(ji-1,jj,jk) ) * tmask(ji,jj,jk) * 0.5 116 wslpj(ji,jj,jk) = -1./e2t(ji,jj) * ( fsdepw_b(ji,jj+1,jk) - fsdepw_b(ji,jj-1,jk) ) * tmask(ji,jj,jk) * 0.5 117 END DO 118 END DO 119 END DO 120 ! Lateral boundary conditions on the slopes 121 CALL lbc_lnk( uslp , 'U', -1. ) ; CALL lbc_lnk( vslp , 'V', -1. ) 122 CALL lbc_lnk( wslpi, 'W', -1. ) ; CALL lbc_lnk( wslpj, 'W', -1. ) 123 124 !!bug 125 IF( kt == nit000 ) then 126 IF(lwp) WRITE(numout,*) ' max slop: u', SQRT( MAXVAL(uslp*uslp)), ' v ', SQRT(MAXVAL(vslp)), & 127 & ' wi', sqrt(MAXVAL(wslpi)) , ' wj', sqrt(MAXVAL(wslpj)) 128 endif 129 !!end 130 ENDIF 131 107 132 zwk1(:,:,:) = 0.e0 ; zwk3(:,:,:) = 0.e0 108 133 zwk2(:,:,:) = 0.e0 ; zwk4(:,:,:) = 0.e0 -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_iso.F90
r3294 r4488 131 131 ENDIF 132 132 133 ! s-coordinate: Iso-level diffusion on momentum but not on tracer133 ! s-coordinate: Iso-level diffusion on tracer, but geopotential level diffusion on momentum 134 134 IF( ln_dynldf_hor .AND. ln_traldf_iso ) THEN 135 135 ! 136 136 DO jk = 1, jpk ! set the slopes of iso-level 137 137 DO jj = 2, jpjm1 138 DO ji = fs_2, fs_jpim1 ! vector opt.139 uslp (ji,jj,jk) = -1./e1u(ji,jj) * ( fsdept (ji+1,jj,jk) - fsdept(ji ,jj ,jk) ) * umask(ji,jj,jk)140 vslp (ji,jj,jk) = -1./e2v(ji,jj) * ( fsdept (ji,jj+1,jk) - fsdept(ji ,jj ,jk) ) * vmask(ji,jj,jk)141 wslpi(ji,jj,jk) = -1./e1t(ji,jj) * ( fsdepw (ji+1,jj,jk) - fsdepw(ji-1,jj,jk) ) * tmask(ji,jj,jk) * 0.5142 wslpj(ji,jj,jk) = -1./e2t(ji,jj) * ( fsdepw (ji,jj+1,jk) - fsdepw(ji,jj-1,jk) ) * tmask(ji,jj,jk) * 0.5138 DO ji = 2, jpim1 139 uslp (ji,jj,jk) = -1./e1u(ji,jj) * ( fsdept_b(ji+1,jj,jk) - fsdept_b(ji ,jj ,jk) ) * umask(ji,jj,jk) 140 vslp (ji,jj,jk) = -1./e2v(ji,jj) * ( fsdept_b(ji,jj+1,jk) - fsdept_b(ji ,jj ,jk) ) * vmask(ji,jj,jk) 141 wslpi(ji,jj,jk) = -1./e1t(ji,jj) * ( fsdepw_b(ji+1,jj,jk) - fsdepw_b(ji-1,jj,jk) ) * tmask(ji,jj,jk) * 0.5 142 wslpj(ji,jj,jk) = -1./e2t(ji,jj) * ( fsdepw_b(ji,jj+1,jk) - fsdepw_b(ji,jj-1,jk) ) * tmask(ji,jj,jk) * 0.5 143 143 END DO 144 144 END DO
Note: See TracChangeset
for help on using the changeset viewer.