Changes between Version 14 and Version 15 of 2011WP/2011Stream2/Open Boundaries


Ignore:
Timestamp:
2011-03-29T14:57:18+02:00 (10 years ago)
Author:
davestorkey
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • 2011WP/2011Stream2/Open Boundaries

    v14 v15  
    3939 * It will be possible to define more than one open boundary set. This will 
    4040   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 
    4249    
    4350== Control and coding structure == 
     
    100107 
    101108For 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 condition 
    106  * '''nn_tra''' = 2 : Normal radiation condition 
    107  * '''nn_tra''' = 3 : NPO radiation condition 
    108  * etc. 
     109variables 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.'' 
    109116         
    110117There is a separate '''&namobc_dta''' namelist for each boundary set, which 
     
    113120 
    114121For each set of variables there is a module which applies the boundary 
    115 conditions each timestep, eg. for T and S you have '''obctra.F90''' which looks 
     122conditions each timestep, eg. for T and S you have '''obcdyn3d.F90''' which looks 
    116123like this: 
    117124 
    118125{{{ 
    119    MODULE obctra 
     126   MODULE obcdyn3d 
    120127 
    121128CONTAINS 
    122129    
    123    SUBROUTINE obc_tra( kt )  
     130   SUBROUTINE obc_dyn3d( kt )  
    124131    
    125132   DO ib_set = 1, nb_set 
    126133 
    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) ) 
    128139      CASE(0) 
    129140         CYCLE 
    130141      CASE(1) 
    131          CALL obc_tra_frs( kt, ib_set ) 
     142         CALL obc_dyn3d_frs( kt, ib_set ) 
    132143      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 )  
    134147      END SELECT 
    135148   
     
    138151   END SUBROUTINE 
    139152    
    140    SUBROUTINE obc_tra_frs( kt, ib_set ) 
     153   SUBROUTINE obc_dyn3d_frs( kt, ib_set ) 
    141154   ... 
     155 
     156   SUBROUTINE obc_dyn3d_orl( kt, ib_set ) 
     157   ... 
     158 
    142159}}} 
    143160 
     
    316333}}} 
    317334 
    318  
    319  
     335== Pseudo code for implementation of Orlanski radiation conditions using BDY-style arrays == 
     336 
     337... To be done ... 
    320338