Changeset 3191
- Timestamp:
- 2011-12-05T10:41:41+01:00 (13 years ago)
- Location:
- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdy_oce.F90
r3116 r3191 7 7 !! 3.0 ! 2008-04 (NEMO team) add in the reference version 8 8 !! 3.3 ! 2010-09 (D. Storkey) add ice boundary conditions 9 !! 3.4 ! 2011 (D. Storkey , J. Chanut)OBC-BDY merge9 !! 3.4 ! 2011 (D. Storkey) rewrite in preparation for OBC-BDY merge 10 10 !!---------------------------------------------------------------------- 11 11 #if defined key_bdy … … 79 79 #endif 80 80 ! 81 INTEGER, DIMENSION(jp_bdy) :: nn_dmp2d_in ! Damping timescale (days) for 2D solution for inward radiation or FRS82 INTEGER, DIMENSION(jp_bdy) :: nn_dmp2d_out ! Damping timescale (days) for 2D solution for outward radiation83 INTEGER, DIMENSION(jp_bdy) :: nn_dmp3d_in ! Damping timescale (days) for 3D solution for inward radiation or FRS84 INTEGER, DIMENSION(jp_bdy) :: nn_dmp3d_out ! Damping timescale (days) for 3D solution for outward radiation85 86 81 87 82 !!---------------------------------------------------------------------- -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdy_par.F90
r3116 r3191 7 7 !! 3.0 ! 2008-04 (NEMO team) add in the reference version 8 8 !! 3.3 ! 2010-09 (D. Storkey and E. O'Dea) update for Shelf configurations 9 !! 3.4 ! 2011 (D. Storkey) rewrite in preparation for OBC-BDY merge 9 10 !!---------------------------------------------------------------------- 10 11 #if defined key_bdy -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90
r3186 r3191 10 10 !! 3.3 ! 2010-09 (E.O'Dea) modifications for Shelf configurations 11 11 !! 3.3 ! 2010-09 (D.Storkey) add ice boundary conditions 12 !! 3.4 ????????????????12 !! 3.4 ! 2011 (D. Storkey) rewrite in preparation for OBC-BDY merge 13 13 !!---------------------------------------------------------------------- 14 14 #if defined key_bdy -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn.F90
r3186 r3191 2 2 !!====================================================================== 3 3 !! *** MODULE bdydyn *** 4 !! Unstructured Open Boundary Cond. : Flow relaxation scheme onvelocities4 !! Unstructured Open Boundary Cond. : Apply boundary conditions to velocities 5 5 !!====================================================================== 6 6 !! History : 1.0 ! 2005-02 (J. Chanut, A. Sellar) Original code … … 10 10 !! 3.3 ! 2010-09 (E.O'Dea) modifications for Shelf configurations 11 11 !! 3.3 ! 2010-09 (D.Storkey) add ice boundary conditions 12 !! 3.4 ! 2011 (D. Storkey) rewrite in preparation for OBC-BDY merge 12 13 !!---------------------------------------------------------------------- 13 14 #if defined key_bdy … … 15 16 !! 'key_bdy' : Unstructured Open Boundary Condition 16 17 !!---------------------------------------------------------------------- 17 !! bdy_dyn3d : apply open boundary conditions to baroclinic velocities 18 !! bdy_dyn3d_frs : apply Flow Relaxation Scheme 18 !! bdy_dyn : split velocities into barotropic and baroclinic parts 19 !! and call bdy_dyn2d and bdy_dyn3d to apply boundary 20 !! conditions 19 21 !!---------------------------------------------------------------------- 20 22 USE wrk_nemo ! Memory Allocation -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn2d.F90
r3182 r3191 2 2 !!====================================================================== 3 3 !! *** MODULE bdydyn *** 4 !! Unstructured Open Boundary Cond. : Flow relaxation scheme on velocities4 !! Unstructured Open Boundary Cond. : Apply boundary conditions to barotropic solution 5 5 !!====================================================================== 6 !! History : 1.0 ! 2005-02 (J. Chanut, A. Sellar) Original code 7 !! - ! 2007-07 (D. Storkey) Move Flather implementation to separate routine. 8 !! 3.0 ! 2008-04 (NEMO team) add in the reference version 9 !! 3.2 ! 2008-04 (R. Benshila) consider velocity instead of transport 10 !! 3.3 ! 2010-09 (E.O'Dea) modifications for Shelf configurations 11 !! 3.3 ! 2010-09 (D.Storkey) add ice boundary conditions 6 !! History : 3.4 ! 2011 (D. Storkey) new module as part of BDY rewrite 12 7 !!---------------------------------------------------------------------- 13 8 #if defined key_bdy … … 30 25 PRIVATE 31 26 32 PUBLIC bdy_dyn2d ! routine called in dynspg_ts and dyn_nxt and dynspg_flt27 PUBLIC bdy_dyn2d ! routine called in dynspg_ts and bdy_dyn 33 28 34 29 !!---------------------------------------------------------------------- … … 60 55 CALL bdy_dyn2d_fla( idx_bdy(ib_bdy), dta_bdy(ib_bdy) ) 61 56 CASE DEFAULT 62 CALL ctl_stop( 'bdy_dyn 3d : unrecognised option for open boundaries for barotropic variables' )57 CALL ctl_stop( 'bdy_dyn2d : unrecognised option for open boundaries for barotropic variables' ) 63 58 END SELECT 64 59 ENDDO -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn3d.F90
r3182 r3191 2 2 !!====================================================================== 3 3 !! *** MODULE bdydyn3d *** 4 !! Unstructured Open Boundary Cond. : Flow relaxation scheme on velocities4 !! Unstructured Open Boundary Cond. : Flow relaxation scheme on baroclinic velocities 5 5 !!====================================================================== 6 !! History : 1.0 ! 2005-02 (J. Chanut, A. Sellar) Original code 7 !! - ! 2007-07 (D. Storkey) Move Flather implementation to separate routine. 8 !! 3.0 ! 2008-04 (NEMO team) add in the reference version 9 !! 3.2 ! 2008-04 (R. Benshila) consider velocity instead of transport 10 !! 3.3 ! 2010-09 (E.O'Dea) modifications for Shelf configurations 11 !! 3.3 ! 2010-09 (D.Storkey) add ice boundary conditions 6 !! History : 3.4 ! 2011 (D. Storkey) new module as part of BDY rewrite 12 7 !!---------------------------------------------------------------------- 13 8 #if defined key_bdy … … 28 23 PRIVATE 29 24 30 PUBLIC bdy_dyn3d ! routine called in dynspg_flt (free surface case ONLY)25 PUBLIC bdy_dyn3d ! routine called by bdy_dyn 31 26 32 27 !!---------------------------------------------------------------------- -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdyice_lim2.F90
r3182 r3191 2 2 !!====================================================================== 3 3 !! *** MODULE bdyice_lim2 *** 4 !! Unstructured Open Boundary Cond. : Flow Relaxation Scheme appliedsea-ice (LIM2)4 !! Unstructured Open Boundary Cond. : Open boundary conditions for sea-ice (LIM2) 5 5 !!====================================================================== 6 6 !! History : 3.3 ! 2010-09 (D. Storkey) Original code 7 !! 3.4 ! 2011 (D. Storkey) rewrite in preparation for OBC-BDY merge 7 8 !!---------------------------------------------------------------------- 8 9 #if defined key_bdy && defined key_lim2 … … 54 55 CALL bdy_ice_frs( idx_bdy(ib_bdy), dta_idx(ib_bdy) ) 55 56 CASE DEFAULT 56 CALL ctl_stop( 'bdy_ tra : unrecognised option for open boundaries for T an S' )57 CALL ctl_stop( 'bdy_ice_lim_2 : unrecognised option for open boundaries for ice fields' ) 57 58 END SELECT 58 59 ENDDO … … 105 106 CONTAINS 106 107 SUBROUTINE bdy_ice_lim_2( kt ) ! Empty routine 107 WRITE(*,*) 'bdy_ice_frs : You should not have seen this print! error?', kt108 WRITE(*,*) 'bdy_ice_frs_lim_2: You should not have seen this print! error?', kt 108 109 END SUBROUTINE bdy_ice_lim_2 109 110 #endif -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90
r3182 r3191 10 10 !! 3.3 ! 2010-09 (E.O'Dea) updates for Shelf configurations 11 11 !! 3.3 ! 2010-09 (D.Storkey) add ice boundary conditions 12 !! 3.4 ! 2011 (D. Storkey, J. Chanut) OBC-BDY merge 13 !! ! --- Renamed bdyini.F90 -> bdyini.F90 --- 12 !! 3.4 ! 2011 (D. Storkey) rewrite in preparation for OBC-BDY merge 14 13 !!---------------------------------------------------------------------- 15 14 #if defined key_bdy … … 31 30 PRIVATE 32 31 33 PUBLIC bdy_init ! routine called by opa.F9032 PUBLIC bdy_init ! routine called in nemo_init 34 33 35 34 !!---------------------------------------------------------------------- … … 84 83 & nn_ice_lim2, nn_ice_lim2_dta, & 85 84 #endif 86 & ln_vol, nn_volctl, & 87 & nn_rimwidth, nn_dmp2d_in, nn_dmp2d_out, & 88 & nn_dmp3d_in, nn_dmp3d_out 85 & ln_vol, nn_volctl, nn_rimwidth 89 86 !! 90 87 NAMELIST/nambdy_index/ nbdysege, jpieob, jpjedt, jpjeft, & … … 131 128 nn_volctl = -1 ! uninitialised flag 132 129 nn_rimwidth(:) = -1 ! uninitialised flag 133 nn_dmp2d_in(:) = -1 ! uninitialised flag134 nn_dmp2d_out(:) = -1 ! uninitialised flag135 nn_dmp3d_in(:) = -1 ! uninitialised flag136 nn_dmp3d_out(:) = -1 ! uninitialised flag137 130 138 131 REWIND( numnam ) … … 562 555 IF( nbrdta(ib,igrd,ib_bdy) < nbrdta(ibm1,igrd,ib_bdy) ) THEN 563 556 CALL ctl_stop('bdy_init : ERROR : boundary data in file must be defined in order of distance from edge nbr.', & 564 'A utility for re-ordering boundary coordinates and data files exists in CDFTOOLS')557 'A utility for re-ordering boundary coordinates and data files exists in the TOOLS/OBC directory') 565 558 ENDIF 566 559 ENDIF -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdytides.F90
r3182 r3191 8 8 !! 3.0 ! 2008-04 (NEMO team) add in the reference version 9 9 !! 3.3 ! 2010-09 (D.Storkey and E.O'Dea) bug fixes 10 !! 3.4 ! 2011 (D. Storkey) rewrite in preparation for OBC-BDY merge 10 11 !!---------------------------------------------------------------------- 11 12 #if defined key_bdy -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdytra.F90
r3182 r3191 2 2 !!====================================================================== 3 3 !! *** MODULE bdytra *** 4 !! Ocean tracers: Flow Relaxation Scheme of tracers on each open boundary4 !! Ocean tracers: Apply boundary conditions for tracers 5 5 !!====================================================================== 6 6 !! History : 1.0 ! 2005-01 (J. Chanut, A. Sellar) Original code 7 7 !! 3.0 ! 2008-04 (NEMO team) add in the reference version 8 !! 3.4 ! 2011 (D. Storkey) rewrite in preparation for OBC-BDY merge 8 9 !!---------------------------------------------------------------------- 9 10 #if defined key_bdy … … 36 37 SUBROUTINE bdy_tra( kt ) 37 38 !!---------------------------------------------------------------------- 38 !! *** SUBROUTINE bdy_ dyn3d***39 !! *** SUBROUTINE bdy_tra *** 39 40 !! 40 !! ** Purpose : - Apply open boundary conditions for baroclinic velocities41 !! ** Purpose : - Apply open boundary conditions for temperature and salinity 41 42 !! 42 43 !!---------------------------------------------------------------------- -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdyvol.F90
r3182 r3191 3 3 !! *** MODULE bdyvol *** 4 4 !! Ocean dynamic : Volume constraint when unstructured boundary 5 !! and Free surface are used5 !! and filtered free surface are used 6 6 !!====================================================================== 7 7 !! History : 1.0 ! 2005-01 (J. Chanut, A. Sellar) Original code 8 8 !! - ! 2006-01 (J. Chanut) Bug correction 9 9 !! 3.0 ! 2008-04 (NEMO team) add in the reference version 10 !! 3.4 ! 2011 (D. Storkey) rewrite in preparation for OBC-BDY merge 10 11 !!---------------------------------------------------------------------- 11 12 #if defined key_bdy && defined key_dynspg_flt -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
r3186 r3191 132 132 INTEGER :: isecend ! number of second since Jan. 1st 00h of nit000 year at nitend 133 133 INTEGER :: isecsbc ! number of seconds between Jan. 1st 00h of nit000 year and the middle of sbc time step 134 INTEGER :: time_add ! local time_offset variable134 INTEGER :: itime_add ! local time offset variable 135 135 LOGICAL :: llnxtyr ! open next year file? 136 136 LOGICAL :: llnxtmth ! open next month file? … … 148 148 ENDIF 149 149 150 time_add = 0 151 IF( PRESENT(time_offset) ) THEN 152 time_add = time_offset 153 ENDIF 150 itime_add = 0 151 IF( PRESENT(time_offset) ) itime_add = time_offset 154 152 155 153 ! Note that shifting time to be centrered in the middle of sbc time step impacts only nsec_* variables of the calendar 156 154 IF( present(jit) ) THEN 157 155 ! ignore kn_fsbc in this case 158 isecsbc = nsec_year + nsec1jan000 + (jit+ time_add)*rdt/REAL(nn_baro,wp)156 isecsbc = nsec_year + nsec1jan000 + (jit+itime_add)*rdt/REAL(nn_baro,wp) 159 157 ELSE 160 isecsbc = nsec_year + nsec1jan000 + NINT(0.5 * REAL(kn_fsbc - 1,wp) * rdttra(1)) + time_add * rdttra(1) ! middle of sbc time step158 isecsbc = nsec_year + nsec1jan000 + NINT(0.5 * REAL(kn_fsbc - 1,wp) * rdttra(1)) + itime_add * rdttra(1) ! middle of sbc time step 161 159 ENDIF 162 160 imf = SIZE( sd ) … … 190 188 191 189 IF( PRESENT(jit) ) THEN 192 CALL fld_rec( kn_fsbc, sd(jf), jit=jit ) ! update record informations190 CALL fld_rec( kn_fsbc, sd(jf), time_offset=itime_add, jit=jit ) ! update record informations 193 191 ELSE 194 CALL fld_rec( kn_fsbc, sd(jf) ) ! update record informations192 CALL fld_rec( kn_fsbc, sd(jf), time_offset=itime_add ) ! update record informations 195 193 ENDIF 196 194 … … 273 271 WRITE(numout, clfmt) TRIM( sd(jf)%clvar ), kt, REAL(isecsbc,wp)/rday, nyear, nmonth, nday, & 274 272 & sd(jf)%nrec_b(1), sd(jf)%nrec_a(1), REAL(sd(jf)%nrec_b(2),wp)/rday, REAL(sd(jf)%nrec_a(2),wp)/rday 275 WRITE(numout, *) ' time_add is : ',time_add273 WRITE(numout, *) 'itime_add is : ',itime_add 276 274 ENDIF 277 275 ! temporal interpolation weights … … 448 446 449 447 450 SUBROUTINE fld_rec( kn_fsbc, sdjf, ldbefore, jit )448 SUBROUTINE fld_rec( kn_fsbc, sdjf, ldbefore, jit, time_offset ) 451 449 !!--------------------------------------------------------------------- 452 450 !! *** ROUTINE fld_rec *** … … 464 462 INTEGER , INTENT(in ), OPTIONAL :: jit ! index of barotropic subcycle 465 463 ! used only if sdjf%ln_tint = .TRUE. 464 INTEGER , INTENT(in ), OPTIONAL :: time_offset ! Offset of required time level compared to "now" 465 ! time level in units of time steps. 466 466 !! 467 467 LOGICAL :: llbefore ! local definition of ldbefore … … 470 470 INTEGER :: ifreq_sec ! frequency mean (in seconds) 471 471 INTEGER :: isec_week ! number of seconds since the start of the weekly file 472 INTEGER :: itime_add ! local time offset variable 472 473 REAL(wp) :: ztmp ! temporary variable 473 474 !!---------------------------------------------------------------------- … … 478 479 ELSE ; llbefore = .FALSE. 479 480 ENDIF 481 ! 482 itime_add = 0 483 IF( PRESENT(time_offset) ) itime_add = time_offset 480 484 ! 481 485 ! ! =========== ! … … 496 500 ! 497 501 ztmp = REAL( nday, wp ) / REAL( nyear_len(1), wp ) + 0.5 498 IF( PRESENT(jit) ) ztmp = ztmp + jit*rdt/REAL(nn_baro,wp) 502 IF( PRESENT(jit) ) THEN 503 ztmp = ztmp + (jit+itime_add)*rdt/REAL(nn_baro,wp) 504 ELSE 505 ztmp = ztmp + itime_add*rdttra(1) 506 ENDIF 499 507 sdjf%nrec_a(1) = 1 + INT( ztmp ) - COUNT((/llbefore/)) 500 508 ! swap at the middle of the year … … 525 533 ! 526 534 ztmp = REAL( nday, wp ) / REAL( nmonth_len(nmonth), wp ) + 0.5 527 IF( PRESENT(jit) ) ztmp = ztmp + jit*rdt/REAL(nn_baro,wp) 535 IF( PRESENT(jit) ) THEN 536 ztmp = ztmp + (jit+itime_add)*rdt/REAL(nn_baro,wp) 537 ELSE 538 ztmp = ztmp + itime_add*rdttra(1) 539 ENDIF 528 540 imth = nmonth + INT( ztmp ) - COUNT((/llbefore/)) 529 541 IF( sdjf%cltype == 'monthly' ) THEN ; sdjf%nrec_a(1) = 1 + INT( ztmp ) - COUNT((/llbefore/)) … … 553 565 ztmp = ztmp + 0.5 * REAL(kn_fsbc - 1, wp) * rdttra(1) ! shift time to be centrered in the middle of sbc time step 554 566 ztmp = ztmp + 0.01 * rdttra(1) ! add 0.01 time step to avoid truncation error 555 IF( PRESENT(jit) ) ztmp = ztmp + jit*rdt/REAL(nn_baro,wp) 567 IF( PRESENT(jit) ) THEN 568 ztmp = ztmp + (jit+itime_add)*rdt/REAL(nn_baro,wp) 569 ELSE 570 ztmp = ztmp + itime_add*rdttra(1) 571 ENDIF 556 572 IF( sdjf%ln_tint ) THEN ! time interpolation, shift by 1/2 record 557 573 !
Note: See TracChangeset
for help on using the changeset viewer.