- Timestamp:
- 2015-07-02T15:57:10+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5107_mld_zint/NEMOGCM/NEMO/OFF_SRC/nemogcm.F90
r5450 r5534 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 !! … … 182 182 ! !--------------------------------------------! 183 183 #if defined key_iomput 184 CALL xios_initialize( " nemo",return_comm=ilocal_comm )184 CALL xios_initialize( "for_xios_mpi_id",return_comm=ilocal_comm ) 185 185 narea = mynode( cltxt, 'output.namelist.dyn', numnam_ref, numnam_cfg, numond , nstop, ilocal_comm ) ! Nodes selection 186 186 #else … … 269 269 IF( lk_c1d ) CALL c1d_init ! 1D column configuration 270 270 CALL dom_cfg ! Domain configuration 271 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 272 277 CALL istate_init ! ocean initial state (Dynamics and tracers) 273 278 … … 276 281 IF( ln_ctl ) CALL prt_ctl_init ! Print control 277 282 278 ! ! Ocean physics279 283 CALL sbc_init ! Forcings : surface module 284 280 285 #if ! defined key_degrad 281 286 CALL ldf_tra_init ! Lateral ocean tracer physics … … 283 288 IF( lk_ldfslp ) CALL ldf_slp_init ! slope of lateral mixing 284 289 285 ! ! Active tracers286 290 CALL tra_qsr_init ! penetrative solar radiation qsr 287 291 IF( lk_trabbl ) CALL tra_bbl_init ! advective (and/or diffusive) bottom boundary layer scheme 288 292 289 CALL trc_nam_run ! Needed to get restart parameters for passive tracers 290 IF( ln_rsttr ) THEN 291 neuler = 1 ! Set time-step indicator at nit000 (leap-frog) 292 CALL trc_rst_cal( nit000, 'READ' ) ! calendar 293 ELSE 294 neuler = 0 ! Set time-step indicator at nit000 (euler) 295 CALL day_init ! set calendar 296 ENDIF 297 ! ! Dynamics 293 CALL trc_nam_run ! Needed to get restart parameters for passive tracers 294 CALL trc_rst_cal( nit000, 'READ' ) ! calendar 298 295 CALL dta_dyn_init ! Initialization for the dynamics 299 296 300 ! ! Passive tracers301 297 CALL trc_init ! Passive tracers initialization 302 ! 303 ! Initialise diaptr as some variables are used in if statements later (in 304 ! various advection and diffusion routines. 305 CALL dia_ptr_init 306 ! 307 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 308 301 ! 309 302 IF( nn_timing == 1 ) CALL timing_stop( 'nemo_init') … … 660 653 END SUBROUTINE nemo_northcomms 661 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 662 702 !!====================================================================== 663 703 END MODULE nemogcm
Note: See TracChangeset
for help on using the changeset viewer.