158 |
C useVariableVisc, useHarmonicVisc and useBiharmonicVisc |
C useVariableVisc, useHarmonicVisc and useBiharmonicVisc |
159 |
C are now set early on (in S/R SET_PARAMS) |
C are now set early on (in S/R SET_PARAMS) |
160 |
|
|
161 |
IF ( useVariableVisc ) THEN |
c IF ( useVariableVisc ) THEN |
162 |
C---- variable viscosity : |
C---- variable viscosity : |
163 |
|
|
164 |
recip_dt = 1. _d 0 |
recip_dt = 1. _d 0 |
215 |
|
|
216 |
DO j=1-OLy,sNy+OLy |
DO j=1-OLy,sNy+OLy |
217 |
DO i=1-OLx,sNx+OLx |
DO i=1-OLx,sNx+OLx |
218 |
viscAh_D(i,j) = viscAhD |
C- viscosity arrays have been initialised everywhere before calling this S/R |
219 |
viscAh_Z(i,j) = viscAhZ |
c viscAh_D(i,j) = viscAhD |
220 |
viscA4_D(i,j) = viscA4D |
c viscAh_Z(i,j) = viscAhZ |
221 |
viscA4_Z(i,j) = viscA4Z |
c viscA4_D(i,j) = viscA4D |
222 |
|
c viscA4_Z(i,j) = viscA4Z |
223 |
|
|
224 |
visca4_zsmg(i,j) = 0. _d 0 |
visca4_zsmg(i,j) = 0. _d 0 |
225 |
viscah_zsmg(i,j) = 0. _d 0 |
viscah_zsmg(i,j) = 0. _d 0 |
239 |
ENDDO |
ENDDO |
240 |
ENDDO |
ENDDO |
241 |
|
|
242 |
C- Initialise to zero gradient of vorticity & divergence: |
C- Initialise to zero gradient of vorticity & divergence: |
243 |
DO j=1-OLy,sNy+OLy |
DO j=1-OLy,sNy+OLy |
244 |
DO i=1-OLx,sNx+OLx |
DO i=1-OLx,sNx+OLx |
245 |
divDx(i,j) = 0. |
divDx(i,j) = 0. |
249 |
ENDDO |
ENDDO |
250 |
ENDDO |
ENDDO |
251 |
|
|
252 |
IF (calcLeith) THEN |
IF ( calcLeith ) THEN |
253 |
C horizontal gradient of horizontal divergence: |
C-- horizontal gradient of horizontal divergence: |
|
|
|
254 |
C- gradient in x direction: |
C- gradient in x direction: |
255 |
IF (useCubedSphereExchange) THEN |
IF (useCubedSphereExchange) THEN |
256 |
C to compute d/dx(hDiv), fill corners with appropriate values: |
C to compute d/dx(hDiv), fill corners with appropriate values: |
275 |
ENDDO |
ENDDO |
276 |
ENDDO |
ENDDO |
277 |
|
|
278 |
C horizontal gradient of vertical vorticity: |
C-- horizontal gradient of vertical vorticity: |
279 |
C- gradient in x direction: |
C- gradient in x direction: |
280 |
DO j=2-OLy,sNy+OLy |
DO j=2-OLy,sNy+OLy |
281 |
DO i=2-OLx,sNx+OLx-1 |
DO i=2-OLx,sNx+OLx-1 |
299 |
ENDDO |
ENDDO |
300 |
ENDDO |
ENDDO |
301 |
|
|
302 |
|
C-- end if calcLeith |
303 |
ENDIF |
ENDIF |
304 |
|
|
305 |
DO j=2-OLy,sNy+OLy-1 |
DO j=2-OLy,sNy+OLy-1 |
524 |
|
|
525 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
526 |
IF ( nonHydrostatic ) THEN |
IF ( nonHydrostatic ) THEN |
527 |
C-- Pass Viscosities to calc_gw, if constant, not necessary |
C-- Pass Viscosities to calc_gw (if constant, not necessary) |
528 |
|
|
529 |
IF ( k.LT.Nr ) THEN |
IF ( k.LT.Nr ) THEN |
530 |
C Prepare for next level (next call) |
C Prepare for next level (next call) |
561 |
ENDIF |
ENDIF |
562 |
#endif /* ALLOW_NONHYDROSTATIC */ |
#endif /* ALLOW_NONHYDROSTATIC */ |
563 |
|
|
564 |
ELSE |
c ELSE |
565 |
C---- use constant viscosity (useVariableVisc=F): |
C---- use constant viscosity (useVariableVisc=F): |
566 |
|
c DO j=1-OLy,sNy+OLy |
567 |
DO j=1-OLy,sNy+OLy |
c DO i=1-OLx,sNx+OLx |
568 |
DO i=1-OLx,sNx+OLx |
c viscAh_D(i,j) = viscAhD |
569 |
viscAh_D(i,j)=viscAhD |
c viscAh_Z(i,j) = viscAhZ |
570 |
viscAh_Z(i,j)=viscAhZ |
c viscA4_D(i,j) = viscA4D |
571 |
viscA4_D(i,j)=viscA4D |
c viscA4_Z(i,j) = viscA4Z |
572 |
viscA4_Z(i,j)=viscA4Z |
c ENDDO |
573 |
ENDDO |
c ENDDO |
|
ENDDO |
|
|
|
|
574 |
C---- variable/constant viscosity : end if/else block |
C---- variable/constant viscosity : end if/else block |
575 |
ENDIF |
c ENDIF |
576 |
|
|
577 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
578 |
IF (useDiagnostics) THEN |
IF (useDiagnostics) THEN |
596 |
CALL DIAGNOSTICS_FILL(viscAh_ZLth,'VAHZLTH ',k,1,2,bi,bj,myThid) |
CALL DIAGNOSTICS_FILL(viscAh_ZLth,'VAHZLTH ',k,1,2,bi,bj,myThid) |
597 |
CALL DIAGNOSTICS_FILL(viscA4_ZLth,'VA4ZLTH ',k,1,2,bi,bj,myThid) |
CALL DIAGNOSTICS_FILL(viscA4_ZLth,'VA4ZLTH ',k,1,2,bi,bj,myThid) |
598 |
|
|
599 |
CALL DIAGNOSTICS_FILL(viscAh_DLthD,'VAHDLTHD' |
CALL DIAGNOSTICS_FILL(viscAh_DLthD,'VAHDLTHD', |
600 |
& ,k,1,2,bi,bj,myThid) |
& k,1,2,bi,bj,myThid) |
601 |
CALL DIAGNOSTICS_FILL(viscA4_DLthD,'VA4DLTHD' |
CALL DIAGNOSTICS_FILL(viscA4_DLthD,'VA4DLTHD', |
602 |
& ,k,1,2,bi,bj,myThid) |
& k,1,2,bi,bj,myThid) |
603 |
CALL DIAGNOSTICS_FILL(viscAh_ZLthD,'VAHZLTHD' |
CALL DIAGNOSTICS_FILL(viscAh_ZLthD,'VAHZLTHD', |
604 |
& ,k,1,2,bi,bj,myThid) |
& k,1,2,bi,bj,myThid) |
605 |
CALL DIAGNOSTICS_FILL(viscA4_ZLthD,'VA4ZLTHD' |
CALL DIAGNOSTICS_FILL(viscA4_ZLthD,'VA4ZLTHD', |
606 |
& ,k,1,2,bi,bj,myThid) |
& k,1,2,bi,bj,myThid) |
607 |
|
|
608 |
CALL DIAGNOSTICS_FILL(viscAh_DSmg,'VAHDSMAG',k,1,2,bi,bj,myThid) |
CALL DIAGNOSTICS_FILL(viscAh_DSmg,'VAHDSMAG',k,1,2,bi,bj,myThid) |
609 |
CALL DIAGNOSTICS_FILL(viscA4_DSmg,'VA4DSMAG',k,1,2,bi,bj,myThid) |
CALL DIAGNOSTICS_FILL(viscA4_DSmg,'VA4DSMAG',k,1,2,bi,bj,myThid) |
614 |
|
|
615 |
RETURN |
RETURN |
616 |
END |
END |
|
|
|