- Timestamp:
- 2020-11-30T12:29:45+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r13508_HPC-09_loop_fusion
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r13508_HPC-09_loop_fusion
- Property svn:externals
-
old new 8 8 9 9 # SETTE 10 ^/utils/CI/sette@135 07sette10 ^/utils/CI/sette@13559 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_r13508_HPC-09_loop_fusion/src/TOP/PISCES/P4Z/p4zsed.F90
r13295 r13917 313 313 ENDIF 314 314 ! 315 IF(sn_cfctl%l_prttrc) THEN ! print mean tr ends (USEd for debugging)315 IF(sn_cfctl%l_prttrc) THEN ! print mean trneds (USEd for debugging) 316 316 WRITE(charout, fmt="('sed ')") 317 317 CALL prt_ctl_info( charout, cdcomp = 'top' ) … … 366 366 lk_sed = ln_sediment .AND. ln_sed_2way 367 367 ! 368 nitrpot(:,:,jpk) = 0._wp ! define last level for iom_put 369 ! 368 370 END SUBROUTINE p4z_sed_init 369 371 -
NEMO/branches/2020/dev_r13508_HPC-09_loop_fusion/src/TOP/trc.F90
r12489 r13917 21 21 INTEGER, PUBLIC :: numonr = -1 !: reference passive tracer namelist output output.namelist.top 22 22 INTEGER, PUBLIC :: numstr !: tracer statistics 23 INTEGER, PUBLIC :: numrtr 23 INTEGER, PUBLIC :: numrtr = -1 !: trc restart (read ) 24 24 INTEGER, PUBLIC :: numrtw !: trc restart ( write ) 25 25 CHARACTER(:), ALLOCATABLE, PUBLIC :: numnat_ref !: character buffer for reference passive tracer namelist_top_ref -
NEMO/branches/2020/dev_r13508_HPC-09_loop_fusion/src/TOP/trcbdy.F90
r13226 r13917 49 49 INTEGER :: ib_bdy ,ir, jn ,igrd ! Loop indices 50 50 REAL(wp), POINTER, DIMENSION(:,:) :: ztrc 51 REAL(wp), POINTER :: zfac52 51 LOGICAL :: llrim0 ! indicate if rim 0 is treated 53 52 LOGICAL, DIMENSION(4) :: llsend1, llrecv1 ! indicate how communications are to be carried out … … 61 60 IF( ir == 0 ) THEN ; llrim0 = .TRUE. 62 61 ELSE ; llrim0 = .FALSE. 63 END 62 ENDIF 64 63 DO ib_bdy=1, nb_bdy 64 ! 65 65 DO jn = 1, jptra 66 66 ! 67 ztrc => trcdta_bdy(jn,ib_bdy)%trc 68 zfac => trcdta_bdy(jn,ib_bdy)%rn_fac 67 IF( ASSOCIATED(trcdta_bdy(jn,ib_bdy)%trc) .AND. trcdta_bdy(jn,ib_bdy)%cn_obc /= 'neumann' ) THEN 68 IF( .NOT. ASSOCIATED(ztrc) ) ALLOCATE( ztrc(idx_bdy(ib_bdy)%nblen(igrd),jpk) ) 69 ztrc(:,:) = trcdta_bdy(jn,ib_bdy)%trc(:,:) * trcdta_bdy(jn,ib_bdy)%rn_fac 70 ENDIF 69 71 ! 70 SELECT CASE( TRIM(trcdta_bdy(jn,ib_bdy)%cn_obc))72 SELECT CASE( trcdta_bdy(jn,ib_bdy)%cn_obc ) 71 73 CASE('none' ) ; CYCLE 72 74 CASE('frs' ) ! treat the whole boundary at once 73 IF( ir == 0 ) CALL bdy_frs( idx_bdy(ib_bdy), tr(:,:,:,jn,Krhs), ztrc*zfac )75 IF( ir == 0 ) CALL bdy_frs( idx_bdy(ib_bdy), tr(:,:,:,jn,Krhs), ztrc ) 74 76 CASE('specified' ) ! treat the whole rim at once 75 IF( ir == 0 ) CALL bdy_spe( idx_bdy(ib_bdy), tr(:,:,:,jn,Krhs), ztrc*zfac ) 76 CASE('neumann' ) ; CALL bdy_nmn( idx_bdy(ib_bdy), igrd , tr(:,:,:,jn,Krhs) ) ! tra masked 77 CASE('orlanski' ) ; CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc*zfac, ll_npo=.false. ) 78 CASE('orlanski_npo') ; CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc*zfac, ll_npo=.true. ) 77 IF( ir == 0 ) CALL bdy_spe( idx_bdy(ib_bdy), tr(:,:,:,jn,Krhs), ztrc ) 78 CASE('neumann' ) ; CALL bdy_nmn( idx_bdy(ib_bdy), igrd , tr(:,:,:,jn,Krhs), llrim0 ) ! tra masked 79 CASE('orlanski' ) ; CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc, llrim0, & 80 & ll_npo=.FALSE. ) 81 CASE('orlanski_npo') ; CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc, llrim0, & 82 & ll_npo=.TRUE. ) 79 83 CASE DEFAULT ; CALL ctl_stop( 'trc_bdy : unrecognised option for open boundaries for passive tracers' ) 80 84 END SELECT 81 85 ! 82 86 END DO 87 ! 88 IF( ASSOCIATED(ztrc) ) DEALLOCATE(ztrc) 89 ! 83 90 END DO 84 91 ! 85 92 IF( nn_hls > 1 .AND. ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 86 IF( nn_hls == 1 ) THEN ; llsend1(:) = .false. ; llrecv1(:) = .false. ; END 93 IF( nn_hls == 1 ) THEN ; llsend1(:) = .false. ; llrecv1(:) = .false. ; ENDIF 87 94 DO ib_bdy=1, nb_bdy 88 SELECT CASE( TRIM(cn_tra(ib_bdy)) )95 SELECT CASE( cn_tra(ib_bdy) ) 89 96 CASE('neumann') 90 97 llsend1(:) = llsend1(:) .OR. lsend_bdyint(ib_bdy,1,:,ir) ! possibly every direction, T points … … 97 104 IF( ANY(llsend1) .OR. ANY(llrecv1) ) THEN ! if need to send/recv in at least one direction 98 105 CALL lbc_lnk( 'trcbdy', tr(:,:,:,:,Krhs), 'T', 1.0_wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 99 END 106 ENDIF 100 107 ! 101 108 END DO ! ir -
NEMO/branches/2020/dev_r13508_HPC-09_loop_fusion/src/TOP/trcrst.F90
r13286 r13917 237 237 ! calculate start time in hours and minutes 238 238 zdayfrac=adatrj-INT(adatrj) 239 ksecs = NINT(zdayfrac*86400) ! Nearest second to catch rounding errors in adatrj 239 ksecs = NINT(zdayfrac*86400) ! Nearest second to catch rounding errors in adatrj 240 240 ihour = INT(ksecs/3600) 241 241 iminute = ksecs/60-ihour*60 … … 258 258 adatrj = INT(adatrj) ! adatrj set to integer as nn_time0 updated 259 259 ELSE 260 ndt05 = NINT( 0.5 * rn_Dt ) ! --- WARNING --- not defined yet are we did not go through day_init 260 261 ! parameters corresponding to nit000 - 1 (as we start the step 261 262 ! loop with a call to day) 262 ndastp = ndate0 - 1! ndate0 read in the namelist in dom_nam263 ndastp = ndate0 ! ndate0 read in the namelist in dom_nam 263 264 nhour = nn_time0 / 100 264 265 nminute = ( nn_time0 - nhour * 100 )
Note: See TracChangeset
for help on using the changeset viewer.