New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 6079 for branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90 – NEMO

Ignore:
Timestamp:
2015-12-17T11:08:49+01:00 (8 years ago)
Author:
jamesharle
Message:

merge to trunk@5936

Location:
branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/NEMO/OPA_SRC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/NEMO/OPA_SRC

    • Property svn:mergeinfo deleted
  • branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90

    r5620 r6079  
    2929   USE iom             ! IOM library 
    3030   USE in_out_manager  ! I/O logical units 
    31    USE dynspg_oce, ONLY: lk_dynspg_ts ! Split-explicit free surface flag 
    3231#if defined key_lim2 
    3332   USE ice_2 
     
    393392      END DO  ! ib_bdy 
    394393 
    395       ! bg jchanut tschanges 
    396394#if defined key_tide 
    397       ! Add tides if not split-explicit free surface else this is done in ts loop 
    398       IF (.NOT.lk_dynspg_ts) CALL bdy_dta_tides( kt=kt, time_offset=time_offset ) 
    399 #endif 
    400       ! end jchanut tschanges 
     395      IF (ln_dynspg_ts) THEN      ! Fill temporary arrays with slow-varying bdy data                            
     396         DO ib_bdy = 1, nb_bdy    ! Tidal component added in ts loop 
     397            IF ( nn_dyn2d_dta(ib_bdy) .ge. 2 ) THEN 
     398               nblen => idx_bdy(ib_bdy)%nblen 
     399               nblenrim => idx_bdy(ib_bdy)%nblenrim 
     400               IF( cn_dyn2d(ib_bdy) == 'frs' ) THEN; ilen1(:)=nblen(:) ; ELSE ; ilen1(:)=nblenrim(:) ; ENDIF  
     401               IF ( dta_bdy(ib_bdy)%ll_ssh ) dta_bdy_s(ib_bdy)%ssh(1:ilen1(1)) = dta_bdy(ib_bdy)%ssh(1:ilen1(1)) 
     402               IF ( dta_bdy(ib_bdy)%ll_u2d ) dta_bdy_s(ib_bdy)%u2d(1:ilen1(2)) = dta_bdy(ib_bdy)%u2d(1:ilen1(2)) 
     403               IF ( dta_bdy(ib_bdy)%ll_v2d ) dta_bdy_s(ib_bdy)%v2d(1:ilen1(3)) = dta_bdy(ib_bdy)%v2d(1:ilen1(3)) 
     404            ENDIF 
     405         END DO 
     406      ELSE ! Add tides if not split-explicit free surface else this is done in ts loop 
     407         ! 
     408         CALL bdy_dta_tides( kt=kt, time_offset=time_offset ) 
     409      ENDIF 
     410#endif 
    401411 
    402412      IF ( ln_apr_obc ) THEN 
     
    428438      !!                 
    429439      !!---------------------------------------------------------------------- 
    430       USE dynspg_oce, ONLY: lk_dynspg_ts 
    431440      !! 
    432441      INTEGER     ::  ib_bdy, jfld, jstart, jend, ierror  ! local indices 
     
    435444      CHARACTER(len=100)                     ::   cn_dir        ! Root directory for location of data files 
    436445      CHARACTER(len=100), DIMENSION(nb_bdy)  ::   cn_dir_array  ! Root directory for location of data files 
     446      CHARACTER(len = 256)::   clname                           ! temporary file name 
    437447      LOGICAL                                ::   ln_full_vel   ! =T => full velocities in 3D boundary data 
    438448                                                                ! =F => baroclinic velocities in 3D boundary data 
     
    675685            ! sea ice 
    676686            IF( nn_ice_lim_dta(ib_bdy) .eq. 1 ) THEN 
    677  
    678687               ! Test for types of ice input (lim2 or lim3)  
    679                CALL iom_open ( bn_a_i%clname, inum ) 
    680                id1 = iom_varid ( inum, bn_a_i%clvar, kdimsz=zdimsz, kndims=zndims, ldstop = .FALSE. ) 
     688               ! Build file name to find dimensions  
     689               clname=TRIM(bn_a_i%clname) 
     690               IF( .NOT. bn_a_i%ln_clim ) THEN    
     691                                                  WRITE(clname, '(a,"_y",i4.4)' ) TRIM( bn_a_i%clname ), nyear    ! add year 
     692                  IF( bn_a_i%cltype /= 'yearly' ) WRITE(clname, '(a,"m" ,i2.2)' ) TRIM( clname        ), nmonth   ! add month 
     693               ELSE 
     694                  IF( bn_a_i%cltype /= 'yearly' ) WRITE(clname, '(a,"_m",i2.2)' ) TRIM( bn_a_i%clname ), nmonth   ! add month 
     695               ENDIF 
     696               IF( bn_a_i%cltype == 'daily' .OR. bn_a_i%cltype(1:4) == 'week' ) & 
     697               &                                  WRITE(clname, '(a,"d" ,i2.2)' ) TRIM( clname        ), nday     ! add day 
     698               ! 
     699               CALL iom_open  ( clname, inum ) 
     700               id1 = iom_varid( inum, bn_a_i%clvar, kdimsz=zdimsz, kndims=zndims, ldstop = .FALSE. ) 
    681701               CALL iom_close ( inum ) 
    682                !CALL fld_clopn ( bn_a_i, nyear, nmonth, nday, ldstop=.TRUE. ) 
    683                !CALL iom_open ( bn_a_i%clname, inum ) 
    684                !id1 = iom_varid ( bn_a_i%num, bn_a_i%clvar, kdimsz=zdimsz, kndims=zndims, ldstop = .FALSE. ) 
     702 
    685703                IF ( zndims == 4 ) THEN 
    686704                 ll_bdylim3 = .TRUE.   ! lim3 input 
Note: See TracChangeset for help on using the changeset viewer.