18 implicit none ;
private
20 #include <MOM_memory.h>
22 public dyed_obcs_set_obc_data
30 subroutine dyed_obcs_set_obc_data(OBC, G, GV, param_file, tr_Reg)
40 character(len=40) :: mdl =
"dyed_obcs_set_OBC_data"
41 character(len=80) :: name, longname
42 integer :: i, j, k, itt, is, ie, js, je, isd, ied, jsd, jed, m, n, nz
43 integer :: isdb, iedb, jsdb, jedb
48 is = g%isc ; ie = g%iec ; js = g%jsc ; je = g%jec ; nz = g%ke
49 isd = g%isd ; ied = g%ied ; jsd = g%jsd ; jed = g%jed
50 isdb = g%IsdB ; iedb = g%IedB ; jsdb = g%JsdB ; jedb = g%JedB
52 if (.not.
associated(obc))
return
54 call get_param(param_file, mdl,
"NUM_DYE_TRACERS", ntr, &
55 "The number of dye tracers in this run. Each tracer "//&
56 "should have a separate boundary segment.", default=0, &
59 if (obc%number_of_segments < ntr)
then
60 call mom_error(warning,
"Error in dyed_obc segment setup")
67 write(name,
'("dye_",I2.2)') m
68 write(longname,
'("Concentration of dyed_obc Tracer ",I2.2, " on segment ",I2.2)') m, m
69 call tracer_name_lookup(tr_reg, tr_ptr, name)
71 do n=1,obc%number_of_segments
77 call register_segment_tracer(tr_ptr, param_file, gv, &
78 obc%segment(n), obc_scalar=dye)
82 end subroutine dyed_obcs_set_obc_data