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

Ignore:
Timestamp:
2018-02-28T16:29:13+01:00 (6 years ago)
Author:
andmirek
Message:

#2050 first version. Compiled OK in moci test suite

File:
1 edited

Legend:

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

    r8243 r9366  
    4343   PUBLIC   bdy_dta          ! routine called by step.F90 and dynspg_ts.F90 
    4444   PUBLIC   bdy_dta_init     ! routine called by nemogcm.F90 
     45   PRIVATE  dta_namelist 
    4546 
    4647   INTEGER, ALLOCATABLE, DIMENSION(:)   ::   nb_bdy_fld        ! Number of fields to update for each boundary set. 
     
    524525      ! Read namelists 
    525526      ! -------------- 
    526       REWIND(numnam_ref) 
    527       REWIND(numnam_cfg) 
     527      IF(lwm) THEN 
     528         REWIND(numnam_ref) 
     529         REWIND(numnam_cfg) 
     530      ENDIF 
    528531      jfld = 0  
    529532      DO ib_bdy = 1, nb_bdy          
    530533         IF( nn_dta(ib_bdy) .eq. 1 ) THEN 
    531             READ  ( numnam_ref, nambdy_dta, IOSTAT = ios, ERR = 901) 
    532 901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in reference namelist', lwp ) 
    533  
    534             READ  ( numnam_cfg, nambdy_dta, IOSTAT = ios, ERR = 902 ) 
    535 902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwp ) 
     534            IF(lwm) THEN 
     535               READ  ( numnam_ref, nambdy_dta, IOSTAT = ios, ERR = 901) 
     536901            IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in reference namelist', lwm ) 
     537               READ  ( numnam_cfg, nambdy_dta, IOSTAT = ios, ERR = 902 ) 
     538902            IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwm ) 
     539            ENDIF 
     540 
    536541            IF(lwm) WRITE ( numond, nambdy_dta ) 
     542 
     543            CALL dta_namelist(cn_dir, bn_tem, bn_sal, bn_u3d, bn_v3d, bn_ssh, bn_u2d, bn_v2d, ln_full_vel) 
     544 
     545#if defined key_lim2 
     546            CALL lim_namelist(bn_frld, bn_hicif, bn_hsnif) 
     547#elif defined key_lim3 
     548            CALL lim_namelist(bn_a_i, bn_ht_i, bn_ht_s) 
     549#endif 
    537550 
    538551            cn_dir_array(ib_bdy) = cn_dir 
     
    899912 
    900913      END SUBROUTINE bdy_dta_init 
     914 
     915   SUBROUTINE dta_namelist(cd_dir, bd_tem, bd_sal, bd_u3d, bd_v3d, bd_ssh, & 
     916            &              bd_u2d, bd_v2d, ln_full_vel) 
     917     !!--------------------------------------------------------------------- 
     918     !!                   ***  ROUTINE dta_namelist  *** 
     919     !!                      
     920     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     921     !! 
     922     !! ** Method  :   use lib_mpp 
     923     !!---------------------------------------------------------------------- 
     924      CHARACTER(len=100) ::   cd_dir 
     925      TYPE(FLD_N)        ::   bd_tem, bd_sal, bd_u3d, bd_v3d   !  
     926      TYPE(FLD_N)        ::   bd_ssh, bd_u2d, bd_v2d 
     927#if defined key_mpp_mpi 
     928      CALL mpp_bcast(cd_dir, 100) 
     929      CALL fld_n_bcast(bd_tem) 
     930      CALL fld_n_bcast(bd_sal) 
     931      CALL fld_n_bcast(bd_u3d) 
     932      CALL fld_n_bcast(bd_v3d) 
     933      CALL fld_n_bcast(bd_ssh) 
     934      CALL fld_n_bcast(bd_u2d) 
     935      CALL fld_n_bcast(bd_v2d) 
     936      CALL mpp_bcast(ln_bdy_sio) 
     937      CALL mpp_bcast(ln_full_vel) 
     938#endif 
     939   END SUBROUTINE dta_namelist 
     940 
     941   SUBROUTINE lim_namelist(bd_1, bd_2, bd_3) 
     942     !!--------------------------------------------------------------------- 
     943     !!                   ***  ROUTINE lim_namelist  *** 
     944     !!                      
     945     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     946     !! 
     947     !! ** Method  :   use lib_mpp 
     948     !!---------------------------------------------------------------------- 
     949      TYPE(FLD_N) ::   bd_1, bd_2, bd_3 
     950#if defined key_mpp_mpi 
     951      CALL fld_n_bcast(bd_1) 
     952      CALL fld_n_bcast(bd_2) 
     953      CALL fld_n_bcast(bd_3) 
     954#endif 
     955   END SUBROUTINE lim_namelist 
    901956 
    902957#else 
Note: See TracChangeset for help on using the changeset viewer.