- Timestamp:
- 2021-06-15T16:39:31+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/ticket2669_isf_fluxes/tests/VORTEX/MY_SRC
- Files:
-
- 2 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) -
NEMO/branches/2021/ticket2669_isf_fluxes/tests/VORTEX/MY_SRC/usrdef_nam.F90
r14433 r14994 60 60 ! 61 61 INTEGER :: ios ! Local integer 62 INTEGER :: ighost_n, ighost_s, ighost_w, ighost_e 62 63 REAL(wp):: zlx, zly, zh ! Local scalars 63 64 !! … … 83 84 kk_cfg = nINT( rn_dx ) 84 85 ! 86 #if defined key_agrif 85 87 IF( Agrif_Root() ) THEN ! Global Domain size: VORTEX global domain is 1800 km x 1800 Km x 5000 m 88 #endif 86 89 kpi = NINT( 1800.e3 / rn_dx ) + 3 87 90 kpj = NINT( 1800.e3 / rn_dy ) + 3 91 #if defined key_agrif 88 92 ELSE ! Global Domain size: add nbghostcells + 1 "land" point on each side 89 kpi = nbcellsx + 2 * ( nbghostcells + 1 ) 90 kpj = nbcellsy + 2 * ( nbghostcells + 1 ) 91 !!$ kpi = nbcellsx + nbghostcells_x + nbghostcells_x + 2 92 !!$ kpj = nbcellsy + nbghostcells_y_s + nbghostcells_y_n + 2 93 ! At this stage, child ghosts have not been set 94 ighost_w = nbghostcells 95 ighost_e = nbghostcells 96 ighost_s = nbghostcells 97 ighost_n = nbghostcells 98 99 IF ( Agrif_Ix() == 1 ) ighost_w = 1 100 IF ( Agrif_Ix() + nbcellsx/AGRIF_Irhox() == Agrif_Parent(Ni0glo) - 1 ) ighost_e = 1 101 IF ( Agrif_Iy() == 1 ) ighost_s = 1 102 IF ( Agrif_Iy() + nbcellsy/AGRIF_Irhoy() == Agrif_Parent(Nj0glo) - 1 ) ighost_n = 1 103 ! kpi = nbcellsx + 2 * ( nbghostcells + 1 ) 104 ! kpj = nbcellsy + 2 * ( nbghostcells + 1 ) 105 kpi = nbcellsx + ighost_w + ighost_e 106 kpj = nbcellsy + ighost_s + ighost_n 93 107 ENDIF 108 #endif 94 109 kpk = NINT( 5000._wp / rn_dz ) + 1 95 110 !
Note: See TracChangeset
for help on using the changeset viewer.