/[MITgcm]/MITgcm/pkg/streamice/streamice_invert_surf_forthick.F
ViewVC logotype

Contents of /MITgcm/pkg/streamice/streamice_invert_surf_forthick.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download)
Fri Jun 21 20:49:50 2013 UTC (10 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64o, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint66a, checkpoint64n, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint64k, checkpoint65, checkpoint64j, checkpoint64m, checkpoint64l
Changes since 1.2: +13 -10 lines
add CVS Header and Name

1 C $Header: $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5 #include "STREAMICE_OPTIONS.h"
6
7 SUBROUTINE STREAMICE_INVERT_SURF_FORTHICK (
8 O H,
9 I S,
10 I R,
11 I delta,
12 I myThid)
13
14 ! This S/R finds a thickness (H) that gives surf elev S with bed R
15
16 #include "SIZE.h"
17 #include "GRID.h"
18 #include "SET_GRID.h"
19 #include "EEPARAMS.h"
20 #include "PARAMS.h"
21 #include "STREAMICE.h"
22
23 _RL H(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
24 _RL S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
25 _RL R(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
26 _RL DELTA
27 INTEGER myThid
28
29 #ifdef ALLOW_STREAMICE
30
31 _RL resid, f, fp, hf, htmp
32 INTEGER i, j, bi, bj, ITER
33 _RL ETA_GL_STREAMICE
34 EXTERNAL ETA_GL_STREAMICE
35 _RL ETA_GL_STREAMICE_PRIME
36 ! EXTERNAL PHI_GL_STREAMICE_PRIME
37
38 DO bj=myByLo(myThid), myByHi(myThid)
39 DO bi=myBxLo(myThid), myBxHi(myThid)
40 DO j = 1,sNy
41 DO i = 1,sNx
42 IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN
43 hf = (-1. _d 0) * R(i,j,bi,bj) /
44 & (1. _d 0 - delta)
45
46 IF (S(i,j,bi,bj) .gt. delta*HF) THEN
47 htmp = S(i,j,bi,bj)-R(i,j,bi,bj)
48 ELSE
49 htmp = S(i,j,bi,bj)/delta
50 ENDIF
51
52 IF (streamice_smooth_gl_width.gt.0.) THEN
53
54 RESID=1. _d 0
55
56 DO ITER=1,20
57 IF ((RESID .gt. .005) .and.
58 & ( STREAMICE_hmask(i,j,bi,bj).eq.1.0)) THEN
59
60 hf = (-1. _d 0) * R(i,j,bi,bj) /
61 & (1. _d 0 - delta)
62
63 IF (S(i,j,bi,bj) .gt. delta*HF) THEN
64 htmp = S(i,j,bi,bj)-R(i,j,bi,bj)
65 ELSE
66 htmp = S(i,j,bi,bj)/delta
67 ENDIF
68
69 RESID = ETA_GL_STREAMICE (
70 & htmp-HF,
71 & delta,
72 & 1. _d 0,
73 & delta*HF,
74 & streamice_smooth_gl_width)
75 RESID = RESID - S(i,j,bi,bj)
76 FP = ETA_GL_STREAMICE_PRIME (
77 & htmp-HF,
78 & delta,
79 & 1. _d 0,
80 & delta*HF,
81 & streamice_smooth_gl_width)
82 Htmp = HTMP-RESID/FP
83 ENDIF
84 ENDDO
85 ENDIF
86 H(i,j,bi,bj) = Htmp
87 ENDIF
88 ENDDO
89 ENDDO
90 ENDDO
91 ENDDO
92
93
94 #endif
95 RETURN
96 END

  ViewVC Help
Powered by ViewVC 1.1.22