FV3-JEDI
fv3jedi_gfs_mod.f90
Go to the documentation of this file.
1 ! (C) Copyright 2017-2018 UCAR
2 !
3 ! This software is licensed under the terms of the Apache Licence Version 2.0
4 ! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
5 
7 
8 use iso_c_binding
9 use fckit_configuration_module, only: fckit_configuration
10 use datetime_mod
11 use duration_mod
12 use netcdf
13 
18 
19 use fv3gfs_cap_mod, only: fv3ss => setservices
20 use esmf
21 
22 implicit none
23 private
24 
25 public :: gfs_model
26 public :: gfs_create
27 public :: gfs_delete
28 public :: gfs_initialize
29 public :: gfs_step
30 public :: gfs_finalize
31 
32 ! ------------------------------------------------------------------------------
33 
34 !> Fortran derived type to hold model definition
35 type :: gfs_model
36  integer :: gfs_goes_here
37 end type gfs_model
38 
39 ! ------------------------------------------------------------------------------
40 
41 contains
42 
43 ! ------------------------------------------------------------------------------
44 
45 subroutine gfs_create(self, geom, c_conf)
46 
47 implicit none
48 type(c_ptr), intent(in) :: c_conf
49 type(gfs_model), intent(inout) :: self
50 type(fv3jedi_geom), intent(in) :: geom
51 
52 end subroutine gfs_create
53 
54 ! ------------------------------------------------------------------------------
55 
56 subroutine gfs_delete(self)
57 
58 implicit none
59 type(gfs_model), intent(inout) :: self
60 
61 end subroutine gfs_delete
62 
63 ! ------------------------------------------------------------------------------
64 
65 subroutine gfs_initialize(self, state)
66 
67 implicit none
68 type(gfs_model), target :: self
69 type(fv3jedi_state) :: state
70 
71 end subroutine gfs_initialize
72 
73 ! ------------------------------------------------------------------------------
74 
75 subroutine gfs_step(self, state, vdate)
76 
77 implicit none
78 type(gfs_model), intent(inout) :: self
79 type(fv3jedi_state), intent(inout) :: state
80 type(datetime), intent(in) :: vdate !< Valid datetime after step
81 
82 call state_to_gfs( state, self )
83 
84 !call advance gfs
85 
86 call gfs_to_state( self, state )
87 
88 end subroutine gfs_step
89 
90 ! ------------------------------------------------------------------------------
91 
92 subroutine gfs_finalize(self, state)
93 
94 implicit none
95 type(gfs_model), target :: self
96 type(fv3jedi_state) :: state
97 
98 end subroutine gfs_finalize
99 
100 ! ------------------------------------------------------------------------------
101 
102 subroutine state_to_gfs( state, self )
103 
104 implicit none
105 type(fv3jedi_state), intent(in) :: state
106 type(gfs_model), intent(inout) :: self
107 
108 end subroutine state_to_gfs
109 
110 ! ------------------------------------------------------------------------------
111 
112 subroutine gfs_to_state( self, state )
113 
114 implicit none
115 type(gfs_model), intent(in) :: self
116 type(fv3jedi_state), intent(inout) :: state
117 
118 end subroutine gfs_to_state
119 
120 ! ------------------------------------------------------------------------------
121 
122 end module fv3jedi_gfs_mod
fv3jedi_gfs_mod::gfs_model
Fortran derived type to hold model definition.
Definition: fv3jedi_gfs_mod.f90:35
fv3jedi_state_mod::fv3jedi_state
Fortran derived type to hold FV3JEDI state.
Definition: fv3jedi_state_mod.F90:30
fv3jedi_gfs_mod::gfs_to_state
subroutine gfs_to_state(self, state)
Definition: fv3jedi_gfs_mod.f90:113
fv3jedi_state_mod
Definition: fv3jedi_state_mod.F90:6
fv3jedi_geom_mod
Fortran module handling geometry for the FV3 model.
Definition: fv3jedi_geom_mod.f90:8
fv3jedi_increment_mod
Definition: fv3jedi_increment_mod.F90:6
fv3jedi_gfs_mod::gfs_delete
subroutine, public gfs_delete(self)
Definition: fv3jedi_gfs_mod.f90:57
fv3jedi_geom_mod::fv3jedi_geom
Fortran derived type to hold geometry data for the FV3JEDI model.
Definition: fv3jedi_geom_mod.f90:46
fv3jedi_gfs_mod::gfs_step
subroutine, public gfs_step(self, state, vdate)
Definition: fv3jedi_gfs_mod.f90:76
fv3jedi_gfs_mod::gfs_finalize
subroutine, public gfs_finalize(self, state)
Definition: fv3jedi_gfs_mod.f90:93
fv3jedi_gfs_mod::gfs_create
subroutine, public gfs_create(self, geom, c_conf)
Definition: fv3jedi_gfs_mod.f90:46
fv3jedi_kinds_mod
Definition: fv3jedi_kinds_mod.f90:6
fv3jedi_gfs_mod
Definition: fv3jedi_gfs_mod.f90:6
fv3jedi_gfs_mod::gfs_initialize
subroutine, public gfs_initialize(self, state)
Definition: fv3jedi_gfs_mod.f90:66
fv3jedi_increment_mod::fv3jedi_increment
Definition: fv3jedi_increment_mod.F90:34
fv3jedi_gfs_mod::state_to_gfs
subroutine state_to_gfs(state, self)
Definition: fv3jedi_gfs_mod.f90:103