- Timestamp:
- 2015-08-26T16:14:53+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/DEV_r5107_dynvor_updates/NEMOGCM/NEMO/OFF_SRC/nemogcm.F90
r5256 r5709 18 18 USE c1d ! 1D configuration 19 19 USE domcfg ! domain configuration (dom_cfg routine) 20 USE domain ! domain initialization 21 USE istate ! initial state setting (istate_init routine)20 USE domain ! domain initialization from coordinate & bathymetry (dom_init routine) 21 USE domrea ! domain initialization from mesh_mask (dom_init routine) 22 22 USE eosbn2 ! equation of state (eos bn2 routine) 23 23 ! ! ocean physics … … 34 34 USE trcstp ! passive tracer time-stepping (trc_stp routine) 35 35 USE dtadyn ! Lecture and interpolation of the dynamical fields 36 USE stpctl ! time stepping control (stp_ctl routine)37 36 ! ! I/O & MPP 38 37 USE iom ! I/O library … … 95 94 istp = nit000 96 95 ! 97 CALL iom_init( "nemo") ! iom_put initialization (must be done after nemo_init for AGRIF+XIOS+OASIS)96 CALL iom_init( cxios_context ) ! iom_put initialization (must be done after nemo_init for AGRIF+XIOS+OASIS) 98 97 ! 99 98 DO WHILE ( istp <= nitend .AND. nstop == 0 ) ! time stepping … … 108 107 END DO 109 108 #if defined key_iomput 110 CALL iom_context_finalize( "nemo") ! needed for XIOS+AGRIF109 CALL iom_context_finalize( cxios_context ) ! needed for XIOS+AGRIF 111 110 #endif 112 111 … … 143 142 INTEGER :: ilocal_comm ! local integer 144 143 INTEGER :: ios 144 LOGICAL :: llexist 145 145 CHARACTER(len=80), DIMENSION(16) :: cltxt 146 146 !! … … 149 149 & nn_bench, nn_timing 150 150 NAMELIST/namcfg/ cp_cfg, cp_cfz, jp_cfg, jpidta, jpjdta, jpkdta, jpiglo, jpjglo, & 151 & jpizoom, jpjzoom, jperio 151 & jpizoom, jpjzoom, jperio, ln_use_jattr 152 152 !!---------------------------------------------------------------------- 153 153 cltxt = '' 154 cxios_context = 'nemo' 154 155 ! 155 156 ! ! Open reference namelist and configuration namelist files … … 181 182 ! !--------------------------------------------! 182 183 #if defined key_iomput 183 CALL xios_initialize( " nemo",return_comm=ilocal_comm )184 narea = mynode( cltxt, numnam_ref, numnam_cfg, numond , nstop, ilocal_comm ) ! Nodes selection184 CALL xios_initialize( "for_xios_mpi_id",return_comm=ilocal_comm ) 185 narea = mynode( cltxt, 'output.namelist.dyn', numnam_ref, numnam_cfg, numond , nstop, ilocal_comm ) ! Nodes selection 185 186 #else 186 187 ilocal_comm = 0 187 narea = mynode( cltxt, numnam_ref, numnam_cfg, numond , nstop ) ! Nodes selection (control print return in cltxt)188 narea = mynode( cltxt, 'output.namelist.dyn', numnam_ref, numnam_cfg, numond , nstop ) ! Nodes selection (control print return in cltxt) 188 189 #endif 189 190 … … 233 234 WRITE(numout,*) ' NEMO team' 234 235 WRITE(numout,*) ' Ocean General Circulation Model' 235 WRITE(numout,*) ' version 3. 5 (2012) '236 WRITE(numout,*) ' version 3.6 (2015) ' 236 237 WRITE(numout,*) 237 238 WRITE(numout,*) … … 268 269 IF( lk_c1d ) CALL c1d_init ! 1D column configuration 269 270 CALL dom_cfg ! Domain configuration 270 CALL dom_init ! Domain 271 ! 272 INQUIRE( FILE='coordinates.nc', EXIST = llexist ) ! Check if coordinate file exist 273 ! 274 IF( llexist ) THEN ; CALL dom_init ! compute the grid from coordinates and bathymetry 275 ELSE ; CALL dom_rea ! read grid from the meskmask 276 ENDIF 271 277 CALL istate_init ! ocean initial state (Dynamics and tracers) 272 278 … … 275 281 IF( ln_ctl ) CALL prt_ctl_init ! Print control 276 282 277 ! ! Ocean physics278 283 CALL sbc_init ! Forcings : surface module 284 279 285 #if ! defined key_degrad 280 286 CALL ldf_tra_init ! Lateral ocean tracer physics … … 282 288 IF( lk_ldfslp ) CALL ldf_slp_init ! slope of lateral mixing 283 289 284 ! ! Active tracers285 290 CALL tra_qsr_init ! penetrative solar radiation qsr 286 291 IF( lk_trabbl ) CALL tra_bbl_init ! advective (and/or diffusive) bottom boundary layer scheme 287 292 288 CALL trc_nam_run ! Needed to get restart parameters for passive tracers 289 IF( ln_rsttr ) THEN 290 neuler = 1 ! Set time-step indicator at nit000 (leap-frog) 291 CALL trc_rst_cal( nit000, 'READ' ) ! calendar 292 ELSE 293 neuler = 0 ! Set time-step indicator at nit000 (euler) 294 CALL day_init ! set calendar 295 ENDIF 296 ! ! Dynamics 293 CALL trc_nam_run ! Needed to get restart parameters for passive tracers 294 CALL trc_rst_cal( nit000, 'READ' ) ! calendar 297 295 CALL dta_dyn_init ! Initialization for the dynamics 298 296 299 ! ! Passive tracers300 297 CALL trc_init ! Passive tracers initialization 301 ! 302 ! Initialise diaptr as some variables are used in if statements later (in 303 ! various advection and diffusion routines. 304 CALL dia_ptr_init 305 ! 306 IF(lwp) WRITE(numout,cform_aaa) ! Flag AAAAAAA 298 CALL dia_ptr_init ! Initialise diaptr as some variables are used 299 ! ! in various advection and diffusion routines 300 IF(lwp) WRITE(numout,cform_aaa) ! Flag AAAAAAA 307 301 ! 308 302 IF( nn_timing == 1 ) CALL timing_stop( 'nemo_init') … … 359 353 WRITE(numout,*) ' left bottom j index of the zoom (in data domain) jpizoom = ', jpjzoom 360 354 WRITE(numout,*) ' lateral cond. type (between 0 and 6) jperio = ', jperio 355 WRITE(numout,*) ' use file attribute if exists as i/p j-start ln_use_jattr = ', ln_use_jattr 361 356 ENDIF 362 357 ! ! Parameter control … … 658 653 END SUBROUTINE nemo_northcomms 659 654 #endif 655 656 SUBROUTINE istate_init 657 !!---------------------------------------------------------------------- 658 !! *** ROUTINE istate_init *** 659 !! 660 !! ** Purpose : Initialization to zero of the dynamics and tracers. 661 !!---------------------------------------------------------------------- 662 ! 663 ! now fields ! after fields ! 664 un (:,:,:) = 0._wp ; ua(:,:,:) = 0._wp ! 665 vn (:,:,:) = 0._wp ; va(:,:,:) = 0._wp ! 666 wn (:,:,:) = 0._wp ! ! 667 hdivn(:,:,:) = 0._wp ! ! 668 tsn (:,:,:,:) = 0._wp ! ! 669 ! 670 rhd (:,:,:) = 0.e0 671 rhop (:,:,:) = 0.e0 672 rn2 (:,:,:) = 0.e0 673 ! 674 END SUBROUTINE istate_init 675 676 SUBROUTINE stp_ctl( kt, kindic ) 677 !!---------------------------------------------------------------------- 678 !! *** ROUTINE stp_ctl *** 679 !! 680 !! ** Purpose : Control the run 681 !! 682 !! ** Method : - Save the time step in numstp 683 !! 684 !! ** Actions : 'time.step' file containing the last ocean time-step 685 !!---------------------------------------------------------------------- 686 INTEGER, INTENT(in ) :: kt ! ocean time-step index 687 INTEGER, INTENT(inout) :: kindic ! indicator of solver convergence 688 !!---------------------------------------------------------------------- 689 ! 690 IF( kt == nit000 .AND. lwp ) THEN 691 WRITE(numout,*) 692 WRITE(numout,*) 'stp_ctl : time-stepping control' 693 WRITE(numout,*) '~~~~~~~' 694 ! open time.step file 695 CALL ctl_opn( numstp, 'time.step', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 696 ENDIF 697 ! 698 IF(lwp) WRITE ( numstp, '(1x, i8)' ) kt !* save the current time step in numstp 699 IF(lwp) REWIND( numstp ) ! -------------------------- 700 ! 701 END SUBROUTINE stp_ctl 660 702 !!====================================================================== 661 703 END MODULE nemogcm
Note: See TracChangeset
for help on using the changeset viewer.