MODULE trcice !!====================================================================== !! *** MODULE trcice *** !! TOP : Manage the communication between TOP and sea ice !!====================================================================== !! History : 3.5 ! 2013 (M. Vancoppenolle, O. Aumont, G. Madec), original code !!---------------------------------------------------------------------- #if defined key_top !!---------------------------------------------------------------------- !! 'key_top' TOP models !!---------------------------------------------------------------------- !! trc_ice : Call the appropriate sea ice tracer subroutine !!---------------------------------------------------------------------- USE oce_trc ! shared variables between ocean and passive tracers USE trc ! passive tracers common variables ! USE trcrst ! passive tracers restart USE trcnam ! Namelist read ! USE trcice_cfc ! CFC initialisation USE trcice_pisces ! PISCES initialisation ! USE trcice_c14b ! C14 bomb initialisation ! USE trcice_my_trc ! MY_TRC initialisation ! USE trcdta ! initialisation form files ! USE daymod ! calendar manager ! USE zpshde ! partial step: hor. derivative (zps_hde routine) ! USE prtctl_trc ! Print control passive tracers (prt_ctl_trc_init routine) ! USE trcsub ! variables to substep passive tracers ! USE in_out_manager IMPLICIT NONE PRIVATE PUBLIC trc_ice_ini ! called by trc_init CONTAINS SUBROUTINE trc_ice_ini !!--------------------------------------------------------------------- !! *** ROUTINE trc_ice_ini *** !! !! ** Purpose : Communication between TOP and sea ice !! !! ** Method : - !! !!--------------------------------------------------------------------- INTEGER :: jk, jn, jl ! dummy loop indices INTEGER :: ios ! Local integer output status for namelist read NAMELIST/namtrc_ice/ nn_ice_tr ! IF(lwp) WRITE(numout,*) IF(lwp) WRITE(numout,*) 'trc_ice_ini : Initialize sea ice tracer boundary condition' IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~' IF( nn_timing == 1 ) CALL timing_start('trc_ice_ini') IF(lwp) THEN WRITE(numout,*) ' ' WRITE(numout,*) ' sea ice tracers option (nn_ice_tr) : ', nn_ice_tr WRITE(numout,*) ' ' ENDIF ! REWIND( numnat_ref ) ! Namelist namtrc_dta in reference namelist : Passive tracer input data READ ( numnat_ref, namtrc_ice, IOSTAT = ios, ERR = 901) 901 IF( ios /= 0 ) CALL ctl_nam ( ios , ' namtrc_ice in reference namelist ', lwp ) trc_i(:,:,:) = 0.0d0 ! by default trc_o(:,:,:) = 0.0d0 ! by default IF ( nn_ice_tr == 1 ) THEN IF( lk_pisces ) CALL trc_ice_ini_pisces ! PISCES bio-model ! to be written !IF( lk_cfc ) CALL trc_ice_ini_cfc ! CFC tracers !IF( lk_c14b ) CALL trc_ice_ini_c14b ! C14 bomb tracer !IF( lk_my_trc ) CALL trc_ice_ini_my_trc ! MY_TRC tracers ENDIF IF( nn_timing == 1 ) CALL timing_stop('trc_ice_ini') ! END SUBROUTINE trc_ice_ini #else !!---------------------------------------------------------------------- !! Empty module : No passive tracer !!---------------------------------------------------------------------- CONTAINS SUBROUTINE trc_ice_ini ! Dummy routine END SUBROUTINE trc_ice_ini #endif !!====================================================================== END MODULE trcice