Changeset 9918


Ignore:
Timestamp:
2018-07-10T17:00:38+02:00 (2 years ago)
Author:
timgraham
Message:

Fix for wraparound points in coupling (to be added to trunk as well).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_merge_2017_GC_couple_pkg/NEMOGCM/NEMO/OPA_SRC/SBC/cpl_oasis3.F90

    r9679 r9918  
    156156      CHARACTER(LEN=64) :: zclname 
    157157      CHARACTER(LEN=2) :: cli2 
     158      INTEGER          ::   nldi_save, nlei_save 
     159      INTEGER          ::   nldj_save, nlej_save 
    158160      !!-------------------------------------------------------------------- 
    159161 
     
    177179         CALL oasis_abort ( ncomp_id, 'cpl_define', 'nsnd is larger than nmaxfld, increase nmaxfld')   ;   RETURN 
    178180      ENDIF 
     181 
     182      nldi_save = nldi   ;   nlei_save = nlei 
     183      nldj_save = nldj   ;   nlej_save = nlej 
     184      IF( nimpp           ==      1 ) nldi = 1 
     185      IF( nimpp + jpi - 1 == jpiglo ) nlei = jpi 
     186      IF( njmpp           ==      1 ) nldj = 1 
     187      IF( njmpp + jpj - 1 == jpjglo ) nlej = jpj 
    179188      ! 
    180189      ! ... Define the shape for the area that excludes the halo 
     
    308317      CALL oasis_enddef(nerror) 
    309318      IF( nerror /= OASIS_Ok )   CALL oasis_abort ( ncomp_id, 'cpl_define', 'Failure in oasis_enddef') 
     319 
     320      nldi = nldi_save   ;   nlei = nlei_save 
     321      nldj = nldj_save   ;   nlej = nlej_save 
     322 
    310323      ! 
    311324   END SUBROUTINE cpl_define 
     
    325338      !! 
    326339      INTEGER                                   ::   jc,jm     ! local loop index 
     340      INTEGER                                   ::   nldi_save, nlei_save 
     341      INTEGER                                   ::   nldj_save, nlej_save 
    327342      !!-------------------------------------------------------------------- 
    328343      ! 
    329344      ! snd data to OASIS3 
    330345      ! 
     346 
     347      nldi_save = nldi   ;   nlei_save = nlei 
     348      nldj_save = nldj   ;   nlej_save = nlej 
     349      IF( nimpp           ==      1 ) nldi = 1 
     350      IF( nimpp + jpi - 1 == jpiglo ) nlei = jpi 
     351      IF( njmpp           ==      1 ) nldj = 1 
     352      IF( njmpp + jpj - 1 == jpjglo ) nlej = jpj 
    331353      DO jc = 1, ssnd(kid)%nct 
    332354         DO jm = 1, ssnd(kid)%ncplmodel 
     
    354376         ENDDO 
    355377      ENDDO 
     378      nldi = nldi_save   ;   nlei = nlei_save 
     379      nldj = nldj_save   ;   nlej = nlej_save 
    356380      ! 
    357381    END SUBROUTINE cpl_snd 
     
    379403      kinfo = OASIS_idle 
    380404      ! 
     405      nldi_save = nldi   ;   nlei_save = nlei 
     406      nldj_save = nldj   ;   nlej_save = nlej 
     407      IF( nimpp           ==      1 ) nldi = 1 
     408      IF( nimpp + jpi - 1 == jpiglo ) nlei = jpi 
     409      IF( njmpp           ==      1 ) nldj = 1 
     410      IF( njmpp + jpj - 1 == jpjglo ) nlej = jpj 
    381411      DO jc = 1, srcv(kid)%nct 
    382412         llfisrt = .TRUE. 
     
    420450             
    421451         ENDDO 
     452         nldi = nldi_save   ;   nlei = nlei_save 
     453         nldj = nldj_save   ;   nlej = nlej_save 
    422454 
    423455         !--- Fill the overlap areas and extra hallows (mpp) 
Note: See TracChangeset for help on using the changeset viewer.