C $Header: /u/gcmpack/MITgcm/pkg/gridalt/gridalt_update.F,v 1.11 2012/07/07 00:08:09 jmc Exp $ C $Name: $ #include "GRIDALT_OPTIONS.h" subroutine GRIDALT_UPDATE(myThid) c*********************************************************************** c subroutine gridalt_update c c Purpose: Update the pressure thicknesses of the layers of the c alternative vertical grid (used now for atmospheric physics). c c Calculate: dpphys - new delta r (p*) edge-to-edge of physics grid c using dpphys0 (initial value) and rstarfacC c c*********************************************************************** implicit none #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "fizhi_SIZE.h" #include "gridalt_mapping.h" #include "SURFACE.h" integer myThid integer im1,im2,jm1,jm2 integer i1,i2,j1,j2,bi,bj integer i,j,L logical diagnostics_is_on external _RL temparr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nrphys,nSx,nSy) im1 = 1-OLx im2 = sNx+OLx jm1 = 1-OLy jm2 = sNy+OLy i1 = 1 i2 = sNx j1 = 1 j2 = sNy #ifdef ALLOW_FIZHI #ifdef NONLIN_FRSURF if(usefizhi .and. (select_rStar.GT.0) )then do bj = myByLo(myThid), myByHi(myThid) do bi = myBxLo(myThid), myBxHi(myThid) c do L = 1,Nrphys do j = j1,j2 do i = i1,i2 dpphys(i,j,L,bi,bj) = dpphys0(i,j,L,bi,bj) * . rstarfacC(i,j,bi,bj) enddo enddo enddo c enddo enddo endif #endif #ifdef ALLOW_DIAGNOSTICS if(useDiagnostics) then IF ( DIAGNOSTICS_IS_ON('DPPHYS ',myThid) ) THEN do bj = myByLo(myThid), myByHi(myThid) do bi = myBxLo(myThid), myBxHi(myThid) do L = 1,Nrphys do j = j1,j2 do i = i1,i2 temparr(i,j,L,bi,bj) = dpphys(i,j,L,bi,bj) * 1. _d -2 enddo enddo enddo enddo enddo CALL DIAGNOSTICS_FILL(temparr,'DPPHYS ',-1,Nrphys,0,1,1,myThid) ENDIF endif #endif #endif return end