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

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

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


Revision 1.11 - (hide annotations) (download)
Wed Aug 27 19:29:13 2014 UTC (10 years, 10 months ago) by dgoldberg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.10: +18 -23 lines
updating contrib streamice repo with latest files, and separated out convergence checks; and parameterised maximum iteration counts and interface w shelfice for coupling

1 dgoldberg 1.11 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_cost_surf_accum.F,v 1.3 2013/07/02 20:42:28 jmc Exp $
2 dgoldberg 1.1 C $Name: $
3    
4 dgoldberg 1.11 #include "STREAMICE_OPTIONS.h"
5 dgoldberg 1.9 #ifdef ALLOW_COST
6     # include "COST_OPTIONS.h"
7     #endif
8 dgoldberg 1.1
9     subroutine streamice_cost_surf_accum ( myThid, myIter )
10 dgoldberg 1.11 C *==========================================================*
11 dgoldberg 1.1 C | subroutine cost_test |
12     C | o this routine computes the cost function for the tiles |
13     C | of this processor |
14 dgoldberg 1.11 C *==========================================================*
15 dgoldberg 1.1 C | |
16     C | Notes |
17     C | ===== |
18 dgoldberg 1.11 C *==========================================================*
19 dgoldberg 1.1 IMPLICIT NONE
20    
21     C == Global variables ===
22     #include "SIZE.h"
23     #include "EEPARAMS.h"
24     #include "PARAMS.h"
25     #include "DYNVARS.h"
26     #include "GRID.h"
27     #ifdef ALLOW_STREAMICE
28     # include "STREAMICE.h"
29     #endif
30    
31 dgoldberg 1.9 #ifdef ALLOW_COST
32     # include "cost.h"
33 dgoldberg 1.11 #endif
34 heimbach 1.4 #ifdef ALLOW_AUTODIFF_TAMC
35     # include "tamc.h"
36     #endif
37 dgoldberg 1.1
38     C == Routine arguments ==
39     C myThid - Thread number for this instance of the routine.
40     integer myThid, myIter
41    
42     #ifdef ALLOW_COST_TEST
43     C == Local variables
44     _RL thetaRef, HAF
45    
46     integer i, j, k, bi, bj
47     integer ig, jg
48     integer itlo,ithi
49     integer jtlo,jthi
50 dgoldberg 1.11 integer il
51 dgoldberg 1.1 INTEGER ILNBLNK
52     EXTERNAL ILNBLNK
53     CHARACTER*(MAX_LEN_FNAM) suff
54     CHARACTER*(MAX_LEN_FNAM) STREAMICEsurfOptimFile
55     _RL S_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
56    
57 dgoldberg 1.11 jtlo = mybylo(myThid)
58     jthi = mybyhi(myThid)
59     itlo = mybxlo(myThid)
60     ithi = mybxhi(myThid)
61    
62     WRITE(suff,'(a,I10.10,a)') 'land_ice_surf.',myIter, '.bin'
63    
64     CALL READ_FLD_XY_RL( suff, ' ',
65 dgoldberg 1.1 & S_obs, 0, myThid )
66 dgoldberg 1.11
67 dgoldberg 1.1 C-- Calculate mask for tracer cells (0 => land, 1 => water)
68     ! k=1
69    
70 heimbach 1.4 #ifdef ALLOW_AUTODIFF_TAMC
71     CADJ STORE surf_el_streamice = comlev1, key = ikey_dynamics,
72     CADJ & kind = isbyte
73 dgoldberg 1.6 CADJ STORE H_streamice_prev = comlev1, key = ikey_dynamics,
74     CADJ & kind = isbyte
75 dgoldberg 1.7 CADJ STORE H_streamice = comlev1, key = ikey_dynamics,
76     CADJ & kind = isbyte
77 heimbach 1.4 #endif
78    
79 dgoldberg 1.1 C-- Calculate cost function on tile of this instance
80     do bj = jtlo,jthi
81     do bi = itlo,ithi
82     do j=1,sNy
83     do i=1,sNx
84    
85 dgoldberg 1.5 ! S_obs(i,j,bi,bj) = 0.0
86 dgoldberg 1.10 if (streamice_cost_mask(i,j,bi,bj).eq.1.0) THEN
87 dgoldberg 1.11 cost_func1_streamice (bi,bj) =
88 dgoldberg 1.10 & cost_func1_streamice (bi,bj) +
89     & streamice_wgt_surf * (S_obs(i,j,bi,bj)-
90 dgoldberg 1.11 & surf_el_streamice(i,j,bi,bj))**2 / Nx / Ny +
91 dgoldberg 1.10 & streamice_wgt_drift * (H_streamice(i,j,bi,bj)-
92     & H_streamice_prev(i,j,bi,bj))**2 / Nx / Ny
93     endif
94 dgoldberg 1.1
95     end do
96     end do
97     end do
98     end do
99    
100     #endif
101    
102     RETURN
103     END

  ViewVC Help
Powered by ViewVC 1.1.22