Changes between Version 14 and Version 15 of 2011WP/2011Stream2/OpenBoundaries
- Timestamp:
- 2011-03-29T14:57:18+02:00 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
2011WP/2011Stream2/OpenBoundaries
v14 v15 39 39 * It will be possible to define more than one open boundary set. This will 40 40 allow different boundary conditions to be applied on different boundaries. 41 41 42 == Questions == 43 44 * For the timesplitting solution for the free surface (ln_dynspg_ts=.true.) boundary conditions 45 are applied to the barotropic (nn_dyn2d) and baroclinic (nn_dyn3d) solutions separately. For 46 the filtered free surface should we insist that we apply barotropic and baroclinic boundary conditions 47 separately or do we allow boundary conditions to be applied to the full velocity field? 48 42 49 43 50 == Control and coding structure == … … 100 107 101 108 For each open boundary set you define which conditions to apply to each set of 102 variables using '''nn_dyn ''', '''nn_tra''' etc. For example:103 104 * '''nn_ tra''' = 0 : Apply no boundary condition (land boundary)105 * '''nn_ tra''' = 1 : Clamped/relaxation boundary condition106 * '''nn_ tra''' = 2 : Normalradiation condition107 * '''nn_ tra''' = 3 : NPOradiation condition108 * etc.109 variables using '''nn_dyn3d''', '''nn_tra''' etc. For example: 110 111 * '''nn_dyn3d''' = 0 : Apply no boundary condition (land boundary) 112 * '''nn_dyn3d''' = 1 : Clamped/relaxation boundary condition 113 * '''nn_dyn3d''' = 2 : Orlanski NPO radiation condition 114 * '''nn_dyn3d''' = 3 : Orlanski fully 2d radiation condition 115 * ''etc.'' 109 116 110 117 There is a separate '''&namobc_dta''' namelist for each boundary set, which … … 113 120 114 121 For each set of variables there is a module which applies the boundary 115 conditions each timestep, eg. for T and S you have '''obc tra.F90''' which looks122 conditions each timestep, eg. for T and S you have '''obcdyn3d.F90''' which looks 116 123 like this: 117 124 118 125 {{{ 119 MODULE obc tra126 MODULE obcdyn3d 120 127 121 128 CONTAINS 122 129 123 SUBROUTINE obc_ tra( kt )130 SUBROUTINE obc_dyn3d( kt ) 124 131 125 132 DO ib_set = 1, nb_set 126 133 127 SELECT CASE ( nn_tra(ib_set) ) 134 IF ( using Orlanski radiation ) THEN 135 CALL obc_rad( kt, ib_set ) 136 ENDIF 137 138 SELECT CASE ( nn_dyn3d(ib_set) ) 128 139 CASE(0) 129 140 CYCLE 130 141 CASE(1) 131 CALL obc_ tra_frs( kt, ib_set )142 CALL obc_dyn3d_frs( kt, ib_set ) 132 143 CASE(2) 133 CALL obc_tra_rad( kt, ib_set ) 144 CALL obc_dyn3d_orl( kt, ib_set ) 145 CASE(3) 146 CALL obc_dyn3d_orl( kt, ib_set ) 134 147 END SELECT 135 148 … … 138 151 END SUBROUTINE 139 152 140 SUBROUTINE obc_ tra_frs( kt, ib_set )153 SUBROUTINE obc_dyn3d_frs( kt, ib_set ) 141 154 ... 155 156 SUBROUTINE obc_dyn3d_orl( kt, ib_set ) 157 ... 158 142 159 }}} 143 160 … … 316 333 }}} 317 334 318 319 335 == Pseudo code for implementation of Orlanski radiation conditions using BDY-style arrays == 336 337 ... To be done ... 320 338