17
17
!
18
18
!- ---------------------------------------------------------------
19
19
20
- module generic_mlres
20
+ module generic_blres
21
21
22
22
use coupler_types_mod, only: coupler_2d_bc_type
23
23
use field_manager_mod, only: fm_string_len
@@ -36,26 +36,26 @@ module generic_mlres
36
36
37
37
implicit none ; private
38
38
39
- character (len= fm_string_len), parameter :: mod_name = ' generic_mlres '
40
- character (len= fm_string_len), parameter :: package_name = ' generic_mlres '
39
+ character (len= fm_string_len), parameter :: mod_name = ' generic_blres '
40
+ character (len= fm_string_len), parameter :: package_name = ' generic_blres '
41
41
42
- public do_generic_mlres
43
- public generic_mlres_register
44
- public generic_mlres_init
45
- public generic_mlres_update_from_coupler
46
- public generic_mlres_update_from_source
47
- public generic_mlres_set_boundary_values
48
- public generic_mlres_end
42
+ public do_generic_blres
43
+ public generic_blres_register
44
+ public generic_blres_init
45
+ public generic_blres_update_from_coupler
46
+ public generic_blres_update_from_source
47
+ public generic_blres_set_boundary_values
48
+ public generic_blres_end
49
49
50
50
! The following logical for using this module is overwritten
51
51
! by generic_tracer_nml namelist
52
- logical , save :: do_generic_mlres = .false.
52
+ logical , save :: do_generic_blres = .false.
53
53
54
54
real , parameter :: epsln= 1.0e-30
55
55
56
56
real :: reset_time= 1.0
57
57
58
- namelist / generic_mlres_nml / reset_time
58
+ namelist / generic_blres_nml / reset_time
59
59
!
60
60
! This type contains all the parameters and arrays used in this module.
61
61
!
@@ -64,18 +64,18 @@ module generic_mlres
64
64
! It suffices for varables to be a declared at the top of the module.
65
65
! nnz: Find out about the timing overhead for using type%x rather than x
66
66
67
- type generic_mlres_params
67
+ type generic_blres_params
68
68
real :: Rho_0
69
69
character (len= fm_string_len) :: ice_restart_file
70
70
character (len= fm_string_len) :: ocean_restart_file,IC_file
71
- end type generic_mlres_params
71
+ end type generic_blres_params
72
72
73
73
74
- type (generic_mlres_params ) :: param
74
+ type (generic_blres_params ) :: param
75
75
76
76
contains
77
77
78
- subroutine generic_mlres_register (tracer_list )
78
+ subroutine generic_blres_register (tracer_list )
79
79
type (g_tracer_type), pointer :: tracer_list
80
80
81
81
integer :: ioun
@@ -84,7 +84,7 @@ subroutine generic_mlres_register(tracer_list)
84
84
character (len= fm_string_len) :: name
85
85
integer :: stdoutunit,stdlogunit
86
86
87
- character (len= fm_string_len), parameter :: sub_name = ' generic_mlres_register '
87
+ character (len= fm_string_len), parameter :: sub_name = ' generic_blres_register '
88
88
89
89
! provide for namelist over-ride
90
90
! This needs to go before the add_tracers in order to allow the namelist
@@ -93,26 +93,26 @@ subroutine generic_mlres_register(tracer_list)
93
93
stdoutunit= stdout();stdlogunit= stdlog()
94
94
95
95
#ifdef INTERNAL_FILE_NML
96
- read (input_nml_file, nml= generic_mlres_nml , iostat= io_status)
97
- ierr = check_nml_error(io_status,' generic_mlres_nml ' )
96
+ read (input_nml_file, nml= generic_blres_nml , iostat= io_status)
97
+ ierr = check_nml_error(io_status,' generic_blres_nml ' )
98
98
#else
99
99
ioun = open_namelist_file()
100
100
read (ioun, generic_bling_nml,iostat= io_status)
101
- ierr = check_nml_error(io_status,' generic_mlres_nml ' )
101
+ ierr = check_nml_error(io_status,' generic_blres_nml ' )
102
102
call close_file (ioun)
103
103
#endif
104
104
105
105
write (stdoutunit,' (/)' )
106
- write (stdoutunit, generic_mlres_nml )
107
- write (stdlogunit, generic_mlres_nml )
106
+ write (stdoutunit, generic_blres_nml )
107
+ write (stdlogunit, generic_blres_nml )
108
108
109
109
! Specify all prognostic and diagnostic tracers of this modules.
110
110
call user_add_tracers(tracer_list)
111
111
112
112
113
- end subroutine generic_mlres_register
113
+ end subroutine generic_blres_register
114
114
115
- ! <SUBROUTINE NAME="generic_mlres_init ">
115
+ ! <SUBROUTINE NAME="generic_blres_init ">
116
116
! <OVERVIEW>
117
117
! Initialize the generic mixed layer residence tracer
118
118
! </OVERVIEW>
@@ -123,25 +123,25 @@ end subroutine generic_mlres_register
123
123
! Allocates all work arrays used in the module.
124
124
! </DESCRIPTION>
125
125
! <TEMPLATE>
126
- ! call generic_mlres_init (tracer_list)
126
+ ! call generic_blres_init (tracer_list)
127
127
! </TEMPLATE>
128
128
! <IN NAME="tracer_list" TYPE="type(g_tracer_type), pointer">
129
129
! Pointer to the head of generic tracer list.
130
130
! </IN>
131
131
! </SUBROUTINE>
132
132
133
- subroutine generic_mlres_init (tracer_list )
133
+ subroutine generic_blres_init (tracer_list )
134
134
type (g_tracer_type), pointer :: tracer_list
135
135
136
- character (len= fm_string_len), parameter :: sub_name = ' generic_mlres_init '
136
+ character (len= fm_string_len), parameter :: sub_name = ' generic_blres_init '
137
137
138
138
! Specify and initialize all parameters used by this package
139
139
call user_add_params
140
140
141
141
! Allocate and initiate all the private work arrays used by this module.
142
142
! call user_allocate_arrays
143
143
144
- end subroutine generic_mlres_init
144
+ end subroutine generic_blres_init
145
145
146
146
subroutine user_allocate_arrays
147
147
@@ -164,7 +164,7 @@ subroutine user_add_params
164
164
! Specify all parameters used in this modules.
165
165
! ==============================================================
166
166
! User adds one call for each parameter below!
167
- ! User also adds the definition of each parameter in generic_mlres_params type
167
+ ! User also adds the definition of each parameter in generic_blres_params type
168
168
! ==============================================================
169
169
170
170
! =============
@@ -199,8 +199,8 @@ subroutine user_add_tracers(tracer_list)
199
199
character (len= fm_string_len), parameter :: sub_name = ' user_add_tracers'
200
200
201
201
call g_tracer_start_param_list(package_name)! nnz: Does this append?
202
- call g_tracer_add_param(' ice_restart_file' , param% ice_restart_file , ' ice_ocmip_mlres .res.nc' )
203
- call g_tracer_add_param(' ocean_restart_file' , param% ocean_restart_file , ' ocmip_mlres .res.nc' )
202
+ call g_tracer_add_param(' ice_restart_file' , param% ice_restart_file , ' ice_ocmip_blres .res.nc' )
203
+ call g_tracer_add_param(' ocean_restart_file' , param% ocean_restart_file , ' ocmip_blres .res.nc' )
204
204
call g_tracer_add_param(' IC_file' , param% IC_file , ' ' )
205
205
call g_tracer_end_param_list(package_name)
206
206
@@ -216,19 +216,19 @@ subroutine user_add_tracers(tracer_list)
216
216
! and provide the corresponding parameters array
217
217
! methods: flux_gas,flux_runoff,flux_wetdep,flux_drydep
218
218
!
219
- ! prog_tracers: mlres
219
+ ! prog_tracers: blres
220
220
! diag_tracers: none
221
221
!
222
222
! age
223
223
call g_tracer_add(tracer_list,package_name, &
224
- name = ' mlres ' , &
224
+ name = ' blres ' , &
225
225
longname = ' residence time inside mixed layer' , &
226
226
units = ' years' , &
227
227
init_value = 0.0 , &
228
228
prog = .true. )
229
229
230
230
call g_tracer_add(tracer_list,package_name, &
231
- name = ' mlres_inv ' , &
231
+ name = ' blres_inv ' , &
232
232
longname = ' residence time outside mixed layer' , &
233
233
units = ' years' , &
234
234
init_value = 0.0 , &
@@ -237,7 +237,7 @@ subroutine user_add_tracers(tracer_list)
237
237
238
238
end subroutine user_add_tracers
239
239
240
- ! <SUBROUTINE NAME="generic_mlres_update_from_coupler ">
240
+ ! <SUBROUTINE NAME="generic_blres_update_from_coupler ">
241
241
! <OVERVIEW>
242
242
! Modify the values obtained from the coupler if necessary.
243
243
! </OVERVIEW>
@@ -247,30 +247,30 @@ end subroutine user_add_tracers
247
247
! This subroutine is the place for specific tracer manipulations.
248
248
! </DESCRIPTION>
249
249
! <TEMPLATE>
250
- ! call generic_mlres_update_from_coupler (tracer_list)
250
+ ! call generic_blres_update_from_coupler (tracer_list)
251
251
! </TEMPLATE>
252
252
! <IN NAME="tracer_list" TYPE="type(g_tracer_type), pointer">
253
253
! Pointer to the head of generic tracer list.
254
254
! </IN>
255
255
! </SUBROUTINE>
256
- subroutine generic_mlres_update_from_coupler (tracer_list )
256
+ subroutine generic_blres_update_from_coupler (tracer_list )
257
257
type (g_tracer_type), pointer :: tracer_list
258
- character (len= fm_string_len), parameter :: sub_name = ' generic_mlres_update_from_coupler '
258
+ character (len= fm_string_len), parameter :: sub_name = ' generic_blres_update_from_coupler '
259
259
!
260
260
! Nothing specific to be done for mixed layer residence tracers
261
261
!
262
262
return
263
- end subroutine generic_mlres_update_from_coupler
263
+ end subroutine generic_blres_update_from_coupler
264
264
265
- ! <SUBROUTINE NAME="generic_mlres_update_from_source ">
265
+ ! <SUBROUTINE NAME="generic_blres_update_from_source ">
266
266
! <OVERVIEW>
267
267
! Update tracer concentration fields due to the source/sink contributions.
268
268
! </OVERVIEW>
269
269
! <DESCRIPTION>
270
270
! Sets age to zero in uppermost level and increments it by the time step elsewhere
271
271
! </DESCRIPTION>
272
272
! </SUBROUTINE>
273
- subroutine generic_mlres_update_from_source ( tracer_list ,tau ,dt , &
273
+ subroutine generic_blres_update_from_source ( tracer_list ,tau ,dt , &
274
274
hblt_depth ,dzt ,ilb ,jlb )
275
275
276
276
type (g_tracer_type), pointer :: tracer_list
@@ -279,20 +279,20 @@ subroutine generic_mlres_update_from_source( tracer_list,tau,dt, &
279
279
real , dimension (ilb:,jlb:), intent (in ) :: hblt_depth
280
280
real , dimension (ilb:,jlb:,:), intent (in ) :: dzt
281
281
282
- character (len= fm_string_len), parameter :: sub_name = ' generic_mlres_update_from_source '
282
+ character (len= fm_string_len), parameter :: sub_name = ' generic_blres_update_from_source '
283
283
integer :: isc,iec,jsc,jec,isd,ied,jsd,jed,nk,ntau,i,j,k
284
284
real , parameter :: secs_in_year_r = 1.0 / (86400.0 * 365.25 )
285
285
real , dimension (:,:,:) , pointer :: grid_tmask
286
- real , dimension (:,:,:,:), pointer :: p_mlres_field, p_mlres_inv_field
286
+ real , dimension (:,:,:,:), pointer :: p_blres_field, p_blres_inv_field
287
287
288
288
real , dimension (:,:,:), allocatable :: zt
289
289
290
290
call g_tracer_get_common(isc,iec,jsc,jec,isd,ied,jsd,jed,nk,ntau,grid_tmask= grid_tmask)
291
291
292
292
allocate ( zt(isd:ied,jsd:jed,nk) ); zt= 0.0
293
293
294
- call g_tracer_get_pointer(tracer_list, ' mlres ' , ' field' , p_mlres_field )
295
- call g_tracer_get_pointer(tracer_list, ' mlres_inv ' , ' field' , p_mlres_inv_field )
294
+ call g_tracer_get_pointer(tracer_list, ' blres ' , ' field' , p_blres_field )
295
+ call g_tracer_get_pointer(tracer_list, ' blres_inv ' , ' field' , p_blres_inv_field )
296
296
297
297
! Compute depth of the bottom of the cell
298
298
zt = 0.0
@@ -306,34 +306,34 @@ subroutine generic_mlres_update_from_source( tracer_list,tau,dt, &
306
306
do k = 1 , nk; do j = jsc, jec ; do i = isc, iec
307
307
308
308
if (zt(i,j,k) .le. hblt_depth(i,j) ) then
309
- ! if ( p_mlres_inv_field (i,j,k,tau) .gt. 1 ) then
310
- if ( p_mlres_inv_field (i,j,k,tau) .gt. reset_time ) then
309
+ ! if ( p_blres_inv_field (i,j,k,tau) .gt. 1 ) then
310
+ if ( p_blres_inv_field (i,j,k,tau) .gt. reset_time ) then
311
311
! Reset tracers
312
- p_mlres_field (i,j,k,tau) = 0.0
313
- p_mlres_inv_field (i,j,k,tau) = 0.0
312
+ p_blres_field (i,j,k,tau) = 0.0
313
+ p_blres_inv_field (i,j,k,tau) = 0.0
314
314
else
315
- p_mlres_field (i,j,k,tau) = p_mlres_field (i,j,k,tau) + dt* secs_in_year_r* grid_tmask(i,j,k)
315
+ p_blres_field (i,j,k,tau) = p_blres_field (i,j,k,tau) + dt* secs_in_year_r* grid_tmask(i,j,k)
316
316
endif
317
317
else
318
- p_mlres_inv_field (i,j,k,tau) = p_mlres_inv_field (i,j,k,tau) + dt* secs_in_year_r* grid_tmask(i,j,k)
318
+ p_blres_inv_field (i,j,k,tau) = p_blres_inv_field (i,j,k,tau) + dt* secs_in_year_r* grid_tmask(i,j,k)
319
319
endif
320
320
321
321
enddo ; enddo ; enddo ! } i,j,k
322
322
323
323
deallocate (zt)
324
324
325
325
return
326
- end subroutine generic_mlres_update_from_source
326
+ end subroutine generic_blres_update_from_source
327
327
328
- ! <SUBROUTINE NAME="generic_mlres_set_boundary_values ">
328
+ ! <SUBROUTINE NAME="generic_blres_set_boundary_values ">
329
329
! <OVERVIEW>
330
330
! Calculate and set coupler values at the surface / bottom
331
331
! </OVERVIEW>
332
332
! <DESCRIPTION>
333
333
!
334
334
! </DESCRIPTION>
335
335
! <TEMPLATE>
336
- ! call generic_mlres_set_boundary_values (tracer_list,SST,SSS,rho,ilb,jlb,tau)
336
+ ! call generic_blres_set_boundary_values (tracer_list,SST,SSS,rho,ilb,jlb,tau)
337
337
! </TEMPLATE>
338
338
! <IN NAME="tracer_list" TYPE="type(g_tracer_type), pointer">
339
339
! Pointer to the head of generic tracer list.
@@ -356,7 +356,7 @@ end subroutine generic_mlres_update_from_source
356
356
! </SUBROUTINE>
357
357
358
358
! User must provide the calculations for these boundary values.
359
- subroutine generic_mlres_set_boundary_values (tracer_list ,ST ,SSS ,rho ,ilb ,jlb ,taum1 )
359
+ subroutine generic_blres_set_boundary_values (tracer_list ,ST ,SSS ,rho ,ilb ,jlb ,taum1 )
360
360
type (g_tracer_type), pointer :: tracer_list
361
361
real , dimension (ilb:,jlb:), intent (in ) :: ST, SSS
362
362
real , dimension (ilb:,jlb:,:,:), intent (in ) :: rho
@@ -365,31 +365,31 @@ subroutine generic_mlres_set_boundary_values(tracer_list,ST,SSS,rho,ilb,jlb,taum
365
365
integer :: isc,iec, jsc,jec,isd,ied,jsd,jed,nk,ntau , i, j
366
366
real :: conv_fac,sal,ta,SST,alpha,sc
367
367
real , dimension (:,:,:) ,pointer :: grid_tmask
368
- real , dimension (:,:,:,:), pointer :: g_mlres_field
369
- real , dimension (:,:), ALLOCATABLE :: g_mlres_alpha,g_mlres_csurf
368
+ real , dimension (:,:,:,:), pointer :: g_blres_field
369
+ real , dimension (:,:), ALLOCATABLE :: g_blres_alpha,g_blres_csurf
370
370
real , dimension (:,:), ALLOCATABLE :: sc_no
371
371
372
- character (len= fm_string_len), parameter :: sub_name = ' generic_mlres_set_boundary_values '
372
+ character (len= fm_string_len), parameter :: sub_name = ' generic_blres_set_boundary_values '
373
373
374
374
return
375
- end subroutine generic_mlres_set_boundary_values
375
+ end subroutine generic_blres_set_boundary_values
376
376
377
- ! <SUBROUTINE NAME="generic_mlres_end ">
377
+ ! <SUBROUTINE NAME="generic_blres_end ">
378
378
! <OVERVIEW>
379
379
! End the module.
380
380
! </OVERVIEW>
381
381
! <DESCRIPTION>
382
382
! Deallocate all work arrays
383
383
! </DESCRIPTION>
384
384
! <TEMPLATE>
385
- ! call generic_mlres_end
385
+ ! call generic_blres_end
386
386
! </TEMPLATE>
387
387
! </SUBROUTINE>
388
388
389
- subroutine generic_mlres_end
390
- character (len= fm_string_len), parameter :: sub_name = ' generic_mlres_end '
389
+ subroutine generic_blres_end
390
+ character (len= fm_string_len), parameter :: sub_name = ' generic_blres_end '
391
391
! call user_deallocate_arrays
392
392
393
- end subroutine generic_mlres_end
393
+ end subroutine generic_blres_end
394
394
395
- end module generic_mlres
395
+ end module generic_blres
0 commit comments