Changeset 3973 for branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO
- Timestamp:
- 2013-07-12T13:54:28+02:00 (11 years ago)
- Location:
- branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO
- Files:
-
- 11 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/NST_SRC/agrif_user.F90
r3875 r3973 66 66 ! 0. Initializations 67 67 !------------------- 68 #if defined key_orca_r025 || defined key_orca_r05 || defined key_orca_r2 || defined key_orca_r4 69 jp_cfg = -1 ! set special value for jp_cfg on fine grids70 cp_cfg = "default"71 #endif 72 68 IF( cp_cfg == 'orca' .AND. jp_cfg == 2 .OR. jp_cfg == 025 .OR. jp_cfg == 05 & 69 & .OR. jp_cfg == 4 ) THEN 70 jp_cfg = -1 ! set special value for jp_cfg on fine grids 71 cp_cfg = "default" 72 ENDIF 73 73 ! Specific fine grid Initializations 74 74 ! no tracer damping on fine grids -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OFF_SRC/nemogcm.F90
r3875 r3973 142 142 & nn_isplt, nn_jsplt, nn_jctls, nn_jctle, & 143 143 & nn_bench, nn_timing 144 NAMELIST/namcfg/ cp_cfg, jp_cfg, jpidta, jpjdta, jpkdta, jpiglo, jpjglo, & 145 & jpizoom, jpjzoom, jperio, jphgr_msh, & 146 & ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 147 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 148 & ppa2, ppkth2, ppacr2 144 149 !!---------------------------------------------------------------------- 145 150 ! … … 161 166 WRITE( numond, namctl ) 162 167 ! 168 REWIND( numnam_ref ) ! Namelist namcfg in reference namelist : Control prints & Benchmark 169 READ ( numnam_ref, namcfg, IOSTAT = ios, ERR = 903 ) 170 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfg in reference namelist', lwp ) 171 172 REWIND( numnam_cfg ) ! Namelist namcfg in confguration namelist : Control prints & Benchmark 173 READ ( numnam_cfg, namcfg, IOSTAT = ios, ERR = 904 ) 174 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfg in configuration namelist', lwp ) 175 WRITE( numond, namcfg ) 163 176 ! !--------------------------------------------! 164 177 ! ! set communicator & select the local node ! … … 305 318 jsplt = nn_jsplt 306 319 nbench = nn_bench 320 IF(lwp) THEN ! control print 321 WRITE(numout,*) 322 WRITE(numout,*) 'namcfg : configuration initialization through namelist read' 323 WRITE(numout,*) '~~~~~~~ ' 324 WRITE(numout,*) ' Namelist namcfg' 325 WRITE(numout,*) ' configuration name cp_cfg = ', TRIM(cp_cfg) 326 WRITE(numout,*) ' configuration resolution jp_cfg = ', jp_cfg 327 WRITE(numout,*) ' 1st lateral dimension ( >= jpi ) jpidta = ', jpidta 328 WRITE(numout,*) ' 2nd " " ( >= jpj ) jpjdta = ', jpjdta 329 WRITE(numout,*) ' 3nd " " jpkdta = ', jpkdta 330 WRITE(numout,*) ' 1st dimension of global domain in i jpiglo = ', jpiglo 331 WRITE(numout,*) ' 2nd - - in j jpjglo = ', jpjglo 332 WRITE(numout,*) ' left bottom i index of the zoom (in data domain) jpizoom = ', jpizoom 333 WRITE(numout,*) ' left bottom j index of the zoom (in data domain) jpizoom = ', jpjzoom 334 WRITE(numout,*) ' lateral cond. type (between 0 and 6) jperio = ', jperio 335 WRITE(numout,*) ' type of horizontal mesh jphgr_msh = ', jphgr_msh 336 WRITE(numout,*) ' longitude of first raw and column T-point ppglam0 = ', ppglam0 337 WRITE(numout,*) ' latitude of first raw and column T-point ppgphi0 = ', ppgphi0 338 WRITE(numout,*) ' zonal grid-spacing (degrees) ppe1_deg = ', ppe1_deg 339 WRITE(numout,*) ' meridional grid-spacing (degrees) ppe2_deg = ', ppe2_deg 340 WRITE(numout,*) ' zonal grid-spacing (degrees) ppe1_m = ', ppe1_m 341 WRITE(numout,*) ' meridional grid-spacing (degrees) ppe2_m = ', ppe2_m 342 WRITE(numout,*) ' ORCA r4, r2 and r05 coefficients ppsur = ', ppsur 343 WRITE(numout,*) ' ppa0 = ', ppa0 344 WRITE(numout,*) ' ppa1 = ', ppa1 345 WRITE(numout,*) ' ppkth = ', ppkth 346 WRITE(numout,*) ' ppacr = ', ppacr 347 WRITE(numout,*) ' Minimum vertical spacing ppdzmin = ', ppdzmin 348 WRITE(numout,*) ' Maximum depth pphmax = ', pphmax 349 WRITE(numout,*) ' Use double tanf function for vertical coordinates ldbletanh = ', ldbletanh 350 WRITE(numout,*) ' Double tanh function parameters ppa2 = ', ppa2 351 WRITE(numout,*) ' ppkth2 = ', ppkth2 352 WRITE(numout,*) ' ppacr2 = ', ppacr2 353 ENDIF 307 354 ! ! Parameter control 308 355 ! … … 348 395 CASE ( 'gyre' ) ; CALL ctl_warn( ' The Benchmark is activated ' ) 349 396 CASE DEFAULT ; CALL ctl_stop( ' The Benchmark is based on the GYRE configuration:', & 350 & ' key_gyre must be usedor set nbench = 0' )397 & ' cp_cfg="gyre" in namelsit &namcfg or set nbench = 0' ) 351 398 END SELECT 352 399 ENDIF -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90
r3294 r3973 8 8 !! 9.0 ! 05-11 (V. Garnier) Surface pressure gradient organization 9 9 !!---------------------------------------------------------------------- 10 #if ( defined key_orca_r1 || defined key_orca_r2 || defined key_orca_r4 ) && ! defined key_coupled 11 !!---------------------------------------------------------------------- 12 !! "key_orca_r1 or 2 or 4" 10 #if ! defined key_coupled 11 12 !!---------------------------------------------------------------------- 13 !! Only for ORCA2 ORCA1 and ORCA025 13 14 !!---------------------------------------------------------------------- 14 15 !!---------------------------------------------------------------------- … … 61 62 REAL(wp) :: zt, zs, zu 62 63 REAL(wp) :: zsm0, zfwfnew 64 IF( cp_cfg == "orca" .AND. jp_cfg == 1 .OR. jp_cfg == 2 .OR. jp_cfg == 4 ) THEN 63 65 !!---------------------------------------------------------------------- 64 66 IF( nn_timing == 1 ) CALL timing_start('dia_fwb') … … 446 448 9020 FORMAT(1X,A,F10.5,A) 447 449 9030 FORMAT(1X,A,F9.4,A) 450 451 ENDIF 448 452 449 453 END SUBROUTINE dia_fwb -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90
r3901 r3973 100 100 INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: mig !: local ==> global domain i-index 101 101 INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: mjg !: local ==> global domain j-index 102 INTEGER, PUBLIC, DIMENSION(jpidta) :: mi0, mi1 !: global ==> local domain i-index !!bug ==> other solution?102 INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: mi0, mi1 !: global ==> local domain i-index !!bug ==> other solution? 103 103 ! ! (mi0=1 and mi1=0 if the global index is not in the local domain) 104 INTEGER, PUBLIC, DIMENSION(jpjdta) :: mj0, mj1 !: global ==> local domain j-index !!bug ==> other solution?104 INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: mj0, mj1 !: global ==> local domain j-index !!bug ==> other solution? 105 105 ! ! (mi0=1 and mi1=0 if the global index is not in the local domain) 106 106 INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: nimppt, njmppt !: i-, j-indexes for each processor … … 195 195 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tmask, umask, vmask, fmask !: land/ocean mask at T-, U-, V- and F-pts 196 196 197 REAL(wp), PUBLIC, DIMENSION(jpiglo) :: tpol, fpol !: north fold mask (jperio= 3 or 4)197 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: tpol, fpol !: north fold mask (jperio= 3 or 4) 198 198 199 199 #if defined key_noslip_accurate … … 272 272 ALLOCATE( nimppt(jpnij) , ibonit(jpnij) , nlcit(jpnij) , nlcjt(jpnij) , & 273 273 & njmppt(jpnij) , ibonjt(jpnij) , nldit(jpnij) , nldjt(jpnij) , & 274 & nleit(jpnij) , nlejt(jpnij) , STAT=ierr(2) ) 274 & nleit(jpnij) , nlejt(jpnij) , & 275 & mi0(jpidta) , mi1 (jpidta), mj0(jpjdta) , mj1 (jpjdta), & 276 & tpol(jpiglo) , fpol(jpiglo) , STAT=ierr(2) ) 275 277 ! 276 278 ALLOCATE( glamt(jpi,jpj) , gphit(jpi,jpj) , e1t(jpi,jpj) , e2t(jpi,jpj) , & -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r3875 r3973 148 148 WRITE(numout,*) '~~~~~~~ ' 149 149 WRITE(numout,*) ' Namelist namrun' 150 WRITE(numout,*) ' configuration name cp_cfg = ', cp_cfg 151 WRITE(numout,*) ' configuration resolution jp_cfg = ', jp_cfg 152 WRITE(numout,*) ' experiment name for output cn_exp = ', cn_exp 150 153 WRITE(numout,*) ' job number nn_no = ', nn_no 151 154 WRITE(numout,*) ' experiment name for output cn_exp = ', cn_exp … … 263 266 WRITE(numout,*) ' Namelist namcla' 264 267 WRITE(numout,*) ' cross land advection nn_cla = ', nn_cla 268 ENDIF 269 IF ( nn_cla .EQ. 1 ) THEN 270 IF ( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2 271 CONTINUE 272 ELSE 273 CALL ctl_stop( 'STOP', 'Cross land advation iplemented only for ORCA2 configuration: cp_cfg = "orca" and jp_cfg = 2 ' ) 274 ENDIF 265 275 ENDIF 266 276 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DOM/domcfg.F90
r3294 r3973 79 79 INTEGER :: ji, jj ! dummy loop argument 80 80 !!---------------------------------------------------------------------- 81 82 81 ! ! ============== ! 83 82 ! ! Local domain ! … … 101 100 mj1(jj) = MAX( 0, MIN( jj - jpjzoom + 1 - njmpp + 1, jpj ) ) 102 101 END DO 103 104 102 IF(lwp) THEN ! control print 105 103 WRITE(numout,*) … … 152 150 IF( lzoom .AND. jpiglo + jpizoom -1 /= jpidta ) lzoom_e = .TRUE. 153 151 IF( lzoom .AND. jpjglo + jpjzoom -1 /= jpjdta ) lzoom_n = .TRUE. 154 155 152 IF(lwp) THEN 156 153 WRITE(numout,*) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DOM/domhgr.F90
r3294 r3973 317 317 gphi0 = - ppe2_m * 1.e-3 318 318 319 #if defined key_agrif && defined key_eel_r6 320 IF( .NOT. Agrif_Root() ) THEN 321 glam0 = Agrif_Parent(glam0) + (Agrif_ix())*Agrif_Parent(ppe1_m) * 1.e-3 322 gphi0 = Agrif_Parent(gphi0) + (Agrif_iy())*Agrif_Parent(ppe2_m) * 1.e-3 323 ppe1_m = Agrif_Parent(ppe1_m)/Agrif_Rhox() 324 ppe2_m = Agrif_Parent(ppe2_m)/Agrif_Rhoy() 319 #if defined key_agrif 320 IF ( cp_cfg == 'eel' .AND. jp_cfg == 6 ) THEN ! for EEL6 configuration only 321 IF( .NOT. Agrif_Root() ) THEN 322 glam0 = Agrif_Parent(glam0) + (Agrif_ix())*Agrif_Parent(ppe1_m) * 1.e-3 323 gphi0 = Agrif_Parent(gphi0) + (Agrif_iy())*Agrif_Parent(ppe2_m) * 1.e-3 324 ppe1_m = Agrif_Parent(ppe1_m)/Agrif_Rhox() 325 ppe2_m = Agrif_Parent(ppe2_m)/Agrif_Rhoy() 326 ENDIF 325 327 ENDIF 326 328 #endif … … 516 518 zphi0 = ppgphi0 - FLOAT( jpjglo/2) * ppe2_m / ( ra * rad ) ! latitude of the first row F-points 517 519 518 #if defined key_agrif && defined key_eel_r6 519 IF( .NOT. Agrif_Root() ) THEN 520 zphi0 = ppgphi0 - FLOAT( Agrif_Parent(jpjglo)/2)*Agrif_Parent(ppe2_m) / (ra * rad) 520 #if defined key_agrif 521 IF cp_cfg == 'eel' .AND. jp_cfg == 6 ) THEN ! for EEL6 configuration only 522 IF( .NOT. Agrif_Root() ) THEN 523 zphi0 = ppgphi0 - FLOAT( Agrif_Parent(jpjglo)/2)*Agrif_Parent(ppe2_m) / (ra * rad) 524 ENDIF 521 525 ENDIF 522 526 #endif -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DYN/divcur.F90
r3294 r3973 226 226 227 227 IF( ln_rnf ) CALL sbc_rnf_div( hdivn ) ! runoffs (update hdivn field) 228 IF( nn_cla == 1 ) CALL cla_div ( kt ) ! Cross Land Advection (Update Hor. divergence)228 IF( nn_cla == 1 .AND. cp_cfg == 'orca' .AND. jp_cfg == 2 ) CALL cla_div ( kt ) ! Cross Land Advection (Update Hor. divergence) 229 229 230 230 ! 4. Lateral boundary conditions on hdivn and rotn -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90
r3765 r3973 197 197 CALL Agrif_dyn( kt ) ! Update velocities on each coarse/fine interfaces 198 198 #endif 199 IF( nn_cla == 1 ) CALL cla_dynspg( kt ) ! Cross Land Advection (update (ua,va))199 IF( nn_cla == 1 .AND. cp_cfg == 'orca' .AND. jp_cfg == 2 ) CALL cla_dynspg( kt ) ! Cross Land Advection (update (ua,va)) 200 200 201 201 ! compute the next vertically averaged velocity (effect of the additional force not included) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90
r3901 r3973 19 19 PUBLIC 20 20 21 22 ! 21 23 !!---------------------------------------------------------------------- 22 24 !! namrun namelist parameters … … 28 30 INTEGER :: nn_no !: job number 29 31 INTEGER :: nn_rstctl !: control of the time step (0, 1 or 2) 30 INTEGER :: nn_rstssh = 0!: hand made initilization of ssh or not (1/0)32 INTEGER :: nn_rstssh = 0 !: hand made initilization of ssh or not (1/0) 31 33 INTEGER :: nn_it000 !: index of the first time step 32 34 INTEGER :: nn_itend !: index of the last time step -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/LBC/cla.F90
r3294 r3973 11 11 !! 3.2 ! 2009-07 (G. Madec) merge cla, cla_div, tra_cla, cla_dynspg 12 12 !! ! and correct a mpp bug reported by A.R. Porter 13 !!----------------------------------------------------------------------14 #if defined key_orca_r215 !!----------------------------------------------------------------------16 !! 'key_orca_r2' global ocean model R217 13 !!---------------------------------------------------------------------- 18 14 !! cla_div : update of horizontal divergence at cla straits … … 733 729 END SUBROUTINE cla_hormuz 734 730 735 #else736 !!----------------------------------------------------------------------737 !! Default key Dummy module738 !!----------------------------------------------------------------------739 USE lib_mpp, ONLY: ctl_stop740 CONTAINS741 SUBROUTINE cla_init742 CALL ctl_stop( 'cla_init: Cross Land Advection hard coded for ORCA_R2 with 31 levels' )743 END SUBROUTINE cla_init744 SUBROUTINE cla_div( kt )745 WRITE(*,*) 'cla_div: You should have not see this print! error?', kt746 END SUBROUTINE cla_div747 SUBROUTINE cla_traadv( kt )748 WRITE(*,*) 'cla_traadv: You should have not see this print! error?', kt749 END SUBROUTINE cla_traadv750 SUBROUTINE cla_dynspg( kt )751 WRITE(*,*) 'dyn_spg_cla: You should have not see this print! error?', kt752 END SUBROUTINE cla_dynspg753 #endif754 755 731 !!====================================================================== 756 732 END MODULE cla -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra_c2d.h90
r2715 r3973 29 29 ! 30 30 INTEGER :: ji, jj ! dummy loop indices 31 # if defined key_orca_r432 INTEGER :: i1, i2, j1, j233 # endif34 31 REAL(wp) :: za00, zd_max, zeumax, zevmax, zetmax 35 32 !!---------------------------------------------------------------------- -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r3901 r3973 84 84 ENDIF 85 85 ! 86 IF( nn_cla == 1 ) CALL cla_traadv( kt ) !== Cross Land Advection ==! (hor. advection)86 IF( nn_cla == 1 .AND. cp_cfg == 'orca' .AND. jp_cfg == 2 ) CALL cla_traadv( kt ) !== Cross Land Advection ==! (hor. advection) 87 87 ! 88 88 ! !== effective transport ==! -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r3954 r3973 225 225 CHARACTER(len=80), DIMENSION(16) :: cltxt 226 226 !! 227 NAMELIST/namctl/ ln_ctl 227 NAMELIST/namctl/ ln_ctl, nn_print, nn_ictls, nn_ictle, & 228 228 & nn_isplt, nn_jsplt, nn_jctls, nn_jctle, & 229 229 & nn_bench, nn_timing 230 NAMELIST/namcfg/ cp_cfg, jp_cfg, jpidta, jpjdta, jpkdta, jpiglo, jpjglo, & 231 & jpizoom, jpjzoom, jperio, jphgr_msh, & 232 & ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 233 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 234 & ppa2, ppkth2, ppacr2 230 235 !!---------------------------------------------------------------------- 231 236 ! … … 245 250 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namctl in configuration namelist', lwp ) 246 251 WRITE( numond, namctl ) 252 253 ! 254 REWIND( numnam_ref ) ! Namelist namcfg in reference namelist : Control prints & Benchmark 255 READ ( numnam_ref, namcfg, IOSTAT = ios, ERR = 903 ) 256 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfg in reference namelist', lwp ) 257 258 REWIND( numnam_cfg ) ! Namelist namcfg in confguration namelist : Control prints & Benchmark 259 READ ( numnam_cfg, namcfg, IOSTAT = ios, ERR = 904 ) 260 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfg in configuration namelist', lwp ) 261 WRITE( numond, namcfg ) 247 262 ! 248 263 ! !--------------------------------------------! … … 399 414 400 415 ! ! Misc. options 401 IF( nn_cla == 1 416 IF( nn_cla == 1 .AND. cp_cfg == 'orca' .AND. jp_cfg == 2 ) CALL cla_init ! Cross Land Advection 402 417 CALL icb_init( rdt, nit000) ! initialise icebergs instance 403 418 … … 460 475 jsplt = nn_jsplt 461 476 nbench = nn_bench 477 478 IF(lwp) THEN ! control print 479 WRITE(numout,*) 480 WRITE(numout,*) 'namcfg : configuration initialization through namelist read' 481 WRITE(numout,*) '~~~~~~~ ' 482 WRITE(numout,*) ' Namelist namcfg' 483 WRITE(numout,*) ' configuration name cp_cfg = ', TRIM(cp_cfg) 484 WRITE(numout,*) ' configuration resolution jp_cfg = ', jp_cfg 485 WRITE(numout,*) ' 1st lateral dimension ( >= jpi ) jpidta = ', jpidta 486 WRITE(numout,*) ' 2nd " " ( >= jpj ) jpjdta = ', jpjdta 487 WRITE(numout,*) ' 3nd " " jpkdta = ', jpkdta 488 WRITE(numout,*) ' 1st dimension of global domain in i jpiglo = ', jpiglo 489 WRITE(numout,*) ' 2nd - - in j jpjglo = ', jpjglo 490 WRITE(numout,*) ' left bottom i index of the zoom (in data domain) jpizoom = ', jpizoom 491 WRITE(numout,*) ' left bottom j index of the zoom (in data domain) jpizoom = ', jpjzoom 492 WRITE(numout,*) ' lateral cond. type (between 0 and 6) jperio = ', jperio 493 WRITE(numout,*) ' type of horizontal mesh jphgr_msh = ', jphgr_msh 494 WRITE(numout,*) ' longitude of first raw and column T-point ppglam0 = ', ppglam0 495 WRITE(numout,*) ' latitude of first raw and column T-point ppgphi0 = ', ppgphi0 496 WRITE(numout,*) ' zonal grid-spacing (degrees) ppe1_deg = ', ppe1_deg 497 WRITE(numout,*) ' meridional grid-spacing (degrees) ppe2_deg = ', ppe2_deg 498 WRITE(numout,*) ' zonal grid-spacing (degrees) ppe1_m = ', ppe1_m 499 WRITE(numout,*) ' meridional grid-spacing (degrees) ppe2_m = ', ppe2_m 500 WRITE(numout,*) ' ORCA r4, r2 and r05 coefficients ppsur = ', ppsur 501 WRITE(numout,*) ' ppa0 = ', ppa0 502 WRITE(numout,*) ' ppa1 = ', ppa1 503 WRITE(numout,*) ' ppkth = ', ppkth 504 WRITE(numout,*) ' ppacr = ', ppacr 505 WRITE(numout,*) ' Minimum vertical spacing ppdzmin = ', ppdzmin 506 WRITE(numout,*) ' Maximum depth pphmax = ', pphmax 507 WRITE(numout,*) ' Use double tanf function for vertical coordinates ldbletanh = ', ldbletanh 508 WRITE(numout,*) ' Double tanh function parameters ppa2 = ', ppa2 509 WRITE(numout,*) ' ppkth2 = ', ppkth2 510 WRITE(numout,*) ' ppacr2 = ', ppacr2 511 ENDIF 462 512 ! ! Parameter control 463 513 ! … … 503 553 CASE ( 'gyre' ) ; CALL ctl_warn( ' The Benchmark is activated ' ) 504 554 CASE DEFAULT ; CALL ctl_stop( ' The Benchmark is based on the GYRE configuration:', & 505 & ' key_gyre must be usedor set nbench = 0' )555 & ' cp_cfg = "gyre" in namelist &namcfg or set nbench = 0' ) 506 556 END SELECT 507 557 ENDIF -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/par_oce.F90
r3294 r3973 25 25 INTEGER, PUBLIC, PARAMETER :: jprecj = 1 !: number of rows for overlap 26 26 27 !! Ocean Domain sizes 28 !! ------------------ 29 !! data domain (jpidta,jpjdta) 30 !! global or zoom domain (jpiglo,jpjglo) 31 !! local domain ( jpi , jpj ) 32 33 #if defined key_orca_r4 34 !!--------------------------------------------------------------------- 35 !! 'key_orca_r4' : global ocean : ORCA R4 36 !!--------------------------------------------------------------------- 37 # include "par_ORCA_R4.h90" 38 #elif defined key_orca_r2 39 !!--------------------------------------------------------------------- 40 !! 'key_orca_r2' : global ocean : ORCA R4 41 !!--------------------------------------------------------------------- 42 # include "par_ORCA_R2.h90" 43 #elif defined key_orca_r1 44 !!--------------------------------------------------------------------- 45 !! 'key_orca_r1' : global ocean : ORCA R1 46 !!--------------------------------------------------------------------- 47 # include "par_ORCA_R1.h90" 48 #elif defined key_orca_r05 49 !!--------------------------------------------------------------------- 50 !! 'key_orca_r05' : global ocean : ORCA R05 51 !!--------------------------------------------------------------------- 52 # include "par_ORCA_R05.h90" 53 #elif defined key_orca_r025 54 !!--------------------------------------------------------------------- 55 !! 'key_orca_r025' : global ocean : ORCA R025 56 !!--------------------------------------------------------------------- 57 # include "par_ORCA_R025.h90" 58 #elif defined key_eel_r2 59 !!--------------------------------------------------------------------- 60 !! 'key_eel_r2' : channel : EEL R2 61 !!--------------------------------------------------------------------- 62 # include "par_EEL_R2.h90" 63 #elif defined key_eel_r5 64 !!--------------------------------------------------------------------- 65 !! 'key_eel_r5' : channel : EEL R5 66 !!--------------------------------------------------------------------- 67 # include "par_EEL_R5.h90" 68 #elif defined key_eel_r6 69 !!--------------------------------------------------------------------- 70 !! 'key_eel_r6' : channel : EEL R6 71 !!--------------------------------------------------------------------- 72 # include "par_EEL_R6.h90" 73 #elif defined key_gyre 74 !!--------------------------------------------------------------------- 75 !! 'key_gyre' : mid-latitude basin : GYRE 76 !!--------------------------------------------------------------------- 77 # include "par_GYRE.h90" 78 #elif defined key_pomme_r025 79 !!--------------------------------------------------------------------- 80 !! 'key_pomme_r025': regional basin : POMME025 81 !!--------------------------------------------------------------------- 82 # include "par_POMME_R025.h90" 83 #elif defined key_amm_12km 84 !!--------------------------------------------------------------------- 85 !! 'key_amm_12km': Atlantic Margin Model : AMM12km 86 !!--------------------------------------------------------------------- 87 # include "par_AMM_12km.h90" 88 #else 89 !!--------------------------------------------------------------------- 90 !! default option : small closed basin 91 !!--------------------------------------------------------------------- 92 CHARACTER(len=16), PUBLIC, PARAMETER :: cp_cfg = "default" !: name of the configuration 93 INTEGER , PUBLIC, PARAMETER :: jp_cfg = 0 !: resolution of the configuration 27 !!---------------------------------------------------------------------- 28 !! namcfg namelist parameters 29 !!---------------------------------------------------------------------- 30 CHARACTER(lc) :: cp_cfg !: name of the configuration 31 INTEGER :: jp_cfg !: resolution of the configuration 94 32 95 33 ! data size !!! * size of all input files * 96 INTEGER , PUBLIC, PARAMETER :: jpidta = 10!: 1st lateral dimension ( >= jpi )97 INTEGER , PUBLIC, PARAMETER :: jpjdta = 12!: 2nd " " ( >= jpj )98 INTEGER , PUBLIC, PARAMETER :: jpkdta = 31!: number of levels ( >= jpk )34 INTEGER :: jpidta !: 1st lateral dimension ( >= jpi ) 35 INTEGER :: jpjdta !: 2nd " " ( >= jpj ) 36 INTEGER :: jpkdta !: number of levels ( >= jpk ) 99 37 100 38 ! global or zoom domain size !!! * computational domain * 101 INTEGER , PUBLIC, PARAMETER :: jpiglo = jpidta!: 1st dimension of global domain --> i102 INTEGER , PUBLIC, PARAMETER :: jpjglo = jpjdta!: 2nd - - --> j39 INTEGER :: jpiglo !: 1st dimension of global domain --> i 40 INTEGER :: jpjglo !: 2nd - - --> j 103 41 104 42 ! zoom starting position 105 INTEGER , PUBLIC, PARAMETER :: jpizoom = 1!: left bottom (i,j) indices of the zoom106 INTEGER , PUBLIC, PARAMETER :: jpjzoom = 1!: in data domain indices43 INTEGER :: jpizoom !: left bottom (i,j) indices of the zoom 44 INTEGER :: jpjzoom !: in data domain indices 107 45 108 46 ! Domain characteristics 109 INTEGER , PUBLIC, PARAMETER :: jperio = 0!: lateral cond. type (between 0 and 6)110 ! 111 ! 112 ! 113 ! 114 ! 47 INTEGER :: jperio !: lateral cond. type (between 0 and 6) 48 ! ! = 0 closed ; = 1 cyclic East-West 49 ! ! = 2 equatorial symmetric ; = 3 North fold T-point pivot 50 ! ! = 4 cyclic East-West AND North fold T-point pivot 51 ! ! = 5 North fold F-point pivot 52 ! ! = 6 cyclic East-West AND North fold F-point pivot 115 53 116 54 !! Values set to pp_not_used indicates that this parameter is not used in THIS config. 117 55 !! Values set to pp_to_be_computed indicates that variables will be computed in domzgr 118 REAL(wp) , PUBLIC, PARAMETER:: pp_not_used = 999999._wp !: vertical grid parameter119 REAL(wp) , PUBLIC, PARAMETER :: pp_to_be_computed = 999999._wp !: - - -56 REAL(wp) :: pp_not_used = 999999._wp !: vertical grid parameter 57 REAL(wp) :: pp_to_be_computed = 999998._wp !: - - - 120 58 121 59 122 60 !! Horizontal grid parameters for domhgr 123 61 !! ===================================== 124 INTEGER , PUBLIC, PARAMETER :: jphgr_msh = 0!: type of horizontal mesh125 ! 126 ! 127 ! 128 ! 129 ! 62 INTEGER :: jphgr_msh !: type of horizontal mesh 63 ! ! = 0 curvilinear coordinate on the sphere read in coordinate.nc 64 ! ! = 1 geographical mesh on the sphere with regular grid-spacing 65 ! ! = 2 f-plane with regular grid-spacing 66 ! ! = 3 beta-plane with regular grid-spacing 67 ! ! = 4 Mercator grid with T/U point at the equator 130 68 131 REAL(wp) , PUBLIC, PARAMETER :: ppglam0 = 0.0_wp!: longitude of first raw and column T-point (jphgr_msh = 1)132 REAL(wp) , PUBLIC, PARAMETER :: ppgphi0 = -35.0_wp!: latitude of first raw and column T-point (jphgr_msh = 1)69 REAL(wp) :: ppglam0 !: longitude of first raw and column T-point (jphgr_msh = 1) 70 REAL(wp) :: ppgphi0 !: latitude of first raw and column T-point (jphgr_msh = 1) 133 71 ! ! used for Coriolis & Beta parameters (jphgr_msh = 2 or 3) 134 REAL(wp) , PUBLIC, PARAMETER :: ppe1_deg = 1.0_wp!: zonal grid-spacing (degrees)135 REAL(wp) , PUBLIC, PARAMETER :: ppe2_deg = 0.5_wp!: meridional grid-spacing (degrees)136 REAL(wp) , PUBLIC, PARAMETER :: ppe1_m = 5000.0_wp!: zonal grid-spacing (degrees)137 REAL(wp) , PUBLIC, PARAMETER :: ppe2_m = 5000.0_wp!: meridional grid-spacing (degrees)72 REAL(wp) :: ppe1_deg !: zonal grid-spacing (degrees) 73 REAL(wp) :: ppe2_deg !: meridional grid-spacing (degrees) 74 REAL(wp) :: ppe1_m !: zonal grid-spacing (degrees) 75 REAL(wp) :: ppe2_m !: meridional grid-spacing (degrees) 138 76 139 77 !! Vertical grid parameter for domzgr 140 78 !! ================================== 141 REAL(wp) , PUBLIC, PARAMETER :: ppsur = -4762.96143546300_wp!: ORCA r4, r2 and r05 coefficients142 REAL(wp) , PUBLIC, PARAMETER :: ppa0 = 255.58049070440_wp!: (default coefficients)143 REAL(wp) , PUBLIC, PARAMETER :: ppa1 = 245.58132232490_wp!:144 REAL(wp) , PUBLIC, PARAMETER :: ppkth = 21.43336197938_wp!:145 REAL(wp) , PUBLIC, PARAMETER :: ppacr = 3.00000000000_wp!:79 REAL(wp) :: ppsur !: ORCA r4, r2 and r05 coefficients 80 REAL(wp) :: ppa0 !: (default coefficients) 81 REAL(wp) :: ppa1 !: 82 REAL(wp) :: ppkth !: 83 REAL(wp) :: ppacr !: 146 84 ! 147 85 ! If both ppa0 ppa1 and ppsur are specified to 0, then 148 86 ! they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr 149 REAL(wp) , PUBLIC, PARAMETER :: ppdzmin = 10._wp!: Minimum vertical spacing150 REAL(wp) , PUBLIC, PARAMETER :: pphmax = 5000._wp!: Maximum depth87 REAL(wp) :: ppdzmin !: Minimum vertical spacing 88 REAL(wp) :: pphmax !: Maximum depth 151 89 ! 152 LOGICAL , PUBLIC, PARAMETER :: ldbletanh = .TRUE. !: Use/do not use double tanf function for vertical coordinates 153 REAL(wp), PUBLIC, PARAMETER :: ppa2 = 100.760928500000_wp !: Double tanh function parameters 154 REAL(wp), PUBLIC, PARAMETER :: ppkth2= 48.029893720000_wp !: 155 REAL(wp), PUBLIC, PARAMETER :: ppacr2= 13.000000000000_wp !: 156 ! 157 #endif 158 90 LOGICAL :: ldbletanh !: Use/do not use double tanf function for vertical coordinates 91 REAL(wp) :: ppa2 !: Double tanh function parameters 92 REAL(wp) :: ppkth2 !: 93 REAL(wp) :: ppacr2 !: 159 94 160 95 !!--------------------------------------------------------------------- -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/SAS_SRC/nemogcm.F90
r3954 r3973 159 159 & nn_isplt, nn_jsplt, nn_jctls, nn_jctle, & 160 160 & nn_bench, nn_timing 161 NAMELIST/namcfg/ cp_cfg, jp_cfg, jpidta, jpjdta, jpkdta, jpiglo, jpjglo, & 162 & jpizoom, jpjzoom, jperio, jphgr_msh, & 163 & ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 164 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 165 & ppa2, ppkth2, ppacr2 161 166 !!---------------------------------------------------------------------- 162 167 ! … … 176 181 WRITE( numond, namctl ) 177 182 ! 183 REWIND( numnam_ref ) ! Namelist namcfg in reference namelist : Control prints & Benchmark 184 READ ( numnam_ref, namcfg, IOSTAT = ios, ERR = 903 ) 185 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfg in reference namelist', lwp ) 186 187 REWIND( numnam_cfg ) ! Namelist namcfg in confguration namelist : Control prints & Benchmark 188 READ ( numnam_cfg, namcfg, IOSTAT = ios, ERR = 904 ) 189 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfg in configuration namelist', lwp ) 190 WRITE( numond, namcfg ) 178 191 ! !--------------------------------------------! 179 192 ! ! set communicator & select the local node ! … … 310 323 jsplt = nn_jsplt 311 324 nbench = nn_bench 325 326 IF(lwp) THEN ! control print 327 WRITE(numout,*) 328 WRITE(numout,*) 'namcfg : configuration initialization through namelist read' 329 WRITE(numout,*) '~~~~~~~ ' 330 WRITE(numout,*) ' Namelist namcfg' 331 WRITE(numout,*) ' configuration name cp_cfg = ', TRIM(cp_cfg) 332 WRITE(numout,*) ' configuration resolution jp_cfg = ', jp_cfg 333 WRITE(numout,*) ' 1st lateral dimension ( >= jpi ) jpidta = ', jpidta 334 WRITE(numout,*) ' 2nd " " ( >= jpj ) jpjdta = ', jpjdta 335 WRITE(numout,*) ' 3nd " " jpkdta = ', jpkdta 336 WRITE(numout,*) ' 1st dimension of global domain in i jpiglo = ', jpiglo 337 WRITE(numout,*) ' 2nd - - in j jpjglo = ', jpjglo 338 WRITE(numout,*) ' left bottom i index of the zoom (in data domain) jpizoom = ', jpizoom 339 WRITE(numout,*) ' left bottom j index of the zoom (in data domain) jpizoom = ', jpjzoom 340 WRITE(numout,*) ' lateral cond. type (between 0 and 6) jperio = ', jperio 341 WRITE(numout,*) ' type of horizontal mesh jphgr_msh = ', jphgr_msh 342 WRITE(numout,*) ' longitude of first raw and column T-point ppglam0 = ', ppglam0 343 WRITE(numout,*) ' latitude of first raw and column T-point ppgphi0 = ', ppgphi0 344 WRITE(numout,*) ' zonal grid-spacing (degrees) ppe1_deg = ', ppe1_deg 345 WRITE(numout,*) ' meridional grid-spacing (degrees) ppe2_deg = ', ppe2_deg 346 WRITE(numout,*) ' zonal grid-spacing (degrees) ppe1_m = ', ppe1_m 347 WRITE(numout,*) ' meridional grid-spacing (degrees) ppe2_m = ', ppe2_m 348 WRITE(numout,*) ' ORCA r4, r2 and r05 coefficients ppsur = ', ppsur 349 WRITE(numout,*) ' ppa0 = ', ppa0 350 WRITE(numout,*) ' ppa1 = ', ppa1 351 WRITE(numout,*) ' ppkth = ', ppkth 352 WRITE(numout,*) ' ppacr = ', ppacr 353 WRITE(numout,*) ' Minimum vertical spacing ppdzmin = ', ppdzmin 354 WRITE(numout,*) ' Maximum depth pphmax = ', pphmax 355 WRITE(numout,*) ' Use double tanf function for vertical coordinates ldbletanh = ', ldbletanh 356 WRITE(numout,*) ' Double tanh function parameters ppa2 = ', ppa2 357 WRITE(numout,*) ' ppkth2 = ', ppkth2 358 WRITE(numout,*) ' ppacr2 = ', ppacr2 359 ENDIF 312 360 ! ! Parameter control 313 361 ! … … 353 401 CASE ( 'gyre' ) ; CALL ctl_warn( ' The Benchmark is activated ' ) 354 402 CASE DEFAULT ; CALL ctl_stop( ' The Benchmark is based on the GYRE configuration:', & 355 & ' key_gyre must be usedor set nbench = 0' )403 & ' cp_cfg="gyre" in namelist &namcfg or set nbench = 0' ) 356 404 END SELECT 357 405 ENDIF -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/TRP/trdmld_trc.F90
r3792 r3973 434 434 ENDIF 435 435 436 #if ! defined key_gyre 436 IF ( cp_cfg .NE. 'gyre' ) THEN ! other than GYRE configuration 437 437 ! GYRE : for diagnostic fields, are needed if cyclic B.C. are present, but not for purely MPI comm. 438 438 ! therefore we do not call lbc_lnk in GYRE config. (closed basin, no cyclic B.C.) 439 DO jn = 1, jptra440 IF( ln_trdtrc(jn) ) THEN441 DO jl = 1, jpltrd_trc442 CALL lbc_lnk( tmltrd_trc(:,:,jl,jn), 'T', 1. ) ! lateral boundary conditions443 END DO444 ENDIF445 END DO446 #endif 439 DO jn = 1, jptra 440 IF( ln_trdtrc(jn) ) THEN 441 DO jl = 1, jpltrd_trc 442 CALL lbc_lnk( tmltrd_trc(:,:,jl,jn), 'T', 1. ) ! lateral boundary conditions 443 END DO 444 ENDIF 445 END DO 446 ENDIF 447 447 ! ====================================================================== 448 448 ! II. Cumulate the trends over the analysis window … … 573 573 574 574 !-- Lateral boundary conditions 575 #if ! defined key_gyre 576 577 CALL lbc_lnk( ztmltot(:,:,jn) , 'T', 1. ) ; CALL lbc_lnk( ztmlres(:,:,jn) , 'T', 1. ) 578 CALL lbc_lnk( ztmlatf(:,:,jn) , 'T', 1. ) ; CALL lbc_lnk( ztmlrad(:,:,jn) , 'T', 1. ) 579 580 #endif 575 IF ( cp_cfg .NE. 'gyre' ) THEN 576 CALL lbc_lnk( ztmltot(:,:,jn) , 'T', 1. ) ; CALL lbc_lnk( ztmlres(:,:,jn) , 'T', 1. ) 577 CALL lbc_lnk( ztmlatf(:,:,jn) , 'T', 1. ) ; CALL lbc_lnk( ztmlrad(:,:,jn) , 'T', 1. ) 578 ENDIF 579 581 580 582 581 #if defined key_diainstant … … 624 623 & + tmltrd_rad_sumb_trc(:,:,jn) 625 624 626 !-- Lateral boundary conditions 627 #if ! defined key_gyre 628 CALL lbc_lnk( ztmltot2(:,:,jn), 'T', 1. ) 629 CALL lbc_lnk( ztmlres2(:,:,jn), 'T', 1. ) 630 DO jl = 1, jpltrd_trc 631 CALL lbc_lnk( ztmltrd2(:,:,jl,jn), 'T', 1. ) ! will be output in the NetCDF trends file 632 END DO 633 #endif 625 !-- Lateral boundary conditions 626 IF ( cp_cfg .NE. 'gyre' ) THEN ! other than GYRE configuration 627 CALL lbc_lnk( ztmltot2(:,:,jn), 'T', 1. ) 628 CALL lbc_lnk( ztmlres2(:,:,jn), 'T', 1. ) 629 DO jl = 1, jpltrd_trc 630 CALL lbc_lnk( ztmltrd2(:,:,jl,jn), 'T', 1. ) ! will be output in the NetCDF trends file 631 END DO 632 ENDIF 633 634 634 ENDIF 635 635 END DO … … 1009 1009 1010 1010 !-- Lateral boundary conditions 1011 #if ! defined key_gyre 1012 ! ES_B27_CD_WARN : lbc inutile GYRE, cf. + haut 1013 DO jn = 1, jpdiabio 1014 CALL lbc_lnk( ztmltrdbio2(:,:,jn), 'T', 1. ) 1015 ENDDO 1016 #endif 1011 IF ( cp_cfg .NE. 'gyre' ) THEN ! other than GYRE configuration 1012 ! ES_B27_CD_WARN : lbc inutile GYRE, cf. + haut 1013 DO jn = 1, jpdiabio 1014 CALL lbc_lnk( ztmltrdbio2(:,:,jn), 'T', 1. ) 1015 ENDDO 1016 ENDIF 1017 1017 1018 IF( lldebug ) THEN 1018 1019 ! … … 1273 1274 ! ----------------------------------------- 1274 1275 IF( ln_mskland ) THEN ; clop = "only(x)" ! put 1.e+20 on land (very expensive!!) 1275 ELSE ; clop = "x" ! no use of the mask value (require less cp utime)1276 ELSE ; clop = "x" ! no use of the mask value (require less cp time) 1276 1277 ENDIF 1277 1278 # if defined key_diainstant
Note: See TracChangeset
for help on using the changeset viewer.