Changeset 13026 for NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE
- Timestamp:
- 2020-06-03T16:30:02+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/DOM/dom_oce.F90
r12933 r13026 215 215 #if defined key_agrif 216 216 LOGICAL, PUBLIC, PARAMETER :: lk_agrif = .TRUE. !: agrif flag 217 LOGICAL, PUBLIC :: lk_south, lk_north, lk_west, lk_east !: Child grid boundaries (interpolation or not) 217 218 #else 218 219 LOGICAL, PUBLIC, PARAMETER :: lk_agrif = .FALSE. !: agrif flag -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/DOM/domain.F90
r12489 r13026 187 187 ENDIF 188 188 ! 189 189 190 IF( lk_c1d ) CALL cor_c1d ! 1D configuration: Coriolis set at T-point 190 191 ! 192 193 #if defined key_agrif 194 IF( .NOT. Agrif_Root() ) CALL Agrif_Init_Domain( Kbb, Kmm, Kaa ) 195 #endif 191 196 IF( ln_meshmask ) CALL dom_wri ! Create a domain file 192 197 IF( .NOT.ln_rstart ) CALL dom_ctl ! Domain control … … 307 312 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namrun in configuration namelist' ) 308 313 IF(lwm) WRITE ( numond, namrun ) 314 315 #if defined key_agrif 316 IF( .NOT. Agrif_Root() ) THEN 317 nn_it000 = (Agrif_Parent(nn_it000)-1)*Agrif_IRhot() + 1 318 nn_itend = Agrif_Parent(nn_itend) *Agrif_IRhot() 319 ENDIF 320 #endif 309 321 ! 310 322 IF(lwp) THEN ! control print … … 403 415 IF(lwm) WRITE( numond, namdom ) 404 416 ! 417 #if defined key_agrif 418 IF( .NOT. Agrif_Root() ) THEN 419 rn_Dt = Agrif_Parent(rn_Dt) / Agrif_Rhot() 420 ENDIF 421 #endif 422 ! 405 423 IF(lwp) THEN 406 424 WRITE(numout,*) -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/DOM/istate.F90
r12489 r13026 35 35 USE lib_mpp ! MPP library 36 36 USE restart ! restart 37 #if defined key_agrif 38 USE agrif_oce_interp 39 USE agrif_oce 40 #endif 37 41 38 42 IMPLICIT NONE … … 70 74 !!gm Why not include in the first call of dta_tsd ? 71 75 !!gm probably associated with the use of internal damping... 72 76 CALL dta_tsd_init ! Initialisation of T & S input data 73 77 !!gm to be moved in usrdef of C1D case 74 78 ! IF( lk_c1d ) CALL dta_uvd_init ! Initialization of U & V input data … … 97 101 ! 98 102 IF( ln_tsd_init ) THEN 99 CALL dta_tsd( nit000, ts(:,:,:,:,Kbb) ) ! read 3D T and S data at nit000 103 IF( Agrif_root() ) THEN 104 CALL dta_tsd( nit000, ts(:,:,:,:,Kbb) ) ! read 3D T and S data at nit000 105 ssh(:,:,Kbb) = 0._wp ! set the ocean at rest 106 uu (:,:,:,Kbb) = 0._wp 107 vv (:,:,:,Kbb) = 0._wp 108 #if defined key_agrif 109 ELSE 110 CALL agrif_istate( Kbb, Kmm, Kaa ) 111 #endif 112 ENDIF 100 113 ! 101 ssh(:,:,Kbb) = 0._wp ! set the ocean at rest102 114 IF( ll_wd ) THEN 103 115 ssh(:,:,Kbb) = -ssh_ref ! Added in 30 here for bathy that adds 30 as Iterative test CEOD … … 111 123 END_2D 112 124 ENDIF 113 uu (:,:,:,Kbb) = 0._wp 114 vv (:,:,:,Kbb) = 0._wp 115 ! 125 ! 116 126 ELSE ! user defined initial T and S 117 127 CALL usr_def_istate( gdept(:,:,:,Kbb), tmask, ts(:,:,:,:,Kbb), uu(:,:,:,Kbb), vv(:,:,:,Kbb), ssh(:,:,Kbb) ) -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/DYN/sshwzv.F90
r12965 r13026 204 204 ! Mask vertical velocity at first/last columns/row 205 205 ! inside computational domain (cosmetic) 206 ! --- West --- ! 207 DO ji = mi0(2), mi1(2) 208 DO jj = 1, jpj 209 pww(ji,jj,:) = 0._wp 206 ! --- West --- ! 207 IF( lk_west) THEN 208 DO ji = mi0(2), mi1(2) 209 DO jj = 1, jpj 210 pww(ji,jj,:) = 0._wp 211 ENDDO 210 212 ENDDO 211 END DO213 ENDIF 212 214 ! 213 215 ! --- East --- ! 214 DO ji = mi0(jpiglo-1), mi1(jpiglo-1) 215 DO jj = 1, jpj 216 pww(ji,jj,:) = 0._wp 216 IF( lk_east) THEN 217 DO ji = mi0(jpiglo-1), mi1(jpiglo-1) 218 DO jj = 1, jpj 219 pww(ji,jj,:) = 0._wp 220 ENDDO 217 221 ENDDO 218 END DO222 ENDIF 219 223 ! 220 224 ! --- South --- ! 221 DO jj = mj0(2), mj1(2) 222 DO ji = 1, jpi 223 pww(ji,jj,:) = 0._wp 225 IF( lk_south) THEN 226 DO jj = mj0(2), mj1(2) 227 DO ji = 1, jpi 228 pww(ji,jj,:) = 0._wp 229 ENDDO 224 230 ENDDO 225 END DO231 ENDIF 226 232 ! 227 233 ! --- North --- ! 228 DO jj = mj0(jpjglo-1), mj1(jpjglo-1) 229 DO ji = 1, jpi 230 pww(ji,jj,:) = 0._wp 234 IF( lk_north) THEN 235 DO jj = mj0(jpjglo-1), mj1(jpjglo-1) 236 DO ji = 1, jpi 237 pww(ji,jj,:) = 0._wp 238 ENDDO 231 239 ENDDO 232 ENDDO 240 ENDIF 241 ! 233 242 ENDIF 234 243 #endif -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/FLO/floblk.F90
r12649 r13026 41 41 INTEGER, INTENT( in ) :: Kbb, Kmm ! ocean time level indices 42 42 !! 43 #ifndef key_agrif 44 45 !RB super quick fix to compile with agrif 46 43 47 INTEGER :: jfl ! dummy loop arguments 44 48 INTEGER :: ind, ifin, iloop … … 364 368 GO TO 222 365 369 ENDIF 370 #endif 366 371 ! 367 372 ! -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/LBC/lib_mpp.F90
r12933 r13026 137 137 138 138 ! Communications summary report 139 CHARACTER(len= 128), DIMENSION(:), ALLOCATABLE :: crname_lbc !: names of lbc_lnk calling routines140 CHARACTER(len= 128), DIMENSION(:), ALLOCATABLE :: crname_glb !: names of global comm calling routines141 CHARACTER(len= 128), DIMENSION(:), ALLOCATABLE :: crname_dlg !: names of delayed global comm calling routines139 CHARACTER(len=lca), DIMENSION(:), ALLOCATABLE :: crname_lbc !: names of lbc_lnk calling routines 140 CHARACTER(len=lca), DIMENSION(:), ALLOCATABLE :: crname_glb !: names of global comm calling routines 141 CHARACTER(len=lca), DIMENSION(:), ALLOCATABLE :: crname_dlg !: names of delayed global comm calling routines 142 142 INTEGER, PUBLIC :: ncom_stp = 0 !: copy of time step # istp 143 143 INTEGER, PUBLIC :: ncom_fsbc = 1 !: copy of sbc time step # nn_fsbc -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/LBC/mppini.F90
r12377 r13026 102 102 & 'the domain is lay out for distributed memory computing!' ) 103 103 ! 104 #if defined key_agrif 105 IF (.NOT.agrif_root()) THEN 106 call agrif_nemo_init() 107 ENDIF 108 #endif 104 109 END SUBROUTINE mpp_init 105 110 … … 333 338 #if defined key_agrif 334 339 IF( .NOT. Agrif_Root() ) THEN ! AGRIF children: specific setting (cf. agrif_user.F90) 335 IF( jpiglo /= nbcellsx + 2 + 2*nbghostcells ) & 336 CALL ctl_stop( 'STOP', 'mpp_init: Agrif children requires jpiglo == nbcellsx + 2 + 2*nbghostcells' ) 337 IF( jpjglo /= nbcellsy + 2 + 2*nbghostcells ) & 338 CALL ctl_stop( 'STOP', 'mpp_init: Agrif children requires jpjglo == nbcellsy + 2 + 2*nbghostcells' ) 339 IF( ln_use_jattr ) CALL ctl_stop( 'STOP', 'mpp_init:Agrif children requires ln_use_jattr = .false. ' ) 340 CALL agrif_nemo_init() 340 341 ENDIF 341 342 #endif -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/OBS/diaobs.F90
r12489 r13026 94 94 TYPE(obs_prof), PUBLIC, POINTER, DIMENSION(:) :: profdataqc !: Profile data after quality control 95 95 96 CHARACTER(len= 6), PUBLIC, DIMENSION(:), ALLOCATABLE :: cobstypesprof, cobstypessurf !: Profile & surface obs types96 CHARACTER(len=lca), PUBLIC, DIMENSION(:), ALLOCATABLE :: cobstypesprof, cobstypessurf !: Profile & surface obs types 97 97 98 98 !!---------------------------------------------------------------------- -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/SBC/sbcmod.F90
r12489 r13026 122 122 ! !* overwrite namelist parameter using CPP key information 123 123 #if defined key_agrif 124 IF( Agrif_Root() ) THEN ! AGRIF zoom (cf r1242: possibility to run without ice in fine grid)125 IF( lk_si3 ) nn_ice = 2126 IF( lk_cice ) nn_ice = 3127 ENDIF124 ! IF( Agrif_Root() ) THEN ! AGRIF zoom (cf r1242: possibility to run without ice in fine grid) 125 ! IF( lk_si3 ) nn_ice = 2 126 ! IF( lk_cice ) nn_ice = 3 127 ! ENDIF 128 128 !!GS: TBD 129 129 !#else -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/STO/stopar.F90
r12933 r13026 56 56 INTEGER, DIMENSION(:), ALLOCATABLE :: sto3d_ord ! order of autoregressive process 57 57 58 CHARACTER(len= 1), DIMENSION(:), ALLOCATABLE :: sto2d_typ ! nature of grid point (T, U, V, W, F, I)59 CHARACTER(len= 1), DIMENSION(:), ALLOCATABLE :: sto3d_typ ! nature of grid point (T, U, V, W, F, I)58 CHARACTER(len=lca), DIMENSION(:), ALLOCATABLE :: sto2d_typ ! nature of grid point (T, U, V, W, F, I) 59 CHARACTER(len=lca), DIMENSION(:), ALLOCATABLE :: sto3d_typ ! nature of grid point (T, U, V, W, F, I) 60 60 REAL(wp), DIMENSION(:), ALLOCATABLE :: sto2d_sgn ! control of the sign accross the north fold 61 61 REAL(wp), DIMENSION(:), ALLOCATABLE :: sto3d_sgn ! control of the sign accross the north fold -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/USR/usrdef_hgr.F90
r12489 r13026 95 95 #if defined key_agrif 96 96 ! ! Upper left longitude and latitude from parent: 97 ! Laurent: Should be modify in case of an east-west cyclic parent grid 97 98 IF (.NOT.Agrif_root()) THEN 98 99 zlam0 = zlam1 + Agrif_irhox() * REAL(Agrif_Parent(jpjglo)-2 , wp) * ze1deg * zcos_alpha & -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/USR/usrdef_nam.F90
r12377 r13026 74 74 #if defined key_agrif 75 75 IF( .NOT. Agrif_Root() ) THEN 76 kpi = nbcellsx + 2 + 2*nbghostcells 77 kpj = nbcellsy + 2 + 2*nbghostcells 76 kpi = nbcellsx + 2 + 2*nbghostcells_x 77 kpj = nbcellsy + 2 + 2*nbghostcells_y_s 78 78 ENDIF 79 79 #endif -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/nemogcm.F90
r12933 r13026 143 143 #if defined key_agrif 144 144 Kbb_a = Nbb; Kmm_a = Nnn; Krhs_a = Nrhs ! agrif_oce module copies of time level indices 145 CALL Agrif_Declare_Var_dom ! AGRIF: set the meshes for DOM 146 CALL Agrif_Declare_Var ! " " " " " DYN/TRA 145 CALL Agrif_Declare_Var ! " " " " " DYN/TRA 147 146 # if defined key_top 148 147 CALL Agrif_Declare_Var_top ! " " " " " TOP 149 # endif150 # if defined key_si3151 CALL Agrif_Declare_Var_ice ! " " " " " Sea ice152 148 # endif 153 149 #endif … … 399 395 ! Initialise time level indices 400 396 Nbb = 1; Nnn = 2; Naa = 3; Nrhs = Naa 401 397 #if defined key_agrif 398 Kbb_a = Nbb; Kmm_a = Nnn; Krhs_a = Nrhs ! agrif_oce module copies of time level indices 399 #endif 402 400 ! !-------------------------------! 403 401 ! ! NEMO general initialization ! … … 414 412 IF( lk_c1d ) CALL c1d_init ! 1D column configuration 415 413 CALL wad_init ! Wetting and drying options 414 415 #if defined key_agrif 416 CALL Agrif_Declare_Var_ini ! " " " " " DOM 417 #endif 416 418 CALL dom_init( Nbb, Nnn, Naa, "OPA") ! Domain 419 420 421 417 422 IF( ln_crs ) CALL crs_init( Nnn ) ! coarsened grid: domain initialization 418 423 IF( sn_cfctl%l_prtctl ) & … … 435 440 ENDIF 436 441 ! 437 442 438 443 CALL istate_init( Nbb, Nnn, Naa ) ! ocean initial state (Dynamics and tracers) 439 444 -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/par_kind.F90
r10068 r13026 31 31 32 32 ! !!** Integer ** 33 INTEGER, PUBLIC, PARAMETER :: lc = 256 !: Lenght of Character strings 33 INTEGER, PUBLIC, PARAMETER :: lc = 256 !: Lenght of Character strings 34 INTEGER, PUBLIC, PARAMETER :: lca = 400 !: Lenght of Character arrays 34 35 35 36 !!---------------------------------------------------------------------- -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/par_oce.F90
r12377 r13026 47 47 ! global domain size for AGRIF !!! * total AGRIF computational domain * 48 48 INTEGER, PUBLIC :: nbug_in_agrif_conv_do_not_remove_or_modify = 1 - 1 49 INTEGER, PUBLIC, PARAMETER :: nbghostcells = 3 !: number of ghost cells 50 INTEGER, PUBLIC :: nbcellsx ! = jpiglo - 2 - 2*nbghostcells !: number of cells in i-direction 51 INTEGER, PUBLIC :: nbcellsy ! = jpjglo - 2 - 2*nbghostcells !: number of cells in j-direction 49 INTEGER, PUBLIC, PARAMETER :: nbghostcells = 3 !: number of ghost cells: default value 50 INTEGER, PUBLIC :: nbghostcells_x !: number of ghost cells in i-direction 51 INTEGER, PUBLIC :: nbghostcells_y_s !: number of ghost cells in j-direction at south 52 INTEGER, PUBLIC :: nbghostcells_y_n !: number of ghost cells in j-direction at north !: number of ghost cells 53 INTEGER, PUBLIC :: nbcellsx ! = jpiglo - 2 - 2*nbghostcells_x !: number of cells in i-direction 54 INTEGER, PUBLIC :: nbcellsy ! = jpjglo - 2 - 2*nbghostcells-y !: number of cells in j-direction 52 55 53 56 ! local domain size !!! * local computational domain *
Note: See TracChangeset
for help on using the changeset viewer.