/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/streamice_invert_surf_forthick.F
ViewVC logotype

Annotation of /MITgcm_contrib/dgoldberg/streamice/streamice_invert_surf_forthick.F

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


Revision 1.1 - (hide annotations) (download)
Thu Mar 7 15:07:04 2013 UTC (12 years, 4 months ago) by dgoldberg
Branch: MAIN
control thickness along with R_low w/out changing surf elev

1 dgoldberg 1.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