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

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

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


Revision 1.14 - (hide annotations) (download)
Wed Aug 27 19:29:14 2014 UTC (9 years, 8 months ago) by dgoldberg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.13: +10 -5 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.14 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_solo_timestep.F,v 1.3 2014/06/04 13:03:11 dgoldberg Exp $
2 heimbach 1.1 C $Name: $
3    
4     #include "STREAMICE_OPTIONS.h"
5    
6     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7    
8     CBOP
9     SUBROUTINE STREAMICE_SOLO_TIMESTEP ( myThid, myIter,
10     & iLoop, myTime )
11    
12     C /============================================================\
13     C | SUBROUTINE |
14     C | o |
15     C |============================================================|
16     C | |
17     C \============================================================/
18     IMPLICIT NONE
19    
20     C === Global variables ===
21     #include "SIZE.h"
22     #include "GRID.h"
23     #include "EEPARAMS.h"
24     #include "PARAMS.h"
25     #include "STREAMICE.h"
26     #ifdef ALLOW_AUTODIFF_TAMC
27     # include "tamc.h"
28     # include "STREAMICE_ADV.h"
29     # include "STREAMICE_BDRY.h"
30     # include "STREAMICE_CG.h"
31     #endif
32    
33    
34     INTEGER myThid, myIter, iLoop
35     _RL myTime
36    
37    
38     #ifdef ALLOW_STREAMICE
39    
40     INTEGER i, j, bi, bj, ki, kj
41     ! _RL Iratio, Imin_ratio, time_step_remain, local_u_max
42     ! _RL ratio, min_ratio
43     ! _RL local_v_max, time_step_int, min_time_step
44     CHARACTER*(MAX_LEN_MBUF) msgBuf
45     ! LOGICAL modelEnd
46    
47     #ifdef ALLOW_AUTODIFF_TAMC
48     c**************************************
49     #include "streamice_ad_check_lev1_dir.h"
50     c**************************************
51     #endif
52    
53     ! time_step_remain = deltaT
54     ! min_time_step = 1000.0
55     ! n_interm = 0
56    
57     #ifdef ALLOW_AUTODIFF_TAMC
58    
59     DO bj=myByLo(myThid),myByHi(myThid)
60     DO bi=myBxLo(myThid),myBxHi(myThid)
61     DO j=1-OLy,sNy+OLy
62     DO i=1-OLx,sNx+OLx
63     STREAMICE_ufacemask(i,j,bi,bj) = 0. _d 0
64     STREAMICE_vfacemask(i,j,bi,bj) = 0. _d 0
65     ru_old_si(i,j,bi,bj) = 0. _d 0
66     rv_old_si(i,j,bi,bj) = 0. _d 0
67     zu_old_si(i,j,bi,bj) = 0. _d 0
68     zv_old_si(i,j,bi,bj) = 0. _d 0
69 dgoldberg 1.13 ! h_after_uflux_si(i,j,bi,bj) = 0. _d 0
70 heimbach 1.6 #ifdef STREAMICE_HYBRID_STRESS
71     streamice_taubx (i,j,bi,bj) = 0. _d 0
72     streamice_tauby (i,j,bi,bj) = 0. _d 0
73     #endif
74 heimbach 1.1 ENDDO
75     ENDDO
76     ENDDO
77     ENDDO
78    
79     #endif
80    
81    
82    
83     WRITE(msgBuf,'(A,I10.10,E9.2,A)')
84     & 'streamice solo_time_step: nIter',
85     & myIter, myTime/86400.0/365.0, 'seconds'
86     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
87     & SQUEEZE_RIGHT , 1)
88    
89 heimbach 1.4 CALL STREAMICE_DUMP( mytime, myiter, myThid )
90    
91 dgoldberg 1.8 ! NEW DIRECTIVES - DNG
92 dgoldberg 1.10 !#ifdef ALLOW_AUTODIFF_TAMC
93     !CADJ STORE float_frac_streamice = comlev1, key = ikey_dynamics,
94     !CADJ & kind = isbyte
95     !CADJ STORE surf_el_streamice = comlev1, key = ikey_dynamics,
96     !CADJ & kind = isbyte
97     !CADJ STORE base_el_streamice = comlev1, key = ikey_dynamics,
98     !CADJ & kind = isbyte
99     !#endif
100 dgoldberg 1.8 ! NEW DIRECTIVES - DNG
101 dgoldberg 1.7
102 dgoldberg 1.14 !#ifdef ALLOW_GENTIM2D_CONTROL
103     ! CALL CTRL_MAP_GENTIM2D (myTime, myIter, myThid)
104     !#endif
105 dgoldberg 1.11
106 dgoldberg 1.8 if (myIter.eq.0) then
107 dgoldberg 1.10 CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )
108 dgoldberg 1.12 CALL WRITE_FLD_XY_RL
109     & ("surf_el_init","",surf_el_streamice,0,myThid)
110 dgoldberg 1.8 endif
111 heimbach 1.1 CALL STREAMICE_VELMASK_UPD (myThid)
112 dgoldberg 1.13
113     #ifdef ALLOW_STREAMICE_FLUX_CONTROL
114     CALL STREAMICE_APPLY_FLUX_CTRL ( myTime, myIter, myThid )
115 dgoldberg 1.14 #endif
116    
117     #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING
118     CALL STREAMICE_FIELDS_LOAD( myTime, myIter, myThid )
119     #endif
120    
121 dgoldberg 1.13
122 heimbach 1.1 CALL STREAMICE_VEL_SOLVE( myThid )
123 dgoldberg 1.8
124 dgoldberg 1.5 if(.not.STREAMICE_diagnostic_only) THEN
125    
126 dgoldberg 1.13 CALL STREAMICE_ADVECT_THICKNESS ( myThid, myIter, deltaT )
127 dgoldberg 1.5
128     endif
129 dgoldberg 1.10
130 dgoldberg 1.8 ! CALL AT END INSTEAD OF BEGINNING - DNG
131     CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )
132 heimbach 1.1
133    
134    
135 dgoldberg 1.10
136 heimbach 1.1 #endif
137     RETURN
138     END

  ViewVC Help
Powered by ViewVC 1.1.22