SCALE-RM
Functions/Subroutines | Variables
mod_ocean_vars Module Reference

module OCEAN Variables More...

Functions/Subroutines

subroutine, public ocean_vars_setup
 Setup. More...
 
subroutine, public ocean_vars_restart_open
 Open ocean restart file for read. More...
 
subroutine, public ocean_vars_restart_read
 Read ocean restart. More...
 
subroutine, public ocean_vars_history
 History output set for ocean variables. More...
 
subroutine, public ocean_vars_total
 Budget monitor for ocean. More...
 
subroutine, public ocean_vars_external_in (OCEAN_TEMP_in, OCEAN_SFC_TEMP_in, OCEAN_SFC_albedo_in, OCEAN_SFC_Z0M_in, OCEAN_SFC_Z0H_in, OCEAN_SFC_Z0E_in)
 Input from External I/O. More...
 
subroutine, public ocean_vars_restart_create
 Create ocean restart file. More...
 
subroutine, public ocean_vars_restart_enddef
 Exit netCDF define mode. More...
 
subroutine, public ocean_vars_restart_close
 Close restart file. More...
 
subroutine, public ocean_vars_restart_def_var
 Define ocean variables in restart file. More...
 
subroutine, public ocean_vars_restart_write
 Write ocean variables to restart file. More...
 

Variables

logical, public ocean_restart_output = .false.
 Output restart file? More...
 
character(len=h_long), public ocean_restart_in_basename = ''
 Basename of the input file. More...
 
logical, public ocean_restart_in_postfix_timelabel = .false.
 Add timelabel to the basename of input file? More...
 
character(len=h_long), public ocean_restart_out_basename = ''
 Basename of the output file. More...
 
logical, public ocean_restart_out_postfix_timelabel = .true.
 Add timelabel to the basename of output file? More...
 
character(len=h_mid), public ocean_restart_out_title = 'OCEAN restart'
 Title of the output file. More...
 
character(len=h_short), public ocean_restart_out_dtype = 'DEFAULT'
 REAL4 or REAL8. More...
 
real(rp), dimension(:,:), allocatable, public ocean_temp
 temperature at uppermost ocean layer [K] More...
 
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp
 ocean surface skin temperature [K] More...
 
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo
 ocean surface albedo (0-1) More...
 
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m
 ocean surface roughness length for momentum [m] More...
 
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h
 ocean surface roughness length for heat [m] More...
 
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e
 ocean surface roughness length for vapor [m] More...
 
real(rp), dimension(:,:), allocatable, public ocean_temp_t
 tendency of OCEAN_TEMP More...
 
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp_t
 tendency of OCEAN_SFC_TEMP More...
 
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo_t
 tendency of OCEAN_SFC_alebdo More...
 
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m_t
 tendency of OCEAN_SFC_Z0M More...
 
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h_t
 tendency of OCEAN_SFC_Z0H More...
 
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e_t
 tendency of OCEAN_SFC_Z0E More...
 
real(rp), dimension(:,:), allocatable, public ocean_sflx_mw
 ocean surface w-momentum flux [kg/m2/s] More...
 
real(rp), dimension(:,:), allocatable, public ocean_sflx_mu
 ocean surface u-momentum flux [kg/m2/s] More...
 
real(rp), dimension(:,:), allocatable, public ocean_sflx_mv
 ocean surface v-momentum flux [kg/m2/s] More...
 
real(rp), dimension(:,:), allocatable, public ocean_sflx_sh
 ocean surface sensible heat flux [J/m2/s] More...
 
real(rp), dimension(:,:), allocatable, public ocean_sflx_lh
 ocean surface latent heat flux [J/m2/s] More...
 
real(rp), dimension(:,:), allocatable, public ocean_sflx_wh
 ocean surface water heat flux [J/m2/s] More...
 
real(rp), dimension(:,:), allocatable, public ocean_sflx_evap
 ocean surface water vapor flux [kg/m2/s] More...
 
real(rp), dimension(:,:), allocatable, public ocean_u10
 ocean surface velocity u at 10m [m/s] More...
 
real(rp), dimension(:,:), allocatable, public ocean_v10
 ocean surface velocity v at 10m [m/s] More...
 
real(rp), dimension(:,:), allocatable, public ocean_t2
 ocean surface temperature at 2m [K] More...
 
real(rp), dimension(:,:), allocatable, public ocean_q2
 ocean surface water vapor at 2m [kg/kg] More...
 
real(rp), dimension(:,:), allocatable, public atmos_temp
 
real(rp), dimension(:,:), allocatable, public atmos_pres
 
real(rp), dimension(:,:), allocatable, public atmos_w
 
real(rp), dimension(:,:), allocatable, public atmos_u
 
real(rp), dimension(:,:), allocatable, public atmos_v
 
real(rp), dimension(:,:), allocatable, public atmos_dens
 
real(rp), dimension(:,:), allocatable, public atmos_qv
 
real(rp), dimension(:,:), allocatable, public atmos_pbl
 
real(rp), dimension(:,:), allocatable, public atmos_sfc_pres
 
real(rp), dimension(:,:), allocatable, public atmos_sflx_lw
 
real(rp), dimension(:,:), allocatable, public atmos_sflx_sw
 
real(rp), dimension(:,:), allocatable, public atmos_cossza
 
real(rp), dimension(:,:), allocatable, public atmos_sflx_prec
 

Detailed Description

module OCEAN Variables

Description
Container for ocean variables
Author
Team SCALE
  • 2013-08-31 (T.Yamaura) [new]
NAMELIST
  • PARAM_OCEAN_VARS
    nametypedefault valuecomment
    OCEAN_RESTART_IN_BASENAME character(len=H_LONG) '' Basename of the input file
    OCEAN_RESTART_IN_POSTFIX_TIMELABEL logical .false. Add timelabel to the basename of input file?
    OCEAN_RESTART_IN_CHECK_COORDINATES logical .true.
    OCEAN_RESTART_OUTPUT logical .false. Output restart file?
    OCEAN_RESTART_OUT_BASENAME character(len=H_LONG) '' Basename of the output file
    OCEAN_RESTART_OUT_POSTFIX_TIMELABEL logical .true. Add timelabel to the basename of output file?
    OCEAN_RESTART_OUT_TITLE character(len=H_MID) 'OCEAN restart' Title of the output file
    OCEAN_RESTART_OUT_DTYPE character(len=H_SHORT) 'DEFAULT' REAL4 or REAL8
    OCEAN_VARS_CHECKRANGE logical .false.

History Output
namedescriptionunitvariable
OCEAN_ALB_LW ocean surface albedo (longwave) 1 OCEAN_SFC_albedo
OCEAN_ALB_SW ocean surface albedo (shortwave) 1 OCEAN_SFC_albedo
OCEAN_SFC_TEMP ocean surface skin temperature K OCEAN_SFC_TEMP
OCEAN_SFC_Z0E ocean surface roughness length (vapor) m OCEAN_SFC_Z0E
OCEAN_SFC_Z0H ocean surface roughness length (heat) m OCEAN_SFC_Z0H
OCEAN_SFC_Z0M ocean surface roughness length (momentum) m OCEAN_SFC_Z0M
OCEAN_SFLX_LH ocean surface latent heat flux J/m2/s OCEAN_SFLX_LH
OCEAN_SFLX_MU ocean surface u-momentum flux kg/m2/s OCEAN_SFLX_MU
OCEAN_SFLX_MV ocean surface v-momentum flux kg/m2/s OCEAN_SFLX_MV
OCEAN_SFLX_MW ocean surface w-momentum flux kg/m2/s OCEAN_SFLX_MW
OCEAN_SFLX_SH ocean surface sensible heat flux J/m2/s OCEAN_SFLX_SH
OCEAN_SFLX_WH ocean surface water heat flux J/m2/s OCEAN_SFLX_WH
OCEAN_SFLX_evap ocean surface water vapor flux kg/m2/s OCEAN_SFLX_evap
OCEAN_TEMP temperature at uppermost ocean layer K OCEAN_TEMP

Function/Subroutine Documentation

◆ ocean_vars_setup()

subroutine, public mod_ocean_vars::ocean_vars_setup ( )

Setup.

Definition at line 186 of file mod_ocean_vars.f90.

References atmos_cossza, atmos_dens, atmos_pbl, atmos_pres, atmos_qv, atmos_sfc_pres, atmos_sflx_lw, atmos_sflx_prec, atmos_sflx_sw, atmos_temp, atmos_u, atmos_v, atmos_w, scale_const::const_undef, scale_grid_index::ia, scale_stdio::io_fid_conf, scale_stdio::io_fid_log, scale_stdio::io_fid_nml, scale_stdio::io_l, scale_stdio::io_nml, scale_grid_index::ja, ocean_q2, ocean_restart_in_basename, ocean_restart_in_postfix_timelabel, ocean_restart_out_basename, ocean_restart_out_dtype, ocean_restart_out_postfix_timelabel, ocean_restart_out_title, ocean_restart_output, ocean_sfc_albedo, ocean_sfc_albedo_t, ocean_sfc_temp, ocean_sfc_temp_t, ocean_sfc_z0e, ocean_sfc_z0e_t, ocean_sfc_z0h, ocean_sfc_z0h_t, ocean_sfc_z0m, ocean_sfc_z0m_t, ocean_sflx_evap, ocean_sflx_lh, ocean_sflx_mu, ocean_sflx_mv, ocean_sflx_mw, ocean_sflx_sh, ocean_sflx_wh, ocean_t2, ocean_temp, ocean_temp_t, ocean_u10, ocean_v10, and scale_process::prc_mpistop().

Referenced by mod_rm_driver::scalerm(), and mod_rm_prep::scalerm_prep().

186  use scale_process, only: &
188  use scale_const, only: &
189  undef => const_undef
190  implicit none
191 
192  namelist / param_ocean_vars / &
193  ocean_restart_in_basename, &
194  ocean_restart_in_postfix_timelabel, &
195  ocean_restart_in_check_coordinates, &
196  ocean_restart_output, &
197  ocean_restart_out_basename, &
198  ocean_restart_out_postfix_timelabel, &
199  ocean_restart_out_title, &
200  ocean_restart_out_dtype, &
201  ocean_vars_checkrange
202 
203  integer :: ierr
204  integer :: iv
205  !---------------------------------------------------------------------------
206 
207  if( io_l ) write(io_fid_log,*)
208  if( io_l ) write(io_fid_log,*) '++++++ Module[VARS] / Categ[OCEAN] / Origin[SCALE-RM]'
209 
210  allocate( ocean_temp(ia,ja) )
211  allocate( ocean_sfc_temp(ia,ja) )
212  allocate( ocean_sfc_albedo(ia,ja,2) )
213  allocate( ocean_sfc_z0m(ia,ja) )
214  allocate( ocean_sfc_z0h(ia,ja) )
215  allocate( ocean_sfc_z0e(ia,ja) )
216  ocean_temp(:,:) = undef
217  ocean_sfc_temp(:,:) = undef
218  ocean_sfc_albedo(:,:,:) = undef
219  ocean_sfc_z0m(:,:) = undef
220  ocean_sfc_z0h(:,:) = undef
221  ocean_sfc_z0e(:,:) = undef
222 
223  allocate( ocean_temp_t(ia,ja) )
224  allocate( ocean_sfc_temp_t(ia,ja) )
225  allocate( ocean_sfc_albedo_t(ia,ja,2) )
226  allocate( ocean_sfc_z0m_t(ia,ja) )
227  allocate( ocean_sfc_z0h_t(ia,ja) )
228  allocate( ocean_sfc_z0e_t(ia,ja) )
229  ocean_temp_t(:,:) = undef
230  ocean_sfc_temp_t(:,:) = undef
231  ocean_sfc_albedo_t(:,:,:) = undef
232  ocean_sfc_z0m_t(:,:) = undef
233  ocean_sfc_z0h_t(:,:) = undef
234  ocean_sfc_z0e_t(:,:) = undef
235 
236  allocate( ocean_sflx_mw(ia,ja) )
237  allocate( ocean_sflx_mu(ia,ja) )
238  allocate( ocean_sflx_mv(ia,ja) )
239  allocate( ocean_sflx_sh(ia,ja) )
240  allocate( ocean_sflx_lh(ia,ja) )
241  allocate( ocean_sflx_wh(ia,ja) )
242  allocate( ocean_sflx_evap(ia,ja) )
243  ocean_sflx_mw(:,:) = undef
244  ocean_sflx_mu(:,:) = undef
245  ocean_sflx_mv(:,:) = undef
246  ocean_sflx_sh(:,:) = undef
247  ocean_sflx_lh(:,:) = undef
248  ocean_sflx_wh(:,:) = undef
249  ocean_sflx_evap(:,:) = undef
250 
251  allocate( ocean_u10(ia,ja) )
252  allocate( ocean_v10(ia,ja) )
253  allocate( ocean_t2(ia,ja) )
254  allocate( ocean_q2(ia,ja) )
255  ocean_u10(:,:) = undef
256  ocean_v10(:,:) = undef
257  ocean_t2(:,:) = undef
258  ocean_q2(:,:) = undef
259 
260  allocate( atmos_temp(ia,ja) )
261  allocate( atmos_pres(ia,ja) )
262  allocate( atmos_w(ia,ja) )
263  allocate( atmos_u(ia,ja) )
264  allocate( atmos_v(ia,ja) )
265  allocate( atmos_dens(ia,ja) )
266  allocate( atmos_qv(ia,ja) )
267  allocate( atmos_pbl(ia,ja) )
268  allocate( atmos_sfc_pres(ia,ja) )
269  allocate( atmos_sflx_lw(ia,ja) )
270  allocate( atmos_sflx_sw(ia,ja) )
271  allocate( atmos_cossza(ia,ja) )
272  allocate( atmos_sflx_prec(ia,ja) )
273  atmos_temp(:,:) = undef
274  atmos_pres(:,:) = undef
275  atmos_w(:,:) = undef
276  atmos_u(:,:) = undef
277  atmos_v(:,:) = undef
278  atmos_dens(:,:) = undef
279  atmos_qv(:,:) = undef
280  atmos_pbl(:,:) = undef
281  atmos_sfc_pres(:,:) = undef
282  atmos_sflx_lw(:,:) = undef
283  atmos_sflx_sw(:,:) = undef
284  atmos_cossza(:,:) = undef
285  atmos_sflx_prec(:,:) = undef
286 
287  !--- read namelist
288  rewind(io_fid_conf)
289  read(io_fid_conf,nml=param_ocean_vars,iostat=ierr)
290  if( ierr < 0 ) then !--- missing
291  if( io_l ) write(io_fid_log,*) '*** Not found namelist. Default used.'
292  elseif( ierr > 0 ) then !--- fatal error
293  write(*,*) 'xxx Not appropriate names in namelist PARAM_OCEAN_VARS. Check!'
294  call prc_mpistop
295  endif
296  if( io_nml ) write(io_fid_nml,nml=param_ocean_vars)
297 
298  if( io_l ) write(io_fid_log,*)
299  if( io_l ) write(io_fid_log,*) '*** List of prognostic variables (OCEAN) ***'
300  if( io_l ) write(io_fid_log,'(1x,A,A24,A,A48,A,A12,A)') &
301  '*** |', 'VARNAME ','|', &
302  'DESCRIPTION ', '[', 'UNIT ', ']'
303  do iv = 1, vmax
304  if( io_l ) write(io_fid_log,'(1x,A,I3,A,A24,A,A48,A,A12,A)') &
305  '*** NO.',iv,'|',var_name(iv),'|',var_desc(iv),'[',var_unit(iv),']'
306 
307  enddo
308 
309  if( io_l ) write(io_fid_log,*)
310  if ( ocean_restart_in_basename /= '' ) then
311  if( io_l ) write(io_fid_log,*) '*** Restart input? : YES, file = ', trim(ocean_restart_in_basename)
312  if( io_l ) write(io_fid_log,*) '*** Add timelabel? : ', ocean_restart_in_postfix_timelabel
313  else
314  if( io_l ) write(io_fid_log,*) '*** Restart input? : NO'
315  endif
316  if ( ocean_restart_output &
317  .AND. ocean_restart_out_basename /= '' ) then
318  if( io_l ) write(io_fid_log,*) '*** Restart output? : YES, file = ', trim(ocean_restart_out_basename)
319  if( io_l ) write(io_fid_log,*) '*** Add timelabel? : ', ocean_restart_out_postfix_timelabel
320  else
321  if( io_l ) write(io_fid_log,*) '*** Restart output? : NO'
322  ocean_restart_output = .false.
323  endif
324 
325  return
real(rp), dimension(:,:), allocatable, public ocean_v10
ocean surface velocity v at 10m [m/s]
real(rp), dimension(:,:), allocatable, public atmos_w
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp_t
tendency of OCEAN_SFC_TEMP
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e_t
tendency of OCEAN_SFC_Z0E
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo
ocean surface albedo (0-1)
real(rp), dimension(:,:), allocatable, public atmos_dens
subroutine, public prc_mpistop
Abort MPI.
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo_t
tendency of OCEAN_SFC_alebdo
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e
ocean surface roughness length for vapor [m]
real(rp), dimension(:,:), allocatable, public ocean_temp
temperature at uppermost ocean layer [K]
real(rp), dimension(:,:), allocatable, public atmos_v
real(rp), dimension(:,:), allocatable, public ocean_sflx_wh
ocean surface water heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public atmos_sflx_lw
real(rp), dimension(:,:), allocatable, public ocean_temp_t
tendency of OCEAN_TEMP
real(rp), public const_undef
Definition: scale_const.F90:43
real(rp), dimension(:,:), allocatable, public atmos_cossza
real(rp), dimension(:,:), allocatable, public ocean_sflx_mv
ocean surface v-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public atmos_sfc_pres
real(rp), dimension(:,:), allocatable, public atmos_qv
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h_t
tendency of OCEAN_SFC_Z0H
module PROCESS
real(rp), dimension(:,:), allocatable, public atmos_sflx_prec
real(rp), dimension(:,:), allocatable, public atmos_temp
real(rp), dimension(:,:), allocatable, public ocean_sflx_mw
ocean surface w-momentum flux [kg/m2/s]
module CONSTANT
Definition: scale_const.F90:14
real(rp), dimension(:,:), allocatable, public ocean_sflx_mu
ocean surface u-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_q2
ocean surface water vapor at 2m [kg/kg]
real(rp), dimension(:,:), allocatable, public atmos_u
real(rp), dimension(:,:), allocatable, public atmos_sflx_sw
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m
ocean surface roughness length for momentum [m]
real(rp), dimension(:,:), allocatable, public atmos_pbl
real(rp), dimension(:,:), allocatable, public ocean_sflx_sh
ocean surface sensible heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp
ocean surface skin temperature [K]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m_t
tendency of OCEAN_SFC_Z0M
real(rp), dimension(:,:), allocatable, public atmos_pres
real(rp), dimension(:,:), allocatable, public ocean_sflx_lh
ocean surface latent heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_u10
ocean surface velocity u at 10m [m/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_evap
ocean surface water vapor flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h
ocean surface roughness length for heat [m]
real(rp), dimension(:,:), allocatable, public ocean_t2
ocean surface temperature at 2m [K]
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_vars_restart_open()

subroutine, public mod_ocean_vars::ocean_vars_restart_open ( )

Open ocean restart file for read.

Definition at line 331 of file mod_ocean_vars.f90.

References scale_fileio::fileio_open(), scale_stdio::io_fid_log, scale_stdio::io_l, ocean_restart_in_basename, ocean_restart_in_postfix_timelabel, mod_ocean_admin::ocean_sw, and scale_time::time_gettimelabel().

Referenced by mod_admin_restart::admin_restart_read().

331  use scale_time, only: &
333  use scale_fileio, only: &
334  fileio_open, &
335  fileio_check_coordinates
336  use mod_ocean_admin, only: &
337  ocean_sw
338  implicit none
339 
340  character(len=19) :: timelabel
341  character(len=H_LONG) :: basename
342  !---------------------------------------------------------------------------
343 
344  if( io_l ) write(io_fid_log,*)
345  if( io_l ) write(io_fid_log,*) '*** Open restart file (OCEAN) ***'
346 
347  if ( ocean_sw .and. ocean_restart_in_basename /= '' ) then
348 
349  if ( ocean_restart_in_postfix_timelabel ) then
350  call time_gettimelabel( timelabel )
351  basename = trim(ocean_restart_in_basename)//'_'//trim(timelabel)
352  else
353  basename = trim(ocean_restart_in_basename)
354  endif
355 
356  if( io_l ) write(io_fid_log,*) '*** basename: ', trim(basename)
357 
358  call fileio_open( restart_fid, & ! [OUT]
359  basename ) ! [IN]
360 
361  if ( ocean_restart_in_check_coordinates ) then
362  call fileio_check_coordinates( restart_fid )
363  end if
364 
365  else
366  if( io_l ) write(io_fid_log,*) '*** restart file for ocean is not specified.'
367  endif
368 
369  return
logical, public ocean_sw
module FILE I/O (netcdf)
subroutine, public time_gettimelabel(timelabel)
generate time label
Definition: scale_time.F90:90
module TIME
Definition: scale_time.F90:15
module Ocean admin
subroutine, public fileio_open(fid, basename)
open a netCDF file for read
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_vars_restart_read()

subroutine, public mod_ocean_vars::ocean_vars_restart_read ( )

Read ocean restart.

Definition at line 375 of file mod_ocean_vars.f90.

References scale_fileio::fileio_flush(), scale_stdio::io_aggregate, scale_stdio::io_fid_log, scale_stdio::io_l, ocean_sfc_albedo, ocean_sfc_temp, ocean_sfc_z0e, ocean_sfc_z0h, ocean_sfc_z0m, ocean_sflx_evap, ocean_sflx_lh, ocean_sflx_mu, ocean_sflx_mv, ocean_sflx_mw, ocean_sflx_sh, ocean_sflx_wh, ocean_temp, and ocean_vars_total().

Referenced by mod_admin_restart::admin_restart_read(), and mod_rm_driver::resume_state().

375  use scale_fileio, only: &
376  fileio_read, &
378  implicit none
379  !---------------------------------------------------------------------------
380 
381  if ( restart_fid /= -1 ) then
382  if( io_l ) write(io_fid_log,*)
383  if( io_l ) write(io_fid_log,*) '*** Read from restart file (OCEAN) ***'
384 
385  call fileio_read( ocean_temp(:,:), & ! [OUT]
386  restart_fid, var_name(i_temp), 'XY', step=1 ) ! [IN]
387  call fileio_read( ocean_sfc_temp(:,:), & ! [OUT]
388  restart_fid, var_name(i_sfc_temp), 'XY', step=1 ) ! [IN]
389  call fileio_read( ocean_sfc_albedo(:,:,i_lw), & ! [OUT]
390  restart_fid, var_name(i_alb_lw), 'XY', step=1 ) ! [IN]
391  call fileio_read( ocean_sfc_albedo(:,:,i_sw), & ! [OUT]
392  restart_fid, var_name(i_alb_sw), 'XY', step=1 ) ! [IN]
393  call fileio_read( ocean_sfc_z0m(:,:), & ! [OUT]
394  restart_fid, var_name(i_sfc_z0m), 'XY', step=1 ) ! [IN]
395  call fileio_read( ocean_sfc_z0h(:,:), & ! [OUT]
396  restart_fid, var_name(i_sfc_z0h), 'XY', step=1 ) ! [IN]
397  call fileio_read( ocean_sfc_z0e(:,:), & ! [OUT]
398  restart_fid, var_name(i_sfc_z0e), 'XY', step=1 ) ! [IN]
399 
400  call fileio_read( ocean_sflx_mw(:,:), & ! [OUT]
401  restart_fid, var_name(i_sflx_mw), 'XY', step=1 ) ! [IN]
402  call fileio_read( ocean_sflx_mu(:,:), & ! [OUT]
403  restart_fid, var_name(i_sflx_mu), 'XY', step=1 ) ! [IN]
404  call fileio_read( ocean_sflx_mv(:,:), & ! [OUT]
405  restart_fid, var_name(i_sflx_mv), 'XY', step=1 ) ! [IN]
406  call fileio_read( ocean_sflx_sh(:,:), & ! [OUT]
407  restart_fid, var_name(i_sflx_sh), 'XY', step=1 ) ! [IN]
408  call fileio_read( ocean_sflx_lh(:,:), & ! [OUT]
409  restart_fid, var_name(i_sflx_lh), 'XY', step=1 ) ! [IN]
410  call fileio_read( ocean_sflx_wh(:,:), & ! [OUT]
411  restart_fid, var_name(i_sflx_wh), 'XY', step=1 ) ! [IN]
412  call fileio_read( ocean_sflx_evap(:,:), & ! [OUT]
413  restart_fid, var_name(i_sflx_evap), 'XY', step=1 ) ! [IN]
414 
415  if( io_aggregate ) call fileio_flush( restart_fid ) ! commit all pending read requests
416 
417  call ocean_vars_total
418  else
419  if( io_l ) write(io_fid_log,*) '*** invalid restart file ID for ocean.'
420  endif
421 
422  return
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo
ocean surface albedo (0-1)
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e
ocean surface roughness length for vapor [m]
real(rp), dimension(:,:), allocatable, public ocean_temp
temperature at uppermost ocean layer [K]
subroutine, public fileio_flush(fid)
Flush all pending requests to a netCDF file (PnetCDF only)
real(rp), dimension(:,:), allocatable, public ocean_sflx_wh
ocean surface water heat flux [J/m2/s]
module FILE I/O (netcdf)
integer, parameter, public i_lw
integer, parameter, public i_sw
real(rp), dimension(:,:), allocatable, public ocean_sflx_mv
ocean surface v-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mw
ocean surface w-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mu
ocean surface u-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m
ocean surface roughness length for momentum [m]
real(rp), dimension(:,:), allocatable, public ocean_sflx_sh
ocean surface sensible heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp
ocean surface skin temperature [K]
real(rp), dimension(:,:), allocatable, public ocean_sflx_lh
ocean surface latent heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_evap
ocean surface water vapor flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h
ocean surface roughness length for heat [m]
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_vars_history()

subroutine, public mod_ocean_vars::ocean_vars_history ( )

History output set for ocean variables.

Definition at line 428 of file mod_ocean_vars.f90.

References scale_grid_index::ie, scale_grid_index::is, scale_grid_index::je, scale_grid_index::js, ocean_sfc_albedo, ocean_sfc_temp, ocean_sfc_z0e, ocean_sfc_z0h, ocean_sfc_z0m, ocean_sflx_evap, ocean_sflx_lh, ocean_sflx_mu, ocean_sflx_mv, ocean_sflx_mw, ocean_sflx_sh, ocean_sflx_wh, and ocean_temp.

Referenced by mod_ocean_driver::ocean_driver(), and mod_ocean_driver::ocean_driver_resume().

428  use scale_history, only: &
429  hist_in
430  implicit none
431  !---------------------------------------------------------------------------
432 
433  if ( ocean_vars_checkrange ) then
434  call valcheck( ocean_temp(is:ie,js:je), 0.0_rp, 1000.0_rp, var_name(i_temp), &
435  __file__, __line__ )
436  call valcheck( ocean_sfc_temp(is:ie,js:je), 0.0_rp, 1000.0_rp, var_name(i_sfc_temp), &
437  __file__, __line__ )
438  call valcheck( ocean_sfc_albedo(is:ie,js:je,i_lw), 0.0_rp, 2.0_rp, var_name(i_alb_lw), &
439  __file__, __line__ )
440  call valcheck( ocean_sfc_albedo(is:ie,js:je,i_sw), 0.0_rp, 2.0_rp, var_name(i_alb_sw), &
441  __file__, __line__ )
442  call valcheck( ocean_sfc_z0m(is:ie,js:je), 0.0_rp, 1000.0_rp, var_name(i_sfc_z0m), &
443  __file__, __line__ )
444  call valcheck( ocean_sfc_z0h(is:ie,js:je), 0.0_rp, 1000.0_rp, var_name(i_sfc_z0h), &
445  __file__, __line__ )
446  call valcheck( ocean_sfc_z0e(is:ie,js:je), 0.0_rp, 1000.0_rp, var_name(i_sfc_z0e), &
447  __file__, __line__ )
448  endif
449 
450  call hist_in( ocean_temp(:,:), var_name(i_temp), var_desc(i_temp), var_unit(i_temp) )
451  call hist_in( ocean_sfc_temp(:,:), var_name(i_sfc_temp), var_desc(i_sfc_temp), var_unit(i_sfc_temp) )
452  call hist_in( ocean_sfc_albedo(:,:,i_lw), var_name(i_alb_lw), var_desc(i_alb_lw), var_unit(i_alb_lw) )
453  call hist_in( ocean_sfc_albedo(:,:,i_sw), var_name(i_alb_sw), var_desc(i_alb_sw), var_unit(i_alb_sw) )
454  call hist_in( ocean_sfc_z0m(:,:), var_name(i_sfc_z0m), var_desc(i_sfc_z0m), var_unit(i_sfc_z0m) )
455  call hist_in( ocean_sfc_z0h(:,:), var_name(i_sfc_z0h), var_desc(i_sfc_z0h), var_unit(i_sfc_z0h) )
456  call hist_in( ocean_sfc_z0e(:,:), var_name(i_sfc_z0e), var_desc(i_sfc_z0e), var_unit(i_sfc_z0e) )
457 
458  call hist_in( ocean_sflx_mw(:,:), var_name(i_sflx_mw), var_desc(i_sflx_mw), var_unit(i_sflx_mw) )
459  call hist_in( ocean_sflx_mu(:,:), var_name(i_sflx_mu), var_desc(i_sflx_mu), var_unit(i_sflx_mu) )
460  call hist_in( ocean_sflx_mv(:,:), var_name(i_sflx_mv), var_desc(i_sflx_mv), var_unit(i_sflx_mv) )
461  call hist_in( ocean_sflx_sh(:,:), var_name(i_sflx_sh), var_desc(i_sflx_sh), var_unit(i_sflx_sh) )
462  call hist_in( ocean_sflx_lh(:,:), var_name(i_sflx_lh), var_desc(i_sflx_lh), var_unit(i_sflx_lh) )
463  call hist_in( ocean_sflx_wh(:,:), var_name(i_sflx_wh), var_desc(i_sflx_wh), var_unit(i_sflx_wh) )
464  call hist_in( ocean_sflx_evap(:,:), var_name(i_sflx_evap), var_desc(i_sflx_evap), var_unit(i_sflx_evap) )
465 
466  return
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo
ocean surface albedo (0-1)
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e
ocean surface roughness length for vapor [m]
real(rp), dimension(:,:), allocatable, public ocean_temp
temperature at uppermost ocean layer [K]
real(rp), dimension(:,:), allocatable, public ocean_sflx_wh
ocean surface water heat flux [J/m2/s]
integer, parameter, public i_lw
integer, parameter, public i_sw
real(rp), dimension(:,:), allocatable, public ocean_sflx_mv
ocean surface v-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mw
ocean surface w-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mu
ocean surface u-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m
ocean surface roughness length for momentum [m]
real(rp), dimension(:,:), allocatable, public ocean_sflx_sh
ocean surface sensible heat flux [J/m2/s]
module HISTORY
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp
ocean surface skin temperature [K]
real(rp), dimension(:,:), allocatable, public ocean_sflx_lh
ocean surface latent heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_evap
ocean surface water vapor flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h
ocean surface roughness length for heat [m]
Here is the caller graph for this function:

◆ ocean_vars_total()

subroutine, public mod_ocean_vars::ocean_vars_total ( )

Budget monitor for ocean.

Definition at line 472 of file mod_ocean_vars.f90.

References ocean_sfc_albedo, ocean_sfc_temp, ocean_sfc_z0e, ocean_sfc_z0h, ocean_sfc_z0m, ocean_sflx_evap, ocean_sflx_lh, ocean_sflx_mu, ocean_sflx_mv, ocean_sflx_mw, ocean_sflx_sh, ocean_sflx_wh, ocean_temp, and scale_rm_statistics::statistics_checktotal.

Referenced by mod_ocean_driver::ocean_driver(), ocean_vars_external_in(), ocean_vars_restart_read(), and ocean_vars_restart_write().

472  use scale_rm_statistics, only: &
474  stat_total
475  implicit none
476 
477  real(RP) :: total
478  !---------------------------------------------------------------------------
479 
480  if ( statistics_checktotal ) then
481 
482  call stat_total( total, ocean_temp(:,:), var_name(i_temp) )
483  call stat_total( total, ocean_sfc_temp(:,:), var_name(i_sfc_temp) )
484  call stat_total( total, ocean_sfc_albedo(:,:,i_lw), var_name(i_alb_lw) )
485  call stat_total( total, ocean_sfc_albedo(:,:,i_sw), var_name(i_alb_sw) )
486  call stat_total( total, ocean_sfc_z0m(:,:), var_name(i_sfc_z0m) )
487  call stat_total( total, ocean_sfc_z0h(:,:), var_name(i_sfc_z0h) )
488  call stat_total( total, ocean_sfc_z0e(:,:), var_name(i_sfc_z0e) )
489 
490  call stat_total( total, ocean_sflx_mw(:,:), var_name(i_sflx_mw) )
491  call stat_total( total, ocean_sflx_mu(:,:), var_name(i_sflx_mu) )
492  call stat_total( total, ocean_sflx_mv(:,:), var_name(i_sflx_mv) )
493  call stat_total( total, ocean_sflx_sh(:,:), var_name(i_sflx_sh) )
494  call stat_total( total, ocean_sflx_lh(:,:), var_name(i_sflx_lh) )
495  call stat_total( total, ocean_sflx_wh(:,:), var_name(i_sflx_wh) )
496  call stat_total( total, ocean_sflx_evap(:,:), var_name(i_sflx_evap) )
497 
498  endif
499 
500  return
logical, public statistics_checktotal
calc&report variable totals to logfile?
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo
ocean surface albedo (0-1)
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e
ocean surface roughness length for vapor [m]
real(rp), dimension(:,:), allocatable, public ocean_temp
temperature at uppermost ocean layer [K]
real(rp), dimension(:,:), allocatable, public ocean_sflx_wh
ocean surface water heat flux [J/m2/s]
integer, parameter, public i_lw
module Statistics
integer, parameter, public i_sw
real(rp), dimension(:,:), allocatable, public ocean_sflx_mv
ocean surface v-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mw
ocean surface w-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mu
ocean surface u-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m
ocean surface roughness length for momentum [m]
real(rp), dimension(:,:), allocatable, public ocean_sflx_sh
ocean surface sensible heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp
ocean surface skin temperature [K]
real(rp), dimension(:,:), allocatable, public ocean_sflx_lh
ocean surface latent heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_evap
ocean surface water vapor flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h
ocean surface roughness length for heat [m]
Here is the caller graph for this function:

◆ ocean_vars_external_in()

subroutine, public mod_ocean_vars::ocean_vars_external_in ( real(rp), dimension (ia,ja), intent(in)  OCEAN_TEMP_in,
real(rp), dimension (ia,ja), intent(in)  OCEAN_SFC_TEMP_in,
real(rp), dimension(ia,ja,2), intent(in)  OCEAN_SFC_albedo_in,
real(rp), dimension (ia,ja), intent(in)  OCEAN_SFC_Z0M_in,
real(rp), dimension (ia,ja), intent(in)  OCEAN_SFC_Z0H_in,
real(rp), dimension (ia,ja), intent(in)  OCEAN_SFC_Z0E_in 
)

Input from External I/O.

Definition at line 512 of file mod_ocean_vars.f90.

References scale_stdio::io_fid_log, scale_stdio::io_l, ocean_sfc_albedo, ocean_sfc_temp, ocean_sfc_z0e, ocean_sfc_z0h, ocean_sfc_z0m, ocean_sflx_evap, ocean_sflx_lh, ocean_sflx_mu, ocean_sflx_mv, ocean_sflx_mw, ocean_sflx_sh, ocean_sflx_wh, ocean_temp, and ocean_vars_total().

512  implicit none
513 
514  real(RP), intent(in) :: OCEAN_TEMP_in (IA,JA)
515  real(RP), intent(in) :: OCEAN_SFC_TEMP_in (IA,JA)
516  real(RP), intent(in) :: OCEAN_SFC_albedo_in(IA,JA,2)
517  real(RP), intent(in) :: OCEAN_SFC_Z0M_in (IA,JA)
518  real(RP), intent(in) :: OCEAN_SFC_Z0H_in (IA,JA)
519  real(RP), intent(in) :: OCEAN_SFC_Z0E_in (IA,JA)
520  !---------------------------------------------------------------------------
521 
522  if( io_l ) write(io_fid_log,*)
523  if( io_l ) write(io_fid_log,*) '*** External Input file (ocean) ***'
524 
525  ocean_temp(:,:) = ocean_temp_in(:,:)
526  ocean_sfc_temp(:,:) = ocean_sfc_temp_in(:,:)
527  ocean_sfc_albedo(:,:,:) = ocean_sfc_albedo_in(:,:,:)
528  ocean_sfc_z0m(:,:) = ocean_sfc_z0m_in(:,:)
529  ocean_sfc_z0h(:,:) = ocean_sfc_z0h_in(:,:)
530  ocean_sfc_z0e(:,:) = ocean_sfc_z0e_in(:,:)
531 
532  ocean_sflx_mw(:,:) = 0.0_rp
533  ocean_sflx_mu(:,:) = 0.0_rp
534  ocean_sflx_mv(:,:) = 0.0_rp
535  ocean_sflx_sh(:,:) = 0.0_rp
536  ocean_sflx_lh(:,:) = 0.0_rp
537  ocean_sflx_wh(:,:) = 0.0_rp
538  ocean_sflx_evap(:,:) = 0.0_rp
539 
540  call ocean_vars_total
541 
542  return
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo
ocean surface albedo (0-1)
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e
ocean surface roughness length for vapor [m]
real(rp), dimension(:,:), allocatable, public ocean_temp
temperature at uppermost ocean layer [K]
real(rp), dimension(:,:), allocatable, public ocean_sflx_wh
ocean surface water heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mv
ocean surface v-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mw
ocean surface w-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mu
ocean surface u-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m
ocean surface roughness length for momentum [m]
real(rp), dimension(:,:), allocatable, public ocean_sflx_sh
ocean surface sensible heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp
ocean surface skin temperature [K]
real(rp), dimension(:,:), allocatable, public ocean_sflx_lh
ocean surface latent heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_evap
ocean surface water vapor flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h
ocean surface roughness length for heat [m]
Here is the call graph for this function:

◆ ocean_vars_restart_create()

subroutine, public mod_ocean_vars::ocean_vars_restart_create ( )

Create ocean restart file.

Definition at line 548 of file mod_ocean_vars.f90.

References scale_fileio::fileio_create(), scale_stdio::io_fid_log, scale_stdio::io_l, ocean_restart_out_basename, ocean_restart_out_dtype, ocean_restart_out_postfix_timelabel, ocean_restart_out_title, mod_ocean_admin::ocean_sw, and scale_time::time_gettimelabel().

Referenced by mod_admin_restart::admin_restart_write().

548  use scale_time, only: &
550  use scale_fileio, only: &
552  use mod_ocean_admin, only: &
553  ocean_sw
554  implicit none
555 
556  character(len=19) :: timelabel
557  character(len=H_LONG) :: basename
558  !---------------------------------------------------------------------------
559 
560  if ( ocean_sw .and. ocean_restart_out_basename /= '' ) then
561 
562  if( io_l ) write(io_fid_log,*)
563  if( io_l ) write(io_fid_log,*) '*** Create restart file (OCEAN) ***'
564 
565  if ( ocean_restart_out_postfix_timelabel ) then
566  call time_gettimelabel( timelabel )
567  basename = trim(ocean_restart_out_basename)//'_'//trim(timelabel)
568  else
569  basename = trim(ocean_restart_out_basename)
570  endif
571 
572  if( io_l ) write(io_fid_log,*) '*** basename: ', trim(basename)
573 
574  call fileio_create( restart_fid, & ! [OUT]
575  basename, ocean_restart_out_title, ocean_restart_out_dtype ) ! [IN]
576 
577  endif
578 
579  return
logical, public ocean_sw
module FILE I/O (netcdf)
subroutine, public time_gettimelabel(timelabel)
generate time label
Definition: scale_time.F90:90
subroutine, public fileio_create(fid, basename, title, datatype, date, subsec, append, nozcoord)
Create/open a netCDF file.
module TIME
Definition: scale_time.F90:15
module Ocean admin
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_vars_restart_enddef()

subroutine, public mod_ocean_vars::ocean_vars_restart_enddef ( )

Exit netCDF define mode.

Definition at line 585 of file mod_ocean_vars.f90.

References scale_fileio::fileio_enddef().

Referenced by mod_admin_restart::admin_restart_write().

585  use scale_fileio, only: &
587  implicit none
588 
589  if ( restart_fid /= -1 ) then
590  call fileio_enddef( restart_fid ) ! [IN]
591  endif
592 
593  return
module FILE I/O (netcdf)
subroutine, public fileio_enddef(fid)
Exit netCDF file define mode.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_vars_restart_close()

subroutine, public mod_ocean_vars::ocean_vars_restart_close ( )

Close restart file.

Definition at line 599 of file mod_ocean_vars.f90.

References scale_fileio::fileio_close(), scale_stdio::io_fid_log, and scale_stdio::io_l.

Referenced by mod_admin_restart::admin_restart_read(), and mod_admin_restart::admin_restart_write().

599  use scale_fileio, only: &
601  implicit none
602  !---------------------------------------------------------------------------
603 
604  if ( restart_fid /= -1 ) then
605  if( io_l ) write(io_fid_log,*)
606  if( io_l ) write(io_fid_log,*) '*** Close restart file (OCEAN) ***'
607 
608  call fileio_close( restart_fid ) ! [IN]
609 
610  restart_fid = -1
611  endif
612 
613  return
module FILE I/O (netcdf)
subroutine, public fileio_close(fid)
Close a netCDF file.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_vars_restart_def_var()

subroutine, public mod_ocean_vars::ocean_vars_restart_def_var ( )

Define ocean variables in restart file.

Definition at line 619 of file mod_ocean_vars.f90.

References scale_fileio::fileio_def_var(), and ocean_restart_out_dtype.

Referenced by mod_admin_restart::admin_restart_write().

619  use scale_fileio, only: &
621  implicit none
622  !---------------------------------------------------------------------------
623 
624  if ( restart_fid /= -1 ) then
625 
626  call fileio_def_var( restart_fid, var_id(i_temp), var_name(i_temp), var_desc(i_temp), &
627  var_unit(i_temp), 'XY', ocean_restart_out_dtype)
628  call fileio_def_var( restart_fid, var_id(i_sfc_temp), var_name(i_sfc_temp), var_desc(i_sfc_temp), &
629  var_unit(i_sfc_temp), 'XY', ocean_restart_out_dtype)
630  call fileio_def_var( restart_fid, var_id(i_alb_lw), var_name(i_alb_lw), var_desc(i_alb_lw), &
631  var_unit(i_alb_lw), 'XY', ocean_restart_out_dtype)
632  call fileio_def_var( restart_fid, var_id(i_alb_sw), var_name(i_alb_sw), var_desc(i_alb_sw), &
633  var_unit(i_alb_sw), 'XY', ocean_restart_out_dtype)
634  call fileio_def_var( restart_fid, var_id(i_sfc_z0m), var_name(i_sfc_z0m), var_desc(i_sfc_z0m), &
635  var_unit(i_sfc_z0m), 'XY', ocean_restart_out_dtype)
636  call fileio_def_var( restart_fid, var_id(i_sfc_z0h), var_name(i_sfc_z0h), var_desc(i_sfc_z0h), &
637  var_unit(i_sfc_z0h), 'XY', ocean_restart_out_dtype)
638  call fileio_def_var( restart_fid, var_id(i_sfc_z0e), var_name(i_sfc_z0e), var_desc(i_sfc_z0e), &
639  var_unit(i_sfc_z0e), 'XY', ocean_restart_out_dtype)
640  call fileio_def_var( restart_fid, var_id(i_sflx_mw), var_name(i_sflx_mw), var_desc(i_sflx_mw), &
641  var_unit(i_sflx_mw), 'XY', ocean_restart_out_dtype)
642  call fileio_def_var( restart_fid, var_id(i_sflx_mu), var_name(i_sflx_mu), var_desc(i_sflx_mu), &
643  var_unit(i_sflx_mu), 'XY', ocean_restart_out_dtype)
644  call fileio_def_var( restart_fid, var_id(i_sflx_mv), var_name(i_sflx_mv), var_desc(i_sflx_mv), &
645  var_unit(i_sflx_mv), 'XY', ocean_restart_out_dtype)
646  call fileio_def_var( restart_fid, var_id(i_sflx_sh), var_name(i_sflx_sh), var_desc(i_sflx_sh), &
647  var_unit(i_sflx_sh), 'XY', ocean_restart_out_dtype)
648  call fileio_def_var( restart_fid, var_id(i_sflx_lh), var_name(i_sflx_lh), var_desc(i_sflx_lh), &
649  var_unit(i_sflx_lh), 'XY', ocean_restart_out_dtype)
650  call fileio_def_var( restart_fid, var_id(i_sflx_wh), var_name(i_sflx_wh), var_desc(i_sflx_wh), &
651  var_unit(i_sflx_wh), 'XY', ocean_restart_out_dtype)
652  call fileio_def_var( restart_fid, var_id(i_sflx_evap), var_name(i_sflx_evap), var_desc(i_sflx_evap), &
653  var_unit(i_sflx_evap), 'XY', ocean_restart_out_dtype)
654 
655  endif
656 
657  return
module FILE I/O (netcdf)
subroutine, public fileio_def_var(fid, vid, varname, desc, unit, axistype, datatype, timeintv, nsteps)
Define a variable to file.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_vars_restart_write()

subroutine, public mod_ocean_vars::ocean_vars_restart_write ( )

Write ocean variables to restart file.

Definition at line 663 of file mod_ocean_vars.f90.

References ocean_sfc_albedo, ocean_sfc_temp, ocean_sfc_z0e, ocean_sfc_z0h, ocean_sfc_z0m, ocean_sflx_evap, ocean_sflx_lh, ocean_sflx_mu, ocean_sflx_mv, ocean_sflx_mw, ocean_sflx_sh, ocean_sflx_wh, ocean_temp, and ocean_vars_total().

Referenced by mod_admin_restart::admin_restart_write().

663  use scale_fileio, only: &
664  fileio_write_var
665  implicit none
666  !---------------------------------------------------------------------------
667 
668  if ( restart_fid /= -1 ) then
669 
670  call ocean_vars_total
671 
672  call fileio_write_var( restart_fid, var_id(i_temp), ocean_temp(:,:), & ! [IN]
673  var_name(i_temp), 'XY', nohalo=.true. ) ! [IN]
674  call fileio_write_var( restart_fid, var_id(i_sfc_temp), ocean_sfc_temp(:,:), & ! [IN]
675  var_name(i_sfc_temp), 'XY', nohalo=.true. ) ! [IN]
676  call fileio_write_var( restart_fid, var_id(i_alb_lw), ocean_sfc_albedo(:,:,i_lw), & ! [IN]
677  var_name(i_alb_lw), 'XY', nohalo=.true. ) ! [IN]
678  call fileio_write_var( restart_fid, var_id(i_alb_sw), ocean_sfc_albedo(:,:,i_sw), & ! [IN]
679  var_name(i_alb_sw), 'XY', nohalo=.true. ) ! [IN]
680  call fileio_write_var( restart_fid, var_id(i_sfc_z0m), ocean_sfc_z0m(:,:), & ! [IN]
681  var_name(i_sfc_z0m), 'XY', nohalo=.true. ) ! [IN]
682  call fileio_write_var( restart_fid, var_id(i_sfc_z0h), ocean_sfc_z0h(:,:), & ! [IN]
683  var_name(i_sfc_z0h), 'XY', nohalo=.true. ) ! [IN]
684  call fileio_write_var( restart_fid, var_id(i_sfc_z0e), ocean_sfc_z0e(:,:), & ! [IN]
685  var_name(i_sfc_z0e), 'XY', nohalo=.true. ) ! [IN]
686  call fileio_write_var( restart_fid, var_id(i_sflx_mw), ocean_sflx_mw(:,:), & ! [IN]
687  var_name(i_sflx_mw), 'XY', nohalo=.true. ) ! [IN]
688  call fileio_write_var( restart_fid, var_id(i_sflx_mu), ocean_sflx_mu(:,:), & ! [IN]
689  var_name(i_sflx_mu), 'XY', nohalo=.true. ) ! [IN]
690  call fileio_write_var( restart_fid, var_id(i_sflx_mv), ocean_sflx_mv(:,:), & ! [IN]
691  var_name(i_sflx_mv), 'XY', nohalo=.true. ) ! [IN]
692  call fileio_write_var( restart_fid, var_id(i_sflx_sh), ocean_sflx_sh(:,:), & ! [IN]
693  var_name(i_sflx_sh), 'XY', nohalo=.true. ) ! [IN]
694  call fileio_write_var( restart_fid, var_id(i_sflx_lh), ocean_sflx_lh(:,:), & ! [IN]
695  var_name(i_sflx_lh), 'XY', nohalo=.true. ) ! [IN]
696  call fileio_write_var( restart_fid, var_id(i_sflx_wh), ocean_sflx_wh(:,:), & ! [IN]
697  var_name(i_sflx_wh), 'XY', nohalo=.true. ) ! [IN]
698  call fileio_write_var( restart_fid, var_id(i_sflx_evap), ocean_sflx_evap(:,:), & ! [IN]
699  var_name(i_sflx_evap), 'XY', nohalo=.true. ) ! [IN]
700 
701  endif
702 
703  return
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo
ocean surface albedo (0-1)
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e
ocean surface roughness length for vapor [m]
real(rp), dimension(:,:), allocatable, public ocean_temp
temperature at uppermost ocean layer [K]
real(rp), dimension(:,:), allocatable, public ocean_sflx_wh
ocean surface water heat flux [J/m2/s]
module FILE I/O (netcdf)
integer, parameter, public i_lw
integer, parameter, public i_sw
real(rp), dimension(:,:), allocatable, public ocean_sflx_mv
ocean surface v-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mw
ocean surface w-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mu
ocean surface u-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m
ocean surface roughness length for momentum [m]
real(rp), dimension(:,:), allocatable, public ocean_sflx_sh
ocean surface sensible heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp
ocean surface skin temperature [K]
real(rp), dimension(:,:), allocatable, public ocean_sflx_lh
ocean surface latent heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_evap
ocean surface water vapor flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h
ocean surface roughness length for heat [m]
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ ocean_restart_output

logical, public mod_ocean_vars::ocean_restart_output = .false.

Output restart file?

Definition at line 49 of file mod_ocean_vars.f90.

Referenced by mod_admin_restart::admin_restart_setup(), mod_admin_restart::admin_restart_write(), and ocean_vars_setup().

49  logical, public :: OCEAN_RESTART_OUTPUT = .false.

◆ ocean_restart_in_basename

character(len=h_long), public mod_ocean_vars::ocean_restart_in_basename = ''

Basename of the input file.

Definition at line 51 of file mod_ocean_vars.f90.

Referenced by mod_admin_restart::admin_restart_setup(), ocean_vars_restart_open(), and ocean_vars_setup().

51  character(len=H_LONG), public :: OCEAN_RESTART_IN_BASENAME = ''

◆ ocean_restart_in_postfix_timelabel

logical, public mod_ocean_vars::ocean_restart_in_postfix_timelabel = .false.

Add timelabel to the basename of input file?

Definition at line 52 of file mod_ocean_vars.f90.

Referenced by mod_admin_restart::admin_restart_setup(), ocean_vars_restart_open(), and ocean_vars_setup().

52  logical, public :: OCEAN_RESTART_IN_POSTFIX_TIMELABEL = .false.

◆ ocean_restart_out_basename

character(len=h_long), public mod_ocean_vars::ocean_restart_out_basename = ''

Basename of the output file.

Definition at line 53 of file mod_ocean_vars.f90.

Referenced by mod_admin_restart::admin_restart_setup(), ocean_vars_restart_create(), and ocean_vars_setup().

53  character(len=H_LONG), public :: OCEAN_RESTART_OUT_BASENAME = ''

◆ ocean_restart_out_postfix_timelabel

logical, public mod_ocean_vars::ocean_restart_out_postfix_timelabel = .true.

Add timelabel to the basename of output file?

Definition at line 54 of file mod_ocean_vars.f90.

Referenced by mod_admin_restart::admin_restart_setup(), ocean_vars_restart_create(), and ocean_vars_setup().

54  logical, public :: OCEAN_RESTART_OUT_POSTFIX_TIMELABEL = .true.

◆ ocean_restart_out_title

character(len=h_mid), public mod_ocean_vars::ocean_restart_out_title = 'OCEAN restart'

Title of the output file.

Definition at line 55 of file mod_ocean_vars.f90.

Referenced by mod_admin_restart::admin_restart_setup(), ocean_vars_restart_create(), and ocean_vars_setup().

55  character(len=H_MID), public :: OCEAN_RESTART_OUT_TITLE = 'OCEAN restart'

◆ ocean_restart_out_dtype

character(len=h_short), public mod_ocean_vars::ocean_restart_out_dtype = 'DEFAULT'

REAL4 or REAL8.

Definition at line 56 of file mod_ocean_vars.f90.

Referenced by mod_admin_restart::admin_restart_setup(), ocean_vars_restart_create(), ocean_vars_restart_def_var(), and ocean_vars_setup().

56  character(len=H_SHORT), public :: OCEAN_RESTART_OUT_DTYPE = 'DEFAULT'

◆ ocean_temp

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_temp

◆ ocean_sfc_temp

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sfc_temp

◆ ocean_sfc_albedo

real(rp), dimension(:,:,:), allocatable, public mod_ocean_vars::ocean_sfc_albedo

◆ ocean_sfc_z0m

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sfc_z0m

◆ ocean_sfc_z0h

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sfc_z0h

◆ ocean_sfc_z0e

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sfc_z0e

◆ ocean_temp_t

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_temp_t

tendency of OCEAN_TEMP

Definition at line 67 of file mod_ocean_vars.f90.

Referenced by mod_ocean_driver::ocean_driver(), mod_ocean_phy_driver::ocean_phy_driver(), and ocean_vars_setup().

67  real(RP), public, allocatable :: OCEAN_TEMP_t (:,:)

◆ ocean_sfc_temp_t

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sfc_temp_t

tendency of OCEAN_SFC_TEMP

Definition at line 68 of file mod_ocean_vars.f90.

Referenced by mod_ocean_driver::ocean_driver(), mod_ocean_phy_driver::ocean_phy_driver(), and ocean_vars_setup().

68  real(RP), public, allocatable :: OCEAN_SFC_TEMP_t (:,:)

◆ ocean_sfc_albedo_t

real(rp), dimension(:,:,:), allocatable, public mod_ocean_vars::ocean_sfc_albedo_t

tendency of OCEAN_SFC_alebdo

Definition at line 69 of file mod_ocean_vars.f90.

Referenced by mod_ocean_driver::ocean_driver(), mod_ocean_phy_driver::ocean_phy_driver(), and ocean_vars_setup().

69  real(RP), public, allocatable :: OCEAN_SFC_albedo_t(:,:,:)

◆ ocean_sfc_z0m_t

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sfc_z0m_t

tendency of OCEAN_SFC_Z0M

Definition at line 70 of file mod_ocean_vars.f90.

Referenced by mod_ocean_driver::ocean_driver(), mod_ocean_phy_driver::ocean_phy_driver(), and ocean_vars_setup().

70  real(RP), public, allocatable :: OCEAN_SFC_Z0M_t (:,:)

◆ ocean_sfc_z0h_t

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sfc_z0h_t

tendency of OCEAN_SFC_Z0H

Definition at line 71 of file mod_ocean_vars.f90.

Referenced by mod_ocean_driver::ocean_driver(), mod_ocean_phy_driver::ocean_phy_driver(), and ocean_vars_setup().

71  real(RP), public, allocatable :: OCEAN_SFC_Z0H_t (:,:)

◆ ocean_sfc_z0e_t

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sfc_z0e_t

tendency of OCEAN_SFC_Z0E

Definition at line 72 of file mod_ocean_vars.f90.

Referenced by mod_ocean_driver::ocean_driver(), mod_ocean_phy_driver::ocean_phy_driver(), and ocean_vars_setup().

72  real(RP), public, allocatable :: OCEAN_SFC_Z0E_t (:,:)

◆ ocean_sflx_mw

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sflx_mw

ocean surface w-momentum flux [kg/m2/s]

Definition at line 75 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), ocean_vars_external_in(), ocean_vars_history(), ocean_vars_restart_read(), ocean_vars_restart_write(), ocean_vars_setup(), and ocean_vars_total().

75  real(RP), public, allocatable :: OCEAN_SFLX_MW (:,:)

◆ ocean_sflx_mu

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sflx_mu

ocean surface u-momentum flux [kg/m2/s]

Definition at line 76 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), ocean_vars_external_in(), ocean_vars_history(), ocean_vars_restart_read(), ocean_vars_restart_write(), ocean_vars_setup(), and ocean_vars_total().

76  real(RP), public, allocatable :: OCEAN_SFLX_MU (:,:)

◆ ocean_sflx_mv

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sflx_mv

ocean surface v-momentum flux [kg/m2/s]

Definition at line 77 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), ocean_vars_external_in(), ocean_vars_history(), ocean_vars_restart_read(), ocean_vars_restart_write(), ocean_vars_setup(), and ocean_vars_total().

77  real(RP), public, allocatable :: OCEAN_SFLX_MV (:,:)

◆ ocean_sflx_sh

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sflx_sh

ocean surface sensible heat flux [J/m2/s]

Definition at line 78 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), ocean_vars_external_in(), ocean_vars_history(), ocean_vars_restart_read(), ocean_vars_restart_write(), ocean_vars_setup(), and ocean_vars_total().

78  real(RP), public, allocatable :: OCEAN_SFLX_SH (:,:)

◆ ocean_sflx_lh

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sflx_lh

ocean surface latent heat flux [J/m2/s]

Definition at line 79 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), ocean_vars_external_in(), ocean_vars_history(), ocean_vars_restart_read(), ocean_vars_restart_write(), ocean_vars_setup(), and ocean_vars_total().

79  real(RP), public, allocatable :: OCEAN_SFLX_LH (:,:)

◆ ocean_sflx_wh

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_sflx_wh

ocean surface water heat flux [J/m2/s]

Definition at line 80 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), ocean_vars_external_in(), ocean_vars_history(), ocean_vars_restart_read(), ocean_vars_restart_write(), ocean_vars_setup(), and ocean_vars_total().

80  real(RP), public, allocatable :: OCEAN_SFLX_WH (:,:)

◆ ocean_sflx_evap

real(rp), dimension(:,:), allocatable, public mod_ocean_vars::ocean_sflx_evap

ocean surface water vapor flux [kg/m2/s]

Definition at line 81 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), ocean_vars_external_in(), ocean_vars_history(), ocean_vars_restart_read(), ocean_vars_restart_write(), ocean_vars_setup(), and ocean_vars_total().

81  real(RP), public, allocatable :: OCEAN_SFLX_evap(:,:)

◆ ocean_u10

real(rp), dimension(:,:), allocatable, public mod_ocean_vars::ocean_u10

ocean surface velocity u at 10m [m/s]

Definition at line 84 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), and ocean_vars_setup().

84  real(RP), public, allocatable :: OCEAN_U10(:,:)

◆ ocean_v10

real(rp), dimension(:,:), allocatable, public mod_ocean_vars::ocean_v10

ocean surface velocity v at 10m [m/s]

Definition at line 85 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), and ocean_vars_setup().

85  real(RP), public, allocatable :: OCEAN_V10(:,:)

◆ ocean_t2

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_t2

ocean surface temperature at 2m [K]

Definition at line 86 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), and ocean_vars_setup().

86  real(RP), public, allocatable :: OCEAN_T2 (:,:)

◆ ocean_q2

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::ocean_q2

ocean surface water vapor at 2m [kg/kg]

Definition at line 87 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_set(), and ocean_vars_setup().

87  real(RP), public, allocatable :: OCEAN_Q2 (:,:)

◆ atmos_temp

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_temp

Definition at line 90 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

90  real(RP), public, allocatable :: ATMOS_TEMP (:,:)

◆ atmos_pres

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_pres

Definition at line 91 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

91  real(RP), public, allocatable :: ATMOS_PRES (:,:)

◆ atmos_w

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_w

Definition at line 92 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

92  real(RP), public, allocatable :: ATMOS_W (:,:)

◆ atmos_u

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_u

Definition at line 93 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

93  real(RP), public, allocatable :: ATMOS_U (:,:)

◆ atmos_v

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_v

Definition at line 94 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

94  real(RP), public, allocatable :: ATMOS_V (:,:)

◆ atmos_dens

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_dens

Definition at line 95 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

95  real(RP), public, allocatable :: ATMOS_DENS (:,:)

◆ atmos_qv

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_qv

Definition at line 96 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

96  real(RP), public, allocatable :: ATMOS_QV (:,:)

◆ atmos_pbl

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_pbl

Definition at line 97 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

97  real(RP), public, allocatable :: ATMOS_PBL (:,:)

◆ atmos_sfc_pres

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_sfc_pres

Definition at line 98 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

98  real(RP), public, allocatable :: ATMOS_SFC_PRES (:,:)

◆ atmos_sflx_lw

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_sflx_lw

Definition at line 99 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

99  real(RP), public, allocatable :: ATMOS_SFLX_LW (:,:)

◆ atmos_sflx_sw

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_sflx_sw

Definition at line 100 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

100  real(RP), public, allocatable :: ATMOS_SFLX_SW (:,:)

◆ atmos_cossza

real(rp), dimension (:,:), allocatable, public mod_ocean_vars::atmos_cossza

Definition at line 101 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

101  real(RP), public, allocatable :: ATMOS_cosSZA (:,:)

◆ atmos_sflx_prec

real(rp), dimension(:,:), allocatable, public mod_ocean_vars::atmos_sflx_prec

Definition at line 102 of file mod_ocean_vars.f90.

Referenced by mod_ocean_phy_driver::ocean_phy_driver(), mod_ocean_driver::ocean_surface_get(), and ocean_vars_setup().

102  real(RP), public, allocatable :: ATMOS_SFLX_prec(:,:)