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 10253 for branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90 – NEMO

Ignore:
Timestamp:
2018-10-29T15:55:40+01:00 (5 years ago)
Author:
kingr
Message:

Merged AMM15_v3_6_STABLE_package_collate@10237

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90

    r10251 r10253  
    3737#endif 
    3838   USE sbcapr 
     39#if defined key_top 
     40   USE par_trc 
     41   USE trc, ONLY: trn 
     42#endif 
    3943 
    4044   IMPLICIT NONE 
     
    394398#endif 
    395399      ! end jchanut tschanges 
     400       
     401       
     402      !JT use sshn (ssh now) if ln_ssh_bdy set to false in the name list 
     403      DO ib_bdy = 1, nb_bdy    
     404        nblen => idx_bdy(ib_bdy)%nblen 
     405        dta => dta_bdy(ib_bdy) 
     406          
     407        ilen1(:) = nblen(:) 
     408        !JT IF( .NOT. dta%ll_ssh ) THEN  
     409        IF( .NOT. ln_ssh_bdy(ib_bdy) ) THEN  
     410          igrd = 1 ! t Grid 
     411          DO ib = 1, ilen1(igrd) 
     412              ii = idx_bdy(ib_bdy)%nbi(ib,igrd) 
     413              ij = idx_bdy(ib_bdy)%nbj(ib,igrd) 
     414              dta_bdy(ib_bdy)%ssh(ib) = sshn(ii,ij) * tmask(ii,ij,1)          
     415          END DO  
     416        END IF 
     417      END DO  
    396418 
    397419      IF ( ln_apr_obc ) THEN 
     
    430452      CHARACTER(len=100)                     ::   cn_dir        ! Root directory for location of data files 
    431453      CHARACTER(len=100), DIMENSION(nb_bdy)  ::   cn_dir_array  ! Root directory for location of data files 
     454      CHARACTER(len = 256)::   clname                           ! temporary file name 
    432455      LOGICAL                                ::   ln_full_vel   ! =T => full velocities in 3D boundary data 
    433456                                                                ! =F => baroclinic velocities in 3D boundary data 
     
    669692            ! sea ice 
    670693            IF( nn_ice_lim_dta(ib_bdy) .eq. 1 ) THEN 
    671  
    672                ! Test for types of ice input (lim2 or lim3)  
    673                CALL iom_open ( bn_a_i%clname, inum ) 
    674                id1 = iom_varid ( inum, bn_a_i%clvar, kdimsz=zdimsz, kndims=zndims, ldstop = .FALSE. ) 
     694               ! Test for types of ice input (lim2 or lim3) 
     695               ! Build file name to find dimensions  
     696               clname=TRIM(bn_a_i%clname) 
     697               IF( .NOT. bn_a_i%ln_clim ) THEN    
     698                                                  WRITE(clname, '(a,"_y",i4.4)' ) TRIM( bn_a_i%clname ), nyear    ! add year 
     699                  IF( bn_a_i%cltype /= 'yearly' ) WRITE(clname, '(a,"m" ,i2.2)' ) TRIM( clname        ), nmonth   ! add month 
     700               ELSE 
     701                  IF( bn_a_i%cltype /= 'yearly' ) WRITE(clname, '(a,"_m",i2.2)' ) TRIM( bn_a_i%clname ), nmonth   ! add month 
     702               ENDIF 
     703               IF( bn_a_i%cltype == 'daily' .OR. bn_a_i%cltype(1:4) == 'week' ) & 
     704               &                                  WRITE(clname, '(a,"d" ,i2.2)' ) TRIM( clname        ), nday     ! add day 
     705               ! 
     706               CALL iom_open  ( clname, inum ) 
     707               id1 = iom_varid( inum, bn_a_i%clvar, kdimsz=zdimsz, kndims=zndims, ldstop = .FALSE. ) 
    675708               CALL iom_close ( inum ) 
    676                !CALL fld_clopn ( bn_a_i, nyear, nmonth, nday, ldstop=.TRUE. ) 
    677                !CALL iom_open ( bn_a_i%clname, inum ) 
    678                !id1 = iom_varid ( bn_a_i%num, bn_a_i%clvar, kdimsz=zdimsz, kndims=zndims, ldstop = .FALSE. ) 
     709 
    679710                IF ( zndims == 4 ) THEN 
    680711                 ll_bdylim3 = .TRUE.   ! lim3 input 
     
    773804            IF( dta%ll_v2d ) ALLOCATE( dta%v2d(nblen(3)) ) 
    774805         ENDIF 
    775          IF ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) THEN 
    776             IF( dta%ll_ssh ) THEN 
    777                if(lwp) write(numout,*) '++++++ dta%ssh pointing to fnow' 
    778                jfld = jfld + 1 
    779                dta%ssh => bf(jfld)%fnow(:,1,1) 
    780             ENDIF 
     806         IF ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) THEN          
     807            !JT  
     808            !JT allocate ssh if dta%ll_ssh set too false, as may still use it 
     809            IF (dta%ll_ssh) THEN 
     810                IF( dta%ll_ssh ) THEN 
     811                  if(lwp) write(numout,*) '++++++ dta%ssh pointing to fnow' 
     812                  jfld = jfld + 1 
     813                  dta%ssh => bf(jfld)%fnow(:,1,1) 
     814                ENDIF 
     815            ELSE 
     816              if(lwp) write(numout,*) '++++++ dta%ssh allocated space' 
     817              !ALLOCATE( dta_bdy(ib_bdy)%ssh(nblen(1)) )             
     818              ALLOCATE( dta%ssh(nblen(1)) )             
     819            ENDIF 
     820            !JT if  
     821             
    781822            IF ( dta%ll_u2d ) THEN 
    782823               IF ( ln_full_vel_array(ib_bdy) ) THEN 
Note: See TracChangeset for help on using the changeset viewer.