MOM6
ocean_model_mod::ocean_model_data_get Interface Reference

Detailed Description

Definition at line 93 of file ocean_model_MOM.F90.

Private functions

subroutine ocean_model_data1d_get (OS, Ocean, name, value)
 
subroutine ocean_model_data2d_get (OS, Ocean, name, array2D, isc, jsc)
 

Functions and subroutines

◆ ocean_model_data1d_get()

subroutine ocean_model_mod::ocean_model_data_get::ocean_model_data1d_get ( type(ocean_state_type), pointer  OS,
type(ocean_public_type), intent(in)  Ocean,
character(len=*), intent(in)  name,
real, intent(out)  value 
)
private

Definition at line 1041 of file ocean_model_MOM.F90.

1041  type(ocean_state_type), pointer :: os
1042  type(ocean_public_type), intent(in) :: ocean
1043  character(len=*) , intent(in) :: name
1044  real , intent(out):: value
1045 
1046  if (.not.associated(os)) return
1047  if (.not.os%is_ocean_pe) return
1048 
1049  select case(name)
1050  case('c_p')
1051  value = os%C_p
1052  case default
1053  call mom_error(fatal,'get_ocean_grid_data1D: unknown argument name='//name)
1054  end select
1055 
1056 

◆ ocean_model_data2d_get()

subroutine ocean_model_mod::ocean_model_data_get::ocean_model_data2d_get ( type(ocean_state_type), pointer  OS,
type(ocean_public_type), intent(in)  Ocean,
character(len=*), intent(in)  name,
real, dimension(isc:,jsc:), intent(out)  array2D,
integer, intent(in)  isc,
integer, intent(in)  jsc 
)
private

Definition at line 993 of file ocean_model_MOM.F90.

994  type(ocean_state_type), pointer :: os
995  type(ocean_public_type), intent(in) :: ocean
996  character(len=*) , intent(in) :: name
997  real, dimension(isc:,jsc:), intent(out):: array2d
998  integer , intent(in) :: isc,jsc
999 
1000  integer :: g_isc, g_iec, g_jsc, g_jec,g_isd, g_ied, g_jsd, g_jed, i, j
1001 
1002  if (.not.associated(os)) return
1003  if (.not.os%is_ocean_pe) return
1004 
1005 ! The problem is %areaT is on MOM domain but Ice_Ocean_Boundary%... is on mpp domain.
1006 ! We want to return the MOM data on the mpp (compute) domain
1007 ! Get MOM domain extents
1008  call mpp_get_compute_domain(os%grid%Domain%mpp_domain, g_isc, g_iec, g_jsc, g_jec)
1009  call mpp_get_data_domain (os%grid%Domain%mpp_domain, g_isd, g_ied, g_jsd, g_jed)
1010 
1011  g_isc = g_isc-g_isd+1 ; g_iec = g_iec-g_isd+1 ; g_jsc = g_jsc-g_jsd+1 ; g_jec = g_jec-g_jsd+1
1012 
1013 
1014  select case(name)
1015  case('area')
1016  array2d(isc:,jsc:) = os%grid%areaT(g_isc:g_iec,g_jsc:g_jec)
1017  case('mask')
1018  array2d(isc:,jsc:) = os%grid%mask2dT(g_isc:g_iec,g_jsc:g_jec)
1019 !OR same result
1020 ! do j=g_jsc,g_jec; do i=g_isc,g_iec
1021 ! array2D(isc+i-g_isc,jsc+j-g_jsc) = OS%grid%mask2dT(i,j)
1022 ! enddo; enddo
1023  case('t_surf')
1024  array2d(isc:,jsc:) = ocean%t_surf(isc:,jsc:)-celsius_kelvin_offset
1025  case('t_pme')
1026  array2d(isc:,jsc:) = ocean%t_surf(isc:,jsc:)-celsius_kelvin_offset
1027  case('t_runoff')
1028  array2d(isc:,jsc:) = ocean%t_surf(isc:,jsc:)-celsius_kelvin_offset
1029  case('t_calving')
1030  array2d(isc:,jsc:) = ocean%t_surf(isc:,jsc:)-celsius_kelvin_offset
1031  case('btfHeat')
1032  array2d(isc:,jsc:) = 0
1033  case default
1034  call mom_error(fatal,'get_ocean_grid_data2D: unknown argument name='//name)
1035  end select
1036 
1037 
real, parameter, public celsius_kelvin_offset

The documentation for this interface was generated from the following file: