Changeset 14752
- Timestamp:
- 2021-04-27T13:31:53+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DOM/domqco.F90
r14680 r14752 123 123 CALL dom_qco_r3c( ssh(:,:,Kmm), r3t(:,:,Kmm), r3u(:,:,Kmm), r3v(:,:,Kmm), r3f(:,:) ) 124 124 #endif 125 ! dom_qco_r3c defines over [nn_hls, nn_hls-1, nn_hls, nn_hls-1] 126 IF( nn_hls == 2 ) CALL lbc_lnk( 'dom_qco_zgr', r3u(:,:,Kbb), 'U', 1._wp, r3v(:,:,Kbb), 'V', 1._wp, & 127 & r3u(:,:,Kmm), 'U', 1._wp, r3v(:,:,Kmm), 'V', 1._wp ) 125 128 ! 126 129 END SUBROUTINE dom_qco_zgr … … 146 149 ! 147 150 ! 148 pr3t(:,:) = pssh(:,:) * r1_ht_0(:,:) !== ratio at t-point ==! 151 DO_2D_OVR( nn_hls, nn_hls, nn_hls, nn_hls ) 152 pr3t(ji,jj) = pssh(ji,jj) * r1_ht_0(ji,jj) !== ratio at t-point ==! 153 END_2D 149 154 ! 150 155 ! … … 154 159 #if ! defined key_qcoTest_FluxForm 155 160 ! ! no 'key_qcoTest_FluxForm' : surface weighted ssh average 156 157 DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 )158 159 160 161 162 161 ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 162 DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 163 pr3u(ji,jj) = 0.5_wp * ( e1e2t(ji ,jj) * pssh(ji ,jj) & 164 & + e1e2t(ji+1,jj) * pssh(ji+1,jj) ) * r1_hu_0(ji,jj) * r1_e1e2u(ji,jj) 165 pr3v(ji,jj) = 0.5_wp * ( e1e2t(ji,jj ) * pssh(ji,jj ) & 166 & + e1e2t(ji,jj+1) * pssh(ji,jj+1) ) * r1_hv_0(ji,jj) * r1_e1e2v(ji,jj) 167 END_2D 163 168 !!st ELSE !- Flux Form (simple averaging) 164 169 #else 165 166 DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 )167 168 169 170 ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 171 DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 172 pr3u(ji,jj) = 0.5_wp * ( pssh(ji,jj) + pssh(ji+1,jj ) ) * r1_hu_0(ji,jj) 173 pr3v(ji,jj) = 0.5_wp * ( pssh(ji,jj) + pssh(ji ,jj+1) ) * r1_hv_0(ji,jj) 174 END_2D 170 175 !!st ENDIF 171 176 #endif … … 181 186 ! ! no 'key_qcoTest_FluxForm' : surface weighted ssh average 182 187 183 184 DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line185 186 187 188 189 190 191 192 193 194 188 ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 189 DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 190 ! round brackets added to fix the order of floating point operations 191 ! needed to ensure halo 1 - halo 2 compatibility 192 pr3f(ji,jj) = 0.25_wp * ( ( e1e2t(ji ,jj ) * pssh(ji ,jj ) & 193 & + e1e2t(ji+1,jj ) * pssh(ji+1,jj ) & 194 & ) & ! bracket for halo 1 - halo 2 compatibility 195 & + ( e1e2t(ji ,jj+1) * pssh(ji ,jj+1) & 196 & + e1e2t(ji+1,jj+1) * pssh(ji+1,jj+1) & 197 & ) & ! bracket for halo 1 - halo 2 compatibility 198 & ) * r1_hf_0(ji,jj) * r1_e1e2f(ji,jj) 199 END_2D 195 200 !!st ELSE !- Flux Form (simple averaging) 196 201 #else 197 198 DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 )199 200 201 202 & + ( pssh(ji,jj+1) + pssh(ji+1,jj+1) &203 204 205 202 ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 203 DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 204 ! round brackets added to fix the order of floating point operations 205 ! needed to ensure halo 1 - halo 2 compatibility 206 pr3f(ji,jj) = 0.25_wp * ( ( pssh(ji,jj ) + pssh(ji+1,jj ) ) & 207 & + ( pssh(ji,jj+1) + pssh(ji+1,jj+1) & 208 & ) & ! bracket for halo 1 - halo 2 compatibility 209 & ) * r1_hf_0(ji,jj) 210 END_2D 206 211 !!st ENDIF 207 212 #endif -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/OBS/diaobs.F90
r14056 r14752 99 99 CHARACTER(len=8), PUBLIC, DIMENSION(:), ALLOCATABLE :: cobstypesprof, cobstypessurf !: Profile & surface obs types 100 100 101 # include "domzgr_substitute.h90" 101 102 !!---------------------------------------------------------------------- 102 103 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 623 624 INTEGER :: jtype ! Data loop variable 624 625 INTEGER :: jvar ! Variable number 625 INTEGER :: ji, jj 626 INTEGER :: ji, jj, jk ! Loop counters 626 627 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: & 627 628 & zprofvar ! Model values for variables in a prof ob … … 634 635 & zglam, & ! Model longitudes for prof variables 635 636 & zgphi ! Model latitudes for prof variables 637 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zdept, zdepw 636 638 637 639 !----------------------------------------------------------------------- … … 650 652 651 653 IF ( nproftypes > 0 ) THEN 654 655 ALLOCATE( zdept(jpi,jpj,jpk), zdepw(jpi,jpj,jpk) ) 656 DO jk = 1, jpk 657 zdept(:,:,jk) = gdept(:,:,jk,Kmm) 658 zdepw(:,:,jk) = gdepw(:,:,jk,Kmm) 659 END DO 652 660 653 661 DO jtype = 1, nproftypes … … 687 695 & nit000, idaystp, jvar, & 688 696 & zprofvar(:,:,:,jvar), & 689 & gdept(:,:,:,Kmm), gdepw(:,:,:,Kmm), &697 & zdept(:,:,:), zdepw(:,:,:), & 690 698 & zprofmask(:,:,:,jvar), & 691 699 & zglam(:,:,jvar), zgphi(:,:,jvar), & … … 697 705 698 706 END DO 707 708 DEALLOCATE( zdept, zdepw ) 699 709 700 710 ENDIF -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/OBS/obs_prep.F90
r14574 r14752 33 33 PUBLIC calc_month_len ! Calculate the number of days in the months of a year 34 34 35 # include "domzgr_substitute.h90" 35 36 !!---------------------------------------------------------------------- 36 37 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 1074 1075 & gdepw_1d, & 1075 1076 & gdepw_0, & 1076 & gdepw, 1077 & gdepw, r3t, & 1077 1078 & gdept, & 1078 1079 & ln_zco, & … … 1128 1129 & zglam, & ! Model longitude at grid points 1129 1130 & zgphi ! Model latitude at grid points 1131 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepw 1130 1132 INTEGER, DIMENSION(2,2,kprofno) :: & 1131 1133 & igrdi, & ! Grid i,j … … 1186 1188 CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, plam, zglam ) 1187 1189 CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, pphi, zgphi ) 1188 CALL obs_int_comm_3d( 2, 2, kprofno, kpi, kpj, kpk, igrdi, igrdj, gdepw(:,:,:,Kmm), & 1189 & zgdepw ) 1190 DO jk = 1, jpk 1191 zdepw(:,:,jk) = gdepw(:,:,jk,Kmm) 1192 END DO 1193 CALL obs_int_comm_3d( 2, 2, kprofno, kpi, kpj, kpk, igrdi, igrdj, zdepw(:,:,:), zgdepw ) 1190 1194 1191 1195 DO jobs = 1, kprofno -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traatf.F90
r14712 r14752 53 53 54 54 PUBLIC tra_atf ! routine called by step.F90 55 56 #if defined key_qco || defined key_linssh 57 !!---------------------------------------------------------------------- 58 !! 'key_qco' Quasi-Eulerian vertical coordinate 59 !! OR EMPTY MODULE 60 !! 'key_linssh' Fix in time vertical coordinate 61 !!---------------------------------------------------------------------- 62 CONTAINS 63 64 SUBROUTINE tra_atf( kt, Kbb, Kmm, Kaa, pts ) 65 INTEGER , INTENT(in ) :: kt ! ocean time-step index 66 INTEGER , INTENT(in ) :: Kbb, Kmm, Kaa ! time level indices 67 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts,jpt), INTENT(inout) :: pts ! active tracers 68 69 WRITE(*,*) 'tra_atf: You should not have seen this print! error?', kt 70 END SUBROUTINE tra_atf 71 72 #else 73 55 74 PUBLIC tra_atf_fix ! to be used in trcnxt 56 75 PUBLIC tra_atf_vvl ! to be used in trcnxt … … 384 403 END SUBROUTINE tra_atf_vvl 385 404 405 #endif 406 386 407 !!====================================================================== 387 408 END MODULE traatf -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/tradmp.F90
r14072 r14752 53 53 !! * Substitutions 54 54 # include "do_loop_substitute.h90" 55 # include "domzgr_substitute.h90" 55 56 !!---------------------------------------------------------------------- 56 57 !! NEMO/OCE 4.0 , NEMO Consortium (2018)
Note: See TracChangeset
for help on using the changeset viewer.