/[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.1 - (show annotations) (download)
Wed Jun 12 21:30:22 2013 UTC (10 years, 11 months ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint64i
new package from CONTRIB branch

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

  ViewVC Help
Powered by ViewVC 1.1.22