Line data Source code
1 : !=======================================================================
2 : ! Copyright (c) 2020, Triad National Security, LLC
3 : ! All rights reserved.
4 : !
5 : ! Copyright 2020. Triad National Security, LLC. This software was
6 : ! produced under U.S. Government contract DE-AC52-06NA25396 for Los
7 : ! Alamos National Laboratory (LANL), which is operated by Triad
8 : ! National Security, LLC for the U.S. Department of Energy. The U.S.
9 : ! Government has rights to use, reproduce, and distribute this software.
10 : ! NEITHER THE GOVERNMENT NOR TRIAD NATIONAL SECURITY, LLC MAKES ANY
11 : ! WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF
12 : ! THIS SOFTWARE. If software is modified to produce derivative works,
13 : ! such modified software should be clearly marked, so as not to confuse
14 : ! it with the version available from LANL.
15 : !
16 : ! The full license and distribution policy are available from
17 : ! https://github.com/CICE-Consortium
18 : !
19 : !=======================================================================
20 : !
21 : ! authors: Elizabeth C. Hunke, LANL
22 : !
23 :
24 : !autodocument_start icepack_intfc.F90
25 : ! public parameters and interface routines for the icepack columnpackage code
26 :
27 : module icepack_intfc
28 :
29 : use icepack_kinds, only: icepack_char_len => char_len
30 : use icepack_kinds, only: icepack_char_len_long => char_len_long
31 : use icepack_kinds, only: icepack_log_kind => log_kind
32 : use icepack_kinds, only: icepack_int_kind => int_kind
33 : use icepack_kinds, only: icepack_int8_kind => int8_kind
34 : use icepack_kinds, only: icepack_real_kind => real_kind
35 : use icepack_kinds, only: icepack_dbl_kind => dbl_kind
36 : use icepack_kinds, only: icepack_r16_kind => r16_kind
37 :
38 : use icepack_tracers, only: icepack_max_nbtrcr => max_nbtrcr
39 : use icepack_tracers, only: icepack_max_algae => max_algae
40 : use icepack_tracers, only: icepack_max_dic => max_dic
41 : use icepack_tracers, only: icepack_max_doc => max_doc
42 : use icepack_tracers, only: icepack_max_don => max_don
43 : use icepack_tracers, only: icepack_max_fe => max_fe
44 : use icepack_tracers, only: icepack_max_aero => max_aero
45 : use icepack_tracers, only: icepack_max_iso => max_iso
46 : use icepack_tracers, only: icepack_nmodal1 => nmodal1
47 : use icepack_tracers, only: icepack_nmodal2 => nmodal2
48 : use icepack_parameters, only: icepack_nspint => nspint
49 :
50 : use icepack_parameters, only: icepack_init_parameters
51 : use icepack_parameters, only: icepack_query_parameters
52 : use icepack_parameters, only: icepack_write_parameters
53 : use icepack_parameters, only: icepack_recompute_constants
54 : use icepack_parameters, only: nspint, secday, spval_const
55 : use icepack_parameters, only: c0, c1, c1p5, c2, c3, c4, c5, c6, c8
56 : use icepack_parameters, only: c10, c15, c16, c20, c25, c100, c1000
57 : use icepack_parameters, only: p001, p01, p1, p2, p4, p5, p6, p05
58 : use icepack_parameters, only: p15, p25, p75, p333, p666
59 :
60 : use icepack_tracers, only: icepack_compute_tracers
61 : use icepack_tracers, only: icepack_init_tracer_flags
62 : use icepack_tracers, only: icepack_query_tracer_flags
63 : use icepack_tracers, only: icepack_write_tracer_flags
64 : use icepack_tracers, only: icepack_init_tracer_indices
65 : use icepack_tracers, only: icepack_query_tracer_indices
66 : use icepack_tracers, only: icepack_write_tracer_indices
67 : use icepack_tracers, only: icepack_init_tracer_sizes
68 : use icepack_tracers, only: icepack_query_tracer_sizes
69 : use icepack_tracers, only: icepack_write_tracer_sizes
70 :
71 : use icepack_itd, only: icepack_init_itd
72 : use icepack_itd, only: icepack_init_itd_hist
73 : use icepack_itd, only: icepack_aggregate
74 :
75 : use icepack_fsd, only: icepack_init_fsd_bounds
76 : use icepack_fsd, only: icepack_init_fsd
77 : use icepack_fsd, only: icepack_cleanup_fsd
78 :
79 : use icepack_mechred, only: icepack_step_ridge
80 : use icepack_mechred, only: icepack_ice_strength
81 :
82 : use icepack_wavefracspec, only: icepack_init_wave
83 : use icepack_wavefracspec, only: icepack_step_wavefracture
84 :
85 : use icepack_shortwave, only: icepack_prep_radiation
86 : use icepack_shortwave, only: icepack_step_radiation
87 :
88 : use icepack_brine, only: icepack_init_hbrine
89 : use icepack_brine, only: icepack_init_zsalinity
90 :
91 : use icepack_zbgc , only: icepack_init_bgc
92 : use icepack_zbgc , only: icepack_init_zbgc
93 : use icepack_zbgc , only: icepack_biogeochemistry
94 : use icepack_zbgc , only: icepack_init_ocean_bio
95 : use icepack_zbgc , only: icepack_load_ocean_bio_array
96 :
97 : use icepack_atmo , only: icepack_atm_boundary
98 : use icepack_ocean, only: icepack_ocn_mixed_layer
99 :
100 : use icepack_orbital , only: icepack_init_orbit
101 : use icepack_orbital , only: icepack_query_orbit
102 :
103 : use icepack_therm_vertical, only: icepack_step_therm1
104 : use icepack_therm_itd , only: icepack_step_therm2
105 : use icepack_therm_shared , only: icepack_ice_temperature
106 : use icepack_therm_shared , only: icepack_snow_temperature
107 : use icepack_therm_shared , only: icepack_liquidus_temperature
108 : use icepack_therm_shared , only: icepack_sea_freezing_temperature
109 : use icepack_therm_shared , only: icepack_enthalpy_snow
110 : use icepack_therm_shared , only: icepack_init_thermo
111 : use icepack_therm_shared , only: icepack_init_trcr
112 :
113 : use icepack_mushy_physics , only: icepack_mushy_density_brine
114 : use icepack_mushy_physics , only: icepack_mushy_liquid_fraction
115 : use icepack_mushy_physics , only: icepack_mushy_temperature_mush
116 :
117 : use icepack_warnings, only: icepack_warnings_clear
118 : use icepack_warnings, only: icepack_warnings_print
119 : use icepack_warnings, only: icepack_warnings_flush
120 : use icepack_warnings, only: icepack_warnings_aborted
121 :
122 : !autodocument_end icepack_intfc.F90
123 :
124 : implicit none
125 :
126 : public
127 :
128 : public :: icepack_configure
129 :
130 : !=======================================================================
131 : contains
132 : !=======================================================================
133 :
134 : ! This subroutine should be called before any part of columnphysics
135 : ! is used.
136 :
137 42 : subroutine icepack_configure()
138 :
139 : use icepack_warnings, only: warnstr, icepack_warnings_add
140 : use icepack_warnings, only: icepack_warnings_setabort, icepack_warnings_aborted
141 :
142 : character(len=*),parameter :: subname='(icepack_configure)'
143 :
144 42 : call icepack_warnings_setabort(.false.,__FILE__,__LINE__)
145 42 : call icepack_recompute_constants()
146 42 : if (icepack_warnings_aborted(subname)) return
147 :
148 : end subroutine icepack_configure
149 :
150 : !=======================================================================
151 :
152 : end module icepack_intfc
153 :
154 : !=======================================================================
|