Line data Source code
1 : !=======================================================================
2 : ! Copyright (c) 2023, Triad National Security, LLC
3 : ! All rights reserved.
4 : !
5 : ! Copyright 2023. 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 :
49 : use icepack_shortwave_data, only: icepack_nspint_3bd => nspint_3bd
50 : use icepack_shortwave_data, only: icepack_nspint_5bd => nspint_5bd
51 :
52 : use icepack_parameters, only: icepack_init_parameters
53 : use icepack_parameters, only: icepack_query_parameters
54 : use icepack_parameters, only: icepack_write_parameters
55 : use icepack_parameters, only: icepack_recompute_constants
56 : use icepack_parameters, only: secday, spval_const
57 : use icepack_parameters, only: c0, c1, c1p5, c2, c3, c4, c5, c6, c8
58 : use icepack_parameters, only: c10, c15, c16, c20, c25, c100, c1000
59 : use icepack_parameters, only: p001, p01, p1, p2, p4, p5, p6, p05
60 : use icepack_parameters, only: p15, p25, p75, p333, p666
61 :
62 : use icepack_tracers, only: icepack_compute_tracers
63 : use icepack_tracers, only: icepack_init_tracer_flags
64 : use icepack_tracers, only: icepack_query_tracer_flags
65 : use icepack_tracers, only: icepack_write_tracer_flags
66 : use icepack_tracers, only: icepack_init_tracer_indices
67 : use icepack_tracers, only: icepack_query_tracer_indices
68 : use icepack_tracers, only: icepack_write_tracer_indices
69 : use icepack_tracers, only: icepack_init_tracer_sizes
70 : use icepack_tracers, only: icepack_query_tracer_sizes
71 : use icepack_tracers, only: icepack_write_tracer_sizes
72 :
73 : use icepack_itd, only: icepack_init_itd
74 : use icepack_itd, only: icepack_init_itd_hist
75 : use icepack_itd, only: icepack_aggregate
76 :
77 : use icepack_fsd, only: icepack_init_fsd_bounds
78 : use icepack_fsd, only: icepack_init_fsd
79 : use icepack_fsd, only: icepack_cleanup_fsd
80 :
81 : use icepack_mechred, only: icepack_step_ridge
82 : use icepack_mechred, only: icepack_ice_strength
83 :
84 : use icepack_wavefracspec, only: icepack_init_wave
85 : use icepack_wavefracspec, only: icepack_step_wavefracture
86 :
87 : use icepack_snow, only: icepack_init_snow
88 : use icepack_snow, only: icepack_step_snow
89 :
90 : use icepack_shortwave, only: icepack_init_radiation
91 : use icepack_shortwave, only: icepack_prep_radiation
92 : use icepack_shortwave, only: icepack_step_radiation
93 :
94 : use icepack_brine, only: icepack_init_hbrine
95 : use icepack_brine, only: icepack_init_zsalinity ! deprecated
96 :
97 : use icepack_zbgc , only: icepack_init_bgc
98 : use icepack_zbgc , only: icepack_init_zbgc
99 : use icepack_zbgc , only: icepack_biogeochemistry
100 : use icepack_zbgc , only: icepack_init_ocean_bio
101 : use icepack_zbgc , only: icepack_load_ocean_bio_array
102 :
103 : use icepack_atmo , only: icepack_atm_boundary
104 : use icepack_ocean, only: icepack_ocn_mixed_layer
105 :
106 : use icepack_orbital , only: icepack_init_orbit
107 : use icepack_orbital , only: icepack_query_orbit
108 :
109 : use icepack_therm_vertical, only: icepack_step_therm1
110 : use icepack_therm_itd , only: icepack_step_therm2
111 : use icepack_therm_shared , only: icepack_ice_temperature
112 : use icepack_therm_shared , only: icepack_snow_temperature
113 : use icepack_therm_shared , only: icepack_liquidus_temperature
114 : use icepack_therm_shared , only: icepack_sea_freezing_temperature
115 : use icepack_therm_shared , only: icepack_init_thermo
116 : use icepack_therm_shared , only: icepack_salinity_profile
117 : use icepack_therm_shared , only: icepack_init_trcr
118 :
119 : use icepack_mushy_physics , only: icepack_enthalpy_snow
120 : use icepack_mushy_physics , only: icepack_enthalpy_mush
121 : use icepack_mushy_physics , only: icepack_mushy_density_brine
122 : use icepack_mushy_physics , only: icepack_mushy_liquid_fraction
123 : use icepack_mushy_physics , only: icepack_mushy_temperature_mush
124 :
125 : use icepack_warnings, only: icepack_warnings_clear
126 : use icepack_warnings, only: icepack_warnings_print
127 : use icepack_warnings, only: icepack_warnings_flush
128 : use icepack_warnings, only: icepack_warnings_aborted
129 : use icepack_warnings, only: icepack_warnings_getall
130 :
131 : !autodocument_end icepack_intfc.F90
132 :
133 : implicit none
134 :
135 : public
136 :
137 : public :: icepack_configure
138 :
139 : !=======================================================================
140 : contains
141 : !=======================================================================
142 :
143 : ! This subroutine should be called before any part of columnphysics
144 : ! is used.
145 :
146 37 : subroutine icepack_configure()
147 :
148 : use icepack_warnings, only: warnstr, icepack_warnings_add
149 : use icepack_warnings, only: icepack_warnings_setabort, icepack_warnings_aborted
150 :
151 : character(len=*),parameter :: subname='(icepack_configure)'
152 :
153 37 : call icepack_warnings_setabort(.false.,__FILE__,__LINE__)
154 37 : call icepack_recompute_constants()
155 37 : if (icepack_warnings_aborted(subname)) return
156 :
157 : end subroutine icepack_configure
158 :
159 : !=======================================================================
160 :
161 : end module icepack_intfc
162 :
163 : !=======================================================================
|