Changeset 4027
- Timestamp:
- 2013-09-17T13:19:04+02:00 (10 years ago)
- Location:
- branches/2013/dev_r3948_CMCC_NorthFold_Opt/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3948_CMCC_NorthFold_Opt/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90
r4021 r4027 180 180 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE :: xnorthgloio_e 181 181 182 ! North fold arrays used to minimise the use of allgather operations. Set in nemo_northcomms (nemogcm) so need to be public183 ! INTEGER, PUBLIC, PARAMETER :: jpmaxngh = 8 ! Assumed maximum number of active neighbours184 ! INTEGER, PUBLIC, PARAMETER :: jptyps = 5 ! Number of different neighbour lists to be used for northfold exchanges185 ! INTEGER, PUBLIC, DIMENSION (jpmaxngh,jptyps) :: isendto186 ! INTEGER, PUBLIC, DIMENSION (jptyps) :: nsndto187 182 LOGICAL, PUBLIC :: ln_nnogather = .FALSE. ! namelist control of northfold comms 188 183 LOGICAL, PUBLIC :: l_north_nogather = .FALSE. ! internal control of northfold comms … … 2624 2619 ! (in nemo_northcomms) as being involved in this process' northern boundary exchange 2625 2620 ! 2621 2622 ztabr_3d(:,:,:) = 0 2623 2626 2624 DO jk = 1, jpk 2627 2625 DO jj = nlcj-ijpj+1, nlcj ! First put local values into the global array … … 2755 2753 ! (in nemo_northcomms) as being involved in this process' northern boundary exchange 2756 2754 ! 2755 2756 ztabr_2d(:,:) = 0 2757 2757 2758 DO jj = nlcj-ijpj+1, nlcj ! First put local values into the global array 2758 2759 ij = jj - nlcj + ijpj -
branches/2013/dev_r3948_CMCC_NorthFold_Opt/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r4021 r4027 696 696 697 697 INTEGER :: sxM, dxM, sxT, dxT, jn 698 698 INTEGER :: njmppmax 699 700 njmppmax = MAXVAL( njmppt ) 701 699 702 !initializes the north-fold communication variables 700 703 isendto(:) = 0 … … 702 705 703 706 !if I am a process in the north 704 IF ( narea .ge. jpnij - jpni +1) THEN707 IF ( njmpp == njmppmax ) THEN 705 708 !sxM is the first point (in the global domain) needed to compute the 706 709 !north-fold for the current process … … 713 716 !managing the points belonging to the sxT-dxT range 714 717 DO jn = jpnij - jpni +1, jpnij 718 IF ( njmppt(jn) == njmppmax ) THEN 715 719 !sxT is the first point (in the global domain) of the jn 716 720 !process … … 729 733 isendto(nsndto) = jn 730 734 END IF 735 END IF 731 736 END DO 732 737 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.