- Timestamp:
- 2021-06-15T16:39:31+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/ticket2669_isf_fluxes/tests/VORTEX/MY_SRC/usrdef_hgr.F90
r14223 r14994 23 23 IMPLICIT NONE 24 24 PRIVATE 25 26 REAL(wp) :: roffsetx, roffsety ! Offset in km to first f-point 25 27 26 28 PUBLIC usr_def_hgr ! called by domhgr.F90 … … 64 66 ! 65 67 INTEGER :: ji, jj ! dummy loop indices 66 REAL(wp) :: z phi0, zlam0, zbeta, zf068 REAL(wp) :: zbeta, zf0 67 69 REAL(wp) :: zti, ztj ! local scalars 68 70 !!------------------------------------------------------------------------------- … … 77 79 ! Position coordinates (in kilometers) 78 80 ! ========== 79 #if defined key_agrif 80 IF( Agrif_Root() ) THEN81 #endif 82 zlam0 = -REAL(Ni0glo,wp) * 0.5 * 1.e-3 * rn_dx83 zphi0 = -REAL(Nj0glo,wp) * 0.5 * 1.e-3 * rn_dy81 ! offset is given at first f-point, i.e. at (i,j) = (nn_hls+1, nn_hls+1) 82 ! Here we assume the grid is centred around a T-point at the middle of 83 ! of the domain (hence domain size is odd) 84 roffsetx = (-REAL(Ni0glo-1, wp) + 1._wp) * 0.5 * 1.e-3 * rn_dx 85 roffsety = (-REAL(Nj0glo-1, wp) + 1._wp) * 0.5 * 1.e-3 * rn_dy 84 86 #if defined key_agrif 85 ELSE 86 ! ! let lower left longitude and latitude from parent 87 zlam0 = ( 0.5_wp - REAL(Ni0glo, wp) * 0.5 ) * 1.e-3 * Agrif_irhox() * rn_dx & 88 & + ( Agrif_Ix() + nbghostcells - 1 ) * Agrif_irhox() * rn_dx * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dx * 1.e-3 89 zphi0 = ( 0.5_wp - REAL(Nj0glo, wp) * 0.5 ) * 1.e-3 * Agrif_irhoy() * rn_dy & 90 & + ( Agrif_Iy() + nbghostcells - 1 ) * Agrif_irhoy() * rn_dy * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dy * 1.e-3 91 ENDIF 92 #endif 87 IF( .NOT.Agrif_Root() ) THEN 88 ! deduce offset from parent: 89 roffsetx = Agrif_Parent(roffsetx) & 90 & + (-(nbghostcells_x - 1) + (Agrif_Parent(nbghostcells_x ) + Agrif_Ix()-2)*Agrif_Rhox()) * 1.e-3 * rn_dx 91 roffsety = Agrif_Parent(roffsety) & 92 & + (-(nbghostcells_y_s - 1) + (Agrif_Parent(nbghostcells_y_s) + Agrif_Iy()-2)*Agrif_Rhoy()) * 1.e-3 * rn_dy 93 ENDIF 94 #endif 95 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 96 zti = REAL( mig0(ji)-1, wp ) ! start at i=0 in the global grid without halos 97 ztj = REAL( mjg0(jj)-1, wp ) ! start at j=0 in the global grid without halos 93 98 94 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 95 zti = REAL( mig0(ji), wp ) - 0.5_wp ! start at i=0.5 in the global grid without halos 96 ztj = REAL( mjg0(jj), wp ) - 0.5_wp ! start at j=0.5 in the global grid without halos 97 98 plamt(ji,jj) = zlam0 + rn_dx * 1.e-3 * zti 99 plamu(ji,jj) = zlam0 + rn_dx * 1.e-3 * ( zti + 0.5_wp ) 99 plamt(ji,jj) = roffsetx + rn_dx * 1.e-3 * ( zti - 0.5_wp ) 100 plamu(ji,jj) = roffsetx + rn_dx * 1.e-3 * zti 100 101 plamv(ji,jj) = plamt(ji,jj) 101 102 plamf(ji,jj) = plamu(ji,jj) 102 103 103 pphit(ji,jj) = zphi0 + rn_dy * 1.e-3 * ztj104 pphiv(ji,jj) = zphi0 + rn_dy * 1.e-3 * ( ztj + 0.5_wp )104 pphit(ji,jj) = roffsety + rn_dy * 1.e-3 * ( ztj - 0.5_wp ) 105 pphiv(ji,jj) = roffsety + rn_dy * 1.e-3 * ztj 105 106 pphiu(ji,jj) = pphit(ji,jj) 106 107 pphif(ji,jj) = pphiv(ji,jj)
Note: See TracChangeset
for help on using the changeset viewer.