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

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

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


Revision 1.6 - (show annotations) (download)
Tue Nov 29 14:19:37 2016 UTC (7 years, 5 months ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.5: +45 -9 lines
modify adstreamice_invert_surf_for_thick for OPENAD

1 C $Header: /u/gcmpack/MITgcm/pkg/streamice/adstreamice_invert_surf_forthick.F,v 1.5 2015/04/20 14:23:45 dgoldberg Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5 #include "STREAMICE_OPTIONS.h"
6
7
8 SUBROUTINE ADSTRMICE_H_INV (
9 #ifdef ALLOW_OPENAD
10 & H,
11 & Hd,
12 & S,
13 & R,
14 & Rd,
15 & delta,
16 #endif
17 & mythid)
18
19 ! This S/R finds a thickness (H) that gives surf elev S with bed R
20
21 #include "SIZE.h"
22 #include "GRID.h"
23 #include "SET_GRID.h"
24 #include "EEPARAMS.h"
25 #include "PARAMS.h"
26 #include "STREAMICE.h"
27 !#include "CTRL_GENARR.h"
28
29 INTEGER myThid
30
31 #ifdef ALLOW_STREAMICE
32 #ifdef ALLOW_AUTODIFF
33
34 _RL resid, f, fp, hf, htmp
35 _RL rhoi, rhow, i_r, delta
36 INTEGER ITER, i, j, bi, bj
37 _RL ETA_GL_STREAMICE
38 EXTERNAL ETA_GL_STREAMICE
39 _RL ETA_GL_PRIME_STREAMICE
40 ! EXTERNAL PHI_GL_STREAMICE_PRIME
41
42 _RL H(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
43 ! _RL Rtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)a
44 #ifdef ALLOW_AUTODIFF_TAMC
45 _RL r_low_si_ad(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
46 common /streamice_rlow_ad/ r_low_si_ad
47 _RL h_streamice_ad(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
48 common /streamice_fields_rl_ad/ h_streamice_ad
49 #else
50 _RL R(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
51 _RL S(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
52 _RL Rd(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
53 _RL Hd(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
54 #endif
55
56 ! il=ILNBLNK( xx_genarr2d_file(iarr) )
57 ! write(fnamegeneric(1:80),'(2a,i10.10)')
58 ! & xx_genarr2d_file(iarr)(1:il),'.',optimcycle
59 ! CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1,
60 ! & doglobalread, ladinit, optimcycle,
61 ! & myThid, xx_genarr2d_dummy(iarr) )
62
63
64
65 ! CALL ACTIVE_READ_XY ( 'H_adjust.data', H, 1,
66 ! & doglobalread, ladinit, optimcycle,
67 ! & myThid,
68
69 ! CALL READ_FLD_XY_RL( 'R_low_adjust.data', ' ', Rtmp,
70 ! & 0, myThid )
71
72 ! call write_fld_xy_rl ("R_invert_pre","",R,0,mythid)
73
74 CALL STREAMICE_INVERT_SURF_FORTHICK (
75 O H,
76 #ifdef ALLOW_AUTODIFF_TAMC
77 I surf_el_streamice,
78 I R_low_si,
79 #else
80 I S,
81 I R,
82 #endif
83 I delta,
84 I myThid)
85
86 rhoi = streamice_density
87 rhow = streamice_density_ocean_avg
88 i_r = rhow/rhoi
89 delta=1-rhoi/rhow
90
91 DO bj=myByLo(myThid), myByHi(myThid)
92 DO bi=myBxLo(myThid), myBxHi(myThid)
93 do j = 1,sNy
94 do i = 1,sNx
95
96
97 #ifdef ALLOW_AUTODIFF_TAMC
98 hf = -1.0 * i_r * R_low_si (i,j,bi,bj)
99 #else
100 hf = -1.0 * i_r * R (i,j,bi,bj)
101 #endif
102
103 fp = ETA_GL_PRIME_STREAMICE (
104 & H (i,j,bi,bj)-hf,
105 & delta,
106 & 1. _d 0,
107 & delta*hf,
108 & streamice_smooth_gl_width)
109
110
111 #ifdef ALLOW_AUTODIFF_TAMC
112 r_low_si_ad (i,j,bi,bj) =
113 & r_low_si_ad (i,j,bi,bj) -
114 & i_r * (fp-delta)/fp *
115 & h_streamice_ad(i,j,bi,bj)
116 #else
117 rd (i,j,bi,bj) =
118 & rd (i,j,bi,bj) -
119 & i_r * (fp-delta)/fp *
120 & hd(i,j,bi,bj)
121 #endif
122
123 enddo
124 enddo
125 enddo
126 enddo
127
128 #endif
129 #endif
130 RETURN
131 END

  ViewVC Help
Powered by ViewVC 1.1.22