Changeset 3476


Ignore:
Timestamp:
2012-09-24T17:06:21+02:00 (8 years ago)
Author:
charris
Message:

#953 Changes to ensure CICE interface will work in regional as well as global configurations.

Location:
branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90

    r3332 r3476  
    88   !!---------------------------------------------------------------------- 
    99   USE dom_oce          ! ocean space and time domain variables 
     10#if defined key_nemocice_decomp 
     11   USE ice_domain_size, only: nx_global, ny_global 
     12#endif 
    1013   USE in_out_manager   ! I/O manager 
    1114   USE lib_mpp          ! distributed memory computing 
     
    431434      !  array (cf. par_oce.F90). 
    432435 
     436#if defined key_nemocice_decomp 
     437      ijpi = ( nx_global+2-2*jpreci + (isplt-1) ) / isplt + 2*jpreci 
     438      ijpj = ( ny_global+2-2*jprecj + (jsplt-1) ) / jsplt + 2*jprecj  
     439#else 
    433440      ijpi = ( jpiglo-2*jpreci + (isplt-1) ) / isplt + 2*jpreci 
    434 #if defined key_nemocice_decomp 
    435       ijpj = ( jpjglo+1-2*jprecj + (jsplt-1) ) / jsplt + 2*jprecj  
    436 #else 
    437441      ijpj = ( jpjglo-2*jprecj + (jsplt-1) ) / jsplt + 2*jprecj 
    438442#endif 
  • branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r3356 r3476  
    6060   PUBLIC cice_sbc_final  ! routine called by sbc_final 
    6161   PUBLIC sbc_ice_cice    ! routine called by sbc 
     62 
     63   INTEGER , PARAMETER ::   ji_off = INT ( (jpiglo - nx_global) / 2 ) 
     64   INTEGER , PARAMETER ::   jj_off = INT ( (jpjglo - ny_global) / 2 ) 
    6265 
    6366   INTEGER , PARAMETER ::   jpfld   = 13   ! maximum number of files to read  
     
    806809      REAL(wp), DIMENSION(jpi,jpj) :: pn 
    807810#if !defined key_nemocice_decomp 
     811      REAL(wp), DIMENSION(jpiglo,jpjglo) :: png2 
    808812      REAL (kind=dbl_kind), dimension(nx_global,ny_global) :: pcg 
    809813#endif 
     
    824828      ! Copy local domain data from NEMO to CICE field 
    825829      pc(:,:,1)=0.0 
    826       DO jj=2,ny_block 
    827          DO ji=2,nx_block 
    828             pc(ji,jj,1)=pn(ji,jj-1) 
     830      DO jj=2,ny_block-1 
     831         DO ji=2,nx_block-1 
     832            pc(ji,jj,1)=pn(ji-1+ji_off,jj-1+jj_off) 
    829833         ENDDO 
    830834      ENDDO 
     
    850854!        pcg(:,:)=0.0 
    851855         DO jn=1,jpnij 
    852             DO jj=1,nlcjt(jn)-1 
    853                DO ji=2,nlcit(jn)-1 
    854                   pcg(ji+nimppt(jn)-2,jj+njmppt(jn)-1)=png(ji,jj,jn)        
     856            DO jj=nldjt(jn),nlejt(jn) 
     857               DO ji=nldit(jn),nleit(jn) 
     858                  png2(ji+nimppt(jn)-1,jj+njmppt(jn)-1)=png(ji,jj,jn) 
    855859               ENDDO 
     860            ENDDO 
     861         ENDDO 
     862         DO jj=1,ny_global 
     863            DO ji=1,nx_global 
     864               pcg(ji,jj)=png2(ji+ji_off,jj+jj_off) 
    856865            ENDDO 
    857866         ENDDO 
     
    948957      DO jj=1,jpjm1 
    949958         DO ji=1,jpim1 
    950             pn(ji,jj)=pc(ji,jj+1,1) 
     959            pn(ji,jj)=pc(ji+1-ji_off,jj+1-jj_off,1) 
    951960         ENDDO 
    952961      ENDDO 
     
    962971! Need to make sure this is robust to changes in NEMO halo rows.... 
    963972! (may be OK but not spent much time thinking about it) 
     973! Note that non-existent pcg elements may be used below, but 
     974! the lbclnk call on pn will replace these with sensible values 
    964975 
    965976      IF (nproc==0) THEN 
    966977         png(:,:,:)=0.0 
    967978         DO jn=1,jpnij 
    968             DO jj=1,nlcjt(jn)-1 
    969                DO ji=2,nlcit(jn)-1 
    970                   png(ji,jj,jn)=pcg(ji+nimppt(jn)-2,jj+njmppt(jn)-1)       
     979            DO jj=nldjt(jn),nlejt(jn) 
     980               DO ji=nldit(jn),nleit(jn) 
     981                  png(ji,jj,jn)=pcg(ji+nimppt(jn)-1-ji_off,jj+njmppt(jn)-1-jj_off) 
    971982               ENDDO 
    972983            ENDDO 
  • branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r3294 r3476  
    155155      IF( nn_ice == 4 .AND. .NOT.( ln_blk_core .OR. lk_cpl ) )   & 
    156156         &   CALL ctl_stop( 'CICE sea-ice model requires ln_blk_core or lk_cpl' ) 
    157       IF( nn_ice == 4 .AND. ( .NOT. ( cp_cfg == 'orca' ) .OR. lk_agrif ) )   & 
    158          &   CALL ctl_stop( 'CICE sea-ice model currently only available in a global ORCA configuration without AGRIF' ) 
     157      IF( nn_ice == 4 .AND. lk_agrif )   & 
     158         &   CALL ctl_stop( 'CICE sea-ice model not currently available with AGRIF' ) 
    159159       
    160160      IF( ln_dm2dc )   nday_qsr = -1   ! initialisation flag 
  • branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r3352 r3476  
    4646   USE mppini          ! shared/distributed memory setting (mpp_init routine) 
    4747   USE domain          ! domain initialization             (dom_init routine) 
     48#if defined key_nemocice_decomp 
     49   USE ice_domain_size, only: nx_global, ny_global 
     50#endif 
    4851   USE obcini          ! open boundary cond. initialization (obc_ini routine) 
    4952   USE bdyini          ! open boundary cond. initialization (bdy_init routine) 
     
    255258      ! than variables 
    256259      IF( Agrif_Root() ) THEN 
     260#if defined key_nemocice_decomp 
     261         jpi = ( nx_global+2-2*jpreci + (jpni-1) ) / jpni + 2*jpreci ! first  dim. 
     262         jpj = ( ny_global+2-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ! second dim.  
     263#else 
    257264         jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci   ! first  dim. 
    258 #if defined key_nemocice_decomp 
    259          jpj = ( jpjglo+1-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ! second dim.  
    260 #else 
    261265         jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj   ! second dim. 
    262266#endif 
Note: See TracChangeset for help on using the changeset viewer.