Skip to content

Commit

Permalink
readd file
Browse files Browse the repository at this point in the history
  • Loading branch information
rem1776 authored and rem1776 committed Aug 1, 2023
1 parent f7b7544 commit 19ee83f
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 68 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,4 @@ settings.json
*.code-workspace
# Local History for Visual Studio Code
.history/
*.i90
13 changes: 9 additions & 4 deletions coupler/coupler_types.F90
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,14 @@ module coupler_types_mod

!> @}

type, private :: coupler_3d_reals_r8_type

end type coupler_3d_reals_r8_type

!> Coupler data for 3D values
!> @ingroup coupler_types_mod
type, public :: coupler_3d_values_type
character(len=48) :: name = ' ' !< The diagnostic name for this array
real, pointer, contiguous, dimension(:,:,:) :: values => NULL() !< The pointer to the
!! array of values for this field; this
!! should be changed to allocatable
logical :: mean = .true. !< mean
logical :: override = .false. !< override
integer :: id_diag = 0 !< The diagnostic id for this array
Expand All @@ -83,6 +84,9 @@ module coupler_types_mod
logical :: may_init = .true. !< If true, there is an internal method
!! that can be used to initialize this field
!! if it can not be read from a restart file
real, pointer, contiguous, dimension(:,:,:) :: values => NULL() !< The pointer to the
!! array of values for this field; this
!! should be changed to allocatable
end type coupler_3d_values_type

!> Coupler data for 3D fields
Expand All @@ -93,7 +97,6 @@ module coupler_types_mod
type(coupler_3d_values_type), pointer, dimension(:) :: field => NULL() !< field
character(len=128) :: flux_type = ' ' !< flux_type
character(len=128) :: implementation = ' ' !< implementation
real, pointer, dimension(:) :: param => NULL() !< param
logical, pointer, dimension(:) :: flag => NULL() !< flag
integer :: atm_tr_index = 0 !< atm_tr_index
character(len=128) :: ice_restart_file = ' ' !< ice_restart_file
Expand All @@ -107,6 +110,7 @@ module coupler_types_mod
logical :: use_atm_pressure !< use_atm_pressure
logical :: use_10m_wind_speed !< use_10m_wind_speed
logical :: pass_through_ice !< pass_through_ice
real, pointer, dimension(:) :: param => NULL() !< param
real :: mol_wt = 0.0 !< mol_wt
end type coupler_3d_field_type

Expand Down Expand Up @@ -204,6 +208,7 @@ module coupler_types_mod
!! to be r8_kind during mixedmode update to field_manager
!! this explicit definition can be removed during the coupler update and be made into FMS_CP_KIND_
real(r8_kind), pointer, dimension(:) :: param => NULL() !< param
real(r4_kind), pointer, dimension(:) :: param => NULL() !< param
logical, pointer, dimension(:) :: flag => NULL() !< flag
integer :: atm_tr_index = 0 !< atm_tr_index
character(len=128) :: ice_restart_file = ' ' !< ice_restart_file
Expand Down
67 changes: 4 additions & 63 deletions coupler/include/atmos_ocean_fluxes.inc
Original file line number Diff line number Diff line change
Expand Up @@ -18,68 +18,9 @@
!***********************************************************************
!> @defgroup atmos_ocean_fluxes_mod atmos_ocean_fluxes_mod
!> @ingroup coupler
!> @brief Implementation of routines to solve the gas fluxes at the
!! ocean surface for a coupled model as outlined in the Biotic-HOWTO
!! documentation below, revision 1.7, 1999/10/05.
!!
!> @author Richard Slater, John Dunne
!!
!! Ocean Carbon Model Intercomparison Study II: Gas exchange coupler.
!!
!! This module will take fields from an atmospheric and an
!! oceanic model and calculate ocean surface fluxes for
!! CO2, O2, CFC-11 or CFC-12 as outlined in the various
!! HOWTO documents at the OCMIP2 website. Multiple instances
!! of a given tracer may be given, resulting in multiple
!! surface fluxes. Additionally, data may be overridden at
!! the individual fields, or fluxes. This could be used in
!! the absence of an atmospheric or oceanic model.
!!
!! http://ocmip5.ipsl.fr/documentation/OCMIP/phase2/simulations/Biotic/HOWTO-Biotic.html

!> @addtogroup atmos_ocean_fluxes_mod
!> @{
module atmos_ocean_fluxes_mod
use mpp_mod, only: stdout, mpp_error, FATAL, mpp_sum, mpp_npes
use fms_mod, only: write_version_number

use coupler_types_mod, only: coupler_1d_bc_type
use coupler_types_mod, only: ind_alpha, ind_csurf, ind_sc_no
use coupler_types_mod, only: ind_pcair, ind_u10, ind_psurf
use coupler_types_mod, only: ind_deposition
use coupler_types_mod, only: ind_runoff
use coupler_types_mod, only: ind_flux, ind_deltap, ind_kw, ind_flux0

use field_manager_mod, only: fm_path_name_len, fm_string_len, fm_exists, fm_get_index
use field_manager_mod, only: fm_new_list, fm_get_current_list, fm_change_list
use field_manager_mod, only: fm_field_name_len, fm_type_name_len, fm_dump_list
use field_manager_mod, only: fm_loop_over_list

use fm_util_mod, only: fm_util_default_caller
use fm_util_mod, only: fm_util_get_length
use fm_util_mod, only: fm_util_set_value, fm_util_set_good_name_list
use fm_util_mod, only: fm_util_set_no_overwrite, fm_util_set_caller
use fm_util_mod, only: fm_util_reset_good_name_list, fm_util_reset_no_overwrite
use fm_util_mod, only: fm_util_reset_caller, fm_util_get_string_array
use fm_util_mod, only: fm_util_check_for_bad_fields, fm_util_get_string
use fm_util_mod, only: fm_util_get_real_array, fm_util_get_real, fm_util_get_integer
use fm_util_mod, only: fm_util_get_logical, fm_util_get_logical_array

implicit none
private

public :: atmos_ocean_fluxes_init
public :: atmos_ocean_type_fluxes_init
public :: aof_set_coupler_flux

character(len=*), parameter :: mod_name = 'atmos_ocean_fluxes_mod'
real, parameter :: epsln=1.0e-30


! Include variable "version" to be written to log file.
#include<file_version.h>

contains

!> @brief Set the values for a coupler flux
!! @return its index (0 on error)
Expand Down Expand Up @@ -111,16 +52,16 @@ contains
!! Mismatch between parameter input and the parameters being replaced
!! @throw FATAL, "Could not change back to [current_list]"
!! @throw FATAL, "Empty [name] list"
function aof_set_coupler_flux(name, flux_type, implementation, atm_tr_index, param, flag,&
function AOF_SET_COUPLER_FLUX_(name, flux_type, implementation, atm_tr_index, param, flag,&
& mol_wt, ice_restart_file, ocean_restart_file, units, caller, verbosity) &
& result (coupler_index)
character(len=*), intent(in) :: name !< name
character(len=*), intent(in) :: flux_type !< flux_type
character(len=*), intent(in) :: implementation !< implementation
integer, intent(in), optional :: atm_tr_index !< atm_tr_index
real, intent(in), dimension(:), optional :: param !< param
real(FMS_CP_TYPE_), intent(in), dimension(:), optional :: param !< param
logical, intent(in), dimension(:), optional :: flag !< flag
real, intent(in), optional :: mol_wt !< mol_wt
real(FMS_CP_TYPE_), intent(in), optional :: mol_wt !< mol_wt
character(len=*), intent(in), optional :: ice_restart_file !< ice_restart_file
character(len=*), intent(in), optional :: ocean_restart_file !< ocean_restart_file
character(len=*), intent(in), optional :: units !< units
Expand Down Expand Up @@ -398,7 +339,7 @@ contains
endif

return
end function aof_set_coupler_flux
end function AOF_SET_COUPLER_FLUX_

!> @brief Initialize gas flux structures
!! @throw FATAL, "Could not get number of fluxes"
Expand Down
4 changes: 3 additions & 1 deletion coupler/include/coupler_types.inc
Original file line number Diff line number Diff line change
Expand Up @@ -614,7 +614,9 @@ contains

if (var%set)&
& call mpp_error(FATAL, trim(error_header) // ' The output type has already been initialized.')
if (.not.var_in%set)&
if (.not.var_in%set)&Crontab Explanation

As you can see, the crontab syntax has 5 asterisks. Here’s what each of those asterisk represent:
& call mpp_error(FATAL, trim(error_header) // ' The parent type has not been initialized.')

var%num_bcs = var_in%num_bcs
Expand Down

0 comments on commit 19ee83f

Please sign in to comment.