4 use time_manager_mod
, only : time_type
5 use coupler_types_mod
, only : coupler_2d_bc_type
9 implicit none ;
private 11 public generic_tracer_register
12 public generic_tracer_init
13 public generic_tracer_register_diag
14 public generic_tracer_source
15 public generic_tracer_update_from_bottom
16 public generic_tracer_coupler_get
17 public generic_tracer_coupler_set
18 public generic_tracer_end
19 public generic_tracer_get_list
20 public do_generic_tracer
21 public generic_tracer_vertdiff_g
22 public generic_tracer_get_diag_list
23 public generic_tracer_coupler_accumulate
26 logical :: do_generic_tracer = .true.
31 subroutine generic_tracer_register
32 end subroutine generic_tracer_register
35 subroutine generic_tracer_init(isc,iec,jsc,jec,isd,ied,jsd,jed,nk,ntau,axes,grid_tmask,grid_kmt,init_time)
36 integer,
intent(in) :: isc
37 integer,
intent(in) :: iec
38 integer,
intent(in) :: jsc
39 integer,
intent(in) :: jec
40 integer,
intent(in) :: isd
41 integer,
intent(in) :: ied
42 integer,
intent(in) :: jsd
43 integer,
intent(in) :: jed
44 integer,
intent(in) :: nk
45 integer,
intent(in) :: ntau
46 integer,
intent(in) :: axes(3)
47 type(time_type),
intent(in) :: init_time
48 real,
dimension(:,:,:),
target,
intent(in) :: grid_tmask
49 integer,
dimension(:,:) ,
intent(in) :: grid_kmt
50 end subroutine generic_tracer_init
53 subroutine generic_tracer_register_diag
54 end subroutine generic_tracer_register_diag
57 subroutine generic_tracer_coupler_get(IOB_struc)
58 type(coupler_2d_bc_type),
intent(in) :: IOB_struc
59 end subroutine generic_tracer_coupler_get
62 subroutine generic_tracer_coupler_accumulate(IOB_struc, weight, model_time)
63 type(coupler_2d_bc_type),
intent(in) :: IOB_struc
64 real,
intent(in) :: weight
65 type(time_type),
optional,
intent(in) :: model_time
66 end subroutine generic_tracer_coupler_accumulate
69 subroutine generic_tracer_source(Temp,Salt,rho_dzt,dzt,hblt_depth,ilb,jlb,tau,dtts,&
70 grid_dat,model_time,nbands,max_wavelength_band,sw_pen_band,opacity_band,internal_heat,&
71 frunoff,grid_ht, current_wave_stress, sosga)
72 real,
dimension(ilb:,jlb:,:),
intent(in) :: Temp
73 real,
dimension(ilb:,jlb:,:),
intent(in) :: Salt
74 real,
dimension(ilb:,jlb:,:),
intent(in) :: rho_dzt
75 real,
dimension(ilb:,jlb:,:),
intent(in) :: dzt
76 real,
dimension(ilb:,jlb:),
intent(in) :: hblt_depth
77 integer,
intent(in) :: ilb
78 integer,
intent(in) :: jlb
79 integer,
intent(in) :: tau
80 real,
intent(in) :: dtts
81 real,
dimension(ilb:,jlb:),
intent(in) :: grid_dat
82 type(time_type),
intent(in) :: model_time
83 integer,
intent(in) :: nbands
84 real,
dimension(:),
intent(in) :: max_wavelength_band
85 real,
dimension(:,ilb:,jlb:),
intent(in) :: sw_pen_band
86 real,
dimension(:,ilb:,jlb:,:),
intent(in) :: opacity_band
87 real,
dimension(ilb:,jlb:),
optional,
intent(in) :: internal_heat
88 real,
dimension(ilb:,jlb:),
optional,
intent(in) :: frunoff
89 real,
dimension(ilb:,jlb:),
optional,
intent(in) :: grid_ht
90 real,
dimension(ilb:,jlb:),
optional ,
intent(in) :: current_wave_stress
91 real,
optional ,
intent(in) :: sosga
92 end subroutine generic_tracer_source
95 subroutine generic_tracer_update_from_bottom(dt, tau, model_time)
96 real,
intent(in) :: dt
97 integer,
intent(in) :: tau
98 type(time_type),
intent(in) :: model_time
99 end subroutine generic_tracer_update_from_bottom
102 subroutine generic_tracer_vertdiff_g(h_old, ea, eb, dt, kg_m2_to_H, m_to_H, tau)
103 real,
dimension(:,:,:),
intent(in) :: h_old
104 real,
dimension(:,:,:),
intent(in) :: ea
105 real,
dimension(:,:,:),
intent(in) :: eb
106 real,
intent(in) :: dt
107 real,
intent(in) :: kg_m2_to_H
108 real,
intent(in) :: m_to_H
109 integer,
intent(in) :: tau
110 end subroutine generic_tracer_vertdiff_g
113 subroutine generic_tracer_coupler_set(IOB_struc, ST,SS,rho,ilb,jlb,tau, dzt, sosga,model_time)
114 type(coupler_2d_bc_type),
intent(inout) :: IOB_struc
115 integer,
intent(in) :: ilb
116 integer,
intent(in) :: jlb
117 integer,
intent(in) :: tau
118 real,
dimension(ilb:,jlb:),
intent(in) :: ST
119 real,
dimension(ilb:,jlb:),
intent(in) :: SS
120 real,
dimension(ilb:,jlb:,:,:),
intent(in) :: rho
121 real,
dimension(ilb:,jlb:,:),
optional,
intent(in) :: dzt
122 real,
optional,
intent(in) :: sosga
123 type(time_type),
optional,
intent(in) :: model_time
124 end subroutine generic_tracer_coupler_set
127 subroutine generic_tracer_end
128 end subroutine generic_tracer_end
131 subroutine generic_tracer_get_list(list)
133 end subroutine generic_tracer_get_list
136 subroutine generic_tracer_get_diag_list(list)
138 end subroutine generic_tracer_get_diag_list
g_tracer_utils module consists of core utility subroutines to be used by all generic tracer modules...
A non-functioning template of the GFDL ocean BGC.
Each generic tracer node is an instant of a FORTRAN type with the following member variables...