Line data Source code
1 : !=======================================================================
2 : ! Copyright (c) 2024, Triad National Security, LLC
3 : ! All rights reserved.
4 : !
5 : ! Copyright 2024. 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_salinity
116 : use icepack_therm_shared , only: icepack_salinity_profile
117 : use icepack_therm_shared , only: icepack_init_enthalpy
118 : ! for backwards compatibilty, remove in the future
119 : use icepack_therm_shared , only: icepack_init_thermo => icepack_init_salinity
120 : use icepack_therm_shared , only: icepack_init_trcr => icepack_init_enthalpy
121 :
122 : use icepack_mushy_physics , only: icepack_enthalpy_snow
123 : use icepack_mushy_physics , only: icepack_enthalpy_mush
124 : use icepack_mushy_physics , only: icepack_mushy_density_brine
125 : use icepack_mushy_physics , only: icepack_mushy_liquid_fraction
126 : use icepack_mushy_physics , only: icepack_mushy_temperature_mush
127 :
128 : use icepack_warnings, only: icepack_warnings_clear
129 : use icepack_warnings, only: icepack_warnings_print
130 : use icepack_warnings, only: icepack_warnings_flush
131 : use icepack_warnings, only: icepack_warnings_aborted
132 : use icepack_warnings, only: icepack_warnings_getall
133 :
134 : !autodocument_end icepack_intfc.F90
135 :
136 : implicit none
137 :
138 : public
139 :
140 : public :: icepack_configure
141 :
142 : !=======================================================================
143 : contains
144 : !=======================================================================
145 :
146 : ! This subroutine should be called before any part of columnphysics
147 : ! is used.
148 :
149 4222 : subroutine icepack_configure()
150 :
151 : use icepack_warnings, only: warnstr, icepack_warnings_add
152 : use icepack_warnings, only: icepack_warnings_setabort, icepack_warnings_aborted
153 :
154 : character(len=*),parameter :: subname='(icepack_configure)'
155 :
156 4222 : call icepack_warnings_setabort(.false.,__FILE__,__LINE__)
157 4222 : call icepack_recompute_constants()
158 4222 : if (icepack_warnings_aborted(subname)) return
159 :
160 : end subroutine icepack_configure
161 :
162 : !=======================================================================
163 :
164 : end module icepack_intfc
165 :
166 : !=======================================================================
|