File indexing completed on 2024-09-20 05:10:21 UTC
view on githubraw file Latest commit e6e223b2 on 2024-09-19 22:01:15 UTC
8991be1c08 Jean*0001 #include "CPP_OPTIONS.h"
0002
0003
0004
0005
0006 SUBROUTINE POST_CG3D(
0007 I myTime, myIter, myThid )
0008
0009
0010
0011
0012
0013
0014 IMPLICIT NONE
0015
0016 #include "SIZE.h"
0017 #include "EEPARAMS.h"
0018 #ifdef ALLOW_NONHYDROSTATIC
e6e223b277 Jean*0019 # include "PARAMS.h"
0020 # include "GRID.h"
0021 # include "SURFACE.h"
0022
0023 # include "DYNVARS.h"
0024 # include "NH_VARS.h"
8991be1c08 Jean*0025 #endif
0026
0027
0028
0029
0030
0031 _RL myTime
0032 INTEGER myIter
0033 INTEGER myThid
0034
0035 #ifdef ALLOW_NONHYDROSTATIC
e6e223b277 Jean*0036
0037 LOGICAL DIFFERENT_MULTIPLE
0038 EXTERNAL DIFFERENT_MULTIPLE
0039
8991be1c08 Jean*0040
e6e223b277 Jean*0041 INTEGER i, j, bi, bj
8991be1c08 Jean*0042 INTEGER ks
0043
8e18cb9146 Jean*0044 _RL locGamma
8991be1c08 Jean*0045
0046
cba4501825 Jean*0047
0048
0049 IF ( nonHydrostatic .AND. exactConserv ) THEN
8991be1c08 Jean*0050 DO bj=myByLo(myThid),myByHi(myThid)
0051 DO bi=myBxLo(myThid),myBxHi(myThid)
8e18cb9146 Jean*0052
0053 IF ( selectNHfreeSurf.GE.1 ) THEN
0054 DO j=1,sNy
0055 DO i=1,sNx
0056 locGamma = drC(1)*recip_Bo(i,j,bi,bj)
0057 & /( deltaTMom*deltaTFreeSurf
0058 & *implicitNHPress*implicDiv2DFlow )
0059 ks = 1
0060
0061
0062 dPhiNH(i,j,bi,bj) = ( phi_nh(i,j,ks,bi,bj)
0063 & + locGamma*Bo_surf(i,j,bi,bj)
0064 & *implicDiv2DFlow*deltaTFreeSurf
0065
0066 & *( wVel(i,j,ks,bi,bj) - dPhiNH(i,j,bi,bj) )
0067 & )/(1. _d 0 + locGamma )
0068
0069 ENDDO
0070 ENDDO
0071 ELSEIF ( uniformFreeSurfLev ) THEN
8991be1c08 Jean*0072
0073 DO j=1-OLy,sNy+OLy
0074 DO i=1-OLx,sNx+OLx
cba4501825 Jean*0075 dPhiNH(i,j,bi,bj) = phi_nh(i,j,1,bi,bj)
8991be1c08 Jean*0076 ENDDO
0077 ENDDO
8e18cb9146 Jean*0078 ELSE
8991be1c08 Jean*0079
0080 DO j=1-OLy,sNy+OLy
0081 DO i=1-OLx,sNx+OLx
e78345ed77 Jean*0082 ks = kSurfC(i,j,bi,bj)
8991be1c08 Jean*0083 IF ( ks.LE.Nr ) THEN
cba4501825 Jean*0084 dPhiNH(i,j,bi,bj) = phi_nh(i,j,ks,bi,bj)
8991be1c08 Jean*0085 ELSE
cba4501825 Jean*0086 dPhiNH(i,j,bi,bj) = 0.
8991be1c08 Jean*0087 ENDIF
0088 ENDDO
0089 ENDDO
982e105a17 Jean*0090 ENDIF
8e18cb9146 Jean*0091
cba4501825 Jean*0092 ENDDO
0093 ENDDO
982e105a17 Jean*0094 IF ( selectNHfreeSurf.GE.1 .AND.
9952e3248a Jean*0095 & ( implicitNHPress.LT.oneRL .OR. selectP_inEOS_Zc.EQ.3 ) ) THEN
982e105a17 Jean*0096 CALL EXCH_XY_RL( dPhiNH, myThid )
cba4501825 Jean*0097 ENDIF
0098 ENDIF
0099
8991be1c08 Jean*0100 #endif /* ALLOW_NONHYDROSTATIC */
0101
0102 RETURN
0103 END