Changeset 11504
- Timestamp:
- 2019-09-06T09:23:31+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps
- Files:
-
- 1 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/cfgs/SHARED/namelist_top_ref
r10375 r11504 14 14 &namtrc_run ! run information 15 15 !----------------------------------------------------------------------- 16 nn_dttrc = 1 ! time step frequency for passive sn_tracers17 16 ln_top_euler = .false. ! use Euler time-stepping for TOP 18 17 ln_rsttr = .false. ! start from a restart file (T) or not (F) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/NST/agrif_user.F90
r11047 r11504 625 625 ENDIF 626 626 627 ! Check passive tracer cell628 IF( nn_dttrc .NE. 1 ) THEN629 WRITE(*,*) 'nn_dttrc should be equal to 1'630 ENDIF631 627 ENDIF 632 628 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/IOM/iom.F90
r10989 r11504 30 30 #if defined key_iomput 31 31 USE sbc_oce , ONLY : nn_fsbc ! ocean space and time domain 32 USE trc_oce , ONLY : nn_dttrc ! !: frequency of step on passive tracers33 32 USE icb_oce , ONLY : nclasses, class_num ! !: iceberg classes 34 33 #if defined key_si3 … … 2113 2112 f_op%timestep = nn_fsbc ; f_of%timestep = 0 ; CALL iom_set_field_attr('SBC' , freq_op=f_op, freq_offset=f_of) 2114 2113 f_op%timestep = nn_fsbc ; f_of%timestep = 0 ; CALL iom_set_field_attr('SBC_scalar' , freq_op=f_op, freq_offset=f_of) 2115 f_op%timestep = nn_dttrc; f_of%timestep = 0 ; CALL iom_set_field_attr('ptrc_T' , freq_op=f_op, freq_offset=f_of)2116 f_op%timestep = nn_dttrc; f_of%timestep = 0 ; CALL iom_set_field_attr('diad_T' , freq_op=f_op, freq_offset=f_of)2114 f_op%timestep = 1 ; f_of%timestep = 0 ; CALL iom_set_field_attr('ptrc_T' , freq_op=f_op, freq_offset=f_of) 2115 f_op%timestep = 1 ; f_of%timestep = 0 ; CALL iom_set_field_attr('diad_T' , freq_op=f_op, freq_offset=f_of) 2117 2116 2118 2117 ! output file names (attribut: name) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/LBC/lib_mpp.F90
r10538 r11504 157 157 INTEGER, PUBLIC :: ncom_stp = 0 !: copy of time step # istp 158 158 INTEGER, PUBLIC :: ncom_fsbc = 1 !: copy of sbc time step # nn_fsbc 159 INTEGER, PUBLIC :: ncom_dttrc = 1 !: copy of top time step # nn_dttrc160 159 INTEGER, PUBLIC :: ncom_freq !: frequency of comm diagnostic 161 160 INTEGER, PUBLIC , DIMENSION(:,:), ALLOCATABLE :: ncomm_sequence !: size of communicated arrays (halos) … … 1492 1491 ! 1493 1492 ! find the smallest common frequency: default = frequency product, if multiple, choose the larger of the 2 frequency 1494 IF( ncom_dttrc /= 1 ) CALL ctl_stop( 'STOP', 'mpp_report, ncom_dttrc /= 1 not coded...' )1495 1493 ncom_freq = ncom_fsbc 1496 1494 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/trc_oce.F90
r10068 r11504 26 26 LOGICAL , PUBLIC :: l_co2cpl = .false. !: atmospheric pco2 recieved from oasis 27 27 LOGICAL , PUBLIC :: l_offline = .false. !: offline passive tracers flag 28 INTEGER , PUBLIC :: nn_dttrc !: frequency of step on passive tracers29 28 REAL(wp), PUBLIC :: r_si2 !: largest depth of extinction (blue & 0.01 mg.m-3) (RGB) 30 29 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/PISCES/P4Z/p4zsms.F90
r10975 r11504 82 82 ENDIF 83 83 ! 84 IF( ln_pisdmp .AND. MOD( kt - nn_dttrc, nn_pisdmp ) == 0 ) CALL p4z_dmp( kt, Kbb, Kmm ) ! Relaxation of some tracers84 IF( ln_pisdmp .AND. MOD( kt - 1, nn_pisdmp ) == 0 ) CALL p4z_dmp( kt, Kbb, Kmm ) ! Relaxation of some tracers 85 85 ! 86 86 rfact = r2dttrc 87 87 ! 88 IF( ( ln_top_euler .AND. kt == nittrc000 ) .OR. ( .NOT.ln_top_euler .AND. kt <= nittrc000 + nn_dttrc) ) THEN88 IF( ( ln_top_euler .AND. kt == nittrc000 ) .OR. ( .NOT.ln_top_euler .AND. kt <= nittrc000 + 1 ) ) THEN 89 89 rfactr = 1. / rfact 90 90 rfact2 = rfact / REAL( nrdttrc, wp ) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/PISCES/SED/sedini.F90
r10362 r11504 13 13 USE sedarr 14 14 USE sedadv 15 USE trc_oce, ONLY : nn_dttrc16 15 USE trcdmp_sed 17 16 USE trcdta … … 684 683 WRITE(numsed,*) ' ' 685 684 ENDIF 686 nn_dtsed = nn_dttrc685 nn_dtsed = 1 687 686 688 687 CLOSE( numnamsed_cfg ) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/PISCES/SED/sedrst.F90
r10425 r11504 10 10 USE sed 11 11 USE sedarr 12 USE trc_oce, ONLY : l_offline , nn_dttrc12 USE trc_oce, ONLY : l_offline 13 13 USE phycst , ONLY : rday 14 14 USE iom … … 64 64 65 65 ! to get better performances with NetCDF format: 66 ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 2*nn_dttrc +1)67 ! except if we write tracer restart files every tracer time step or if a tracer restart file was writen at nitend - 2*nn_dttrc +166 ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 1) 67 ! except if we write tracer restart files every tracer time step or if a tracer restart file was writen at nitend - 1 68 68 IF( kt == nitrst - 2*nn_dtsed .OR. nstock == nn_dtsed .OR. ( kt == nitend - nn_dtsed .AND. .NOT. lrst_sed ) ) THEN 69 69 ! beware of the format used to write kt (default is i8.8, that should be large enough) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcbbl.F90
r10985 r11504 55 55 IF( ln_timing ) CALL timing_start('trc_bbl') 56 56 ! 57 IF( .NOT. l_offline .AND. nn_dttrc == 1) THEN57 IF( .NOT. l_offline ) THEN 58 58 CALL bbl( kt, nittrc000, 'TRC', Kbb, Kmm ) ! Online coupling with dynamics : Computation of bbl coef and bbl transport 59 59 l_bbl = .FALSE. ! Offline coupling with dynamics : Read bbl coef and bbl transport from input files -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcrad.F90
r11483 r11504 147 147 ! 148 148 IF( l_trdtrc ) ALLOCATE( ztrtrd(jpi,jpj,jpk) ) 149 zs2rdt = 1. / ( 2. * rdt * REAL( nn_dttrc, wp ))149 zs2rdt = 1. / ( 2. * rdt ) 150 150 ! 151 151 DO jt = 1,2 ! Loop over time indices since exactly the same fix is applied to "now" and "after" fields -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcsbc.F90
r11480 r11504 84 84 IF( ln_rsttr .AND. .NOT.ln_top_euler .AND. & ! Restart: read in restart file 85 85 iom_varid( numrtr, 'sbc_'//TRIM(ctrcnm(1))//'_b', ldstop = .FALSE. ) > 0 ) THEN 86 IF(lwp) WRITE(numout,*) ' nittrc000- nn_dttrc surface tracer content forcing fields red in the restart file'86 IF(lwp) WRITE(numout,*) ' nittrc000-1 surface tracer content forcing fields read in the restart file' 87 87 zfact = 0.5_wp 88 88 DO jn = 1, jptra -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trdmxl_trc.F90
r10966 r11504 17 17 !!---------------------------------------------------------------------- 18 18 USE trc ! tracer definitions (tr etc.) 19 USE trc_oce, ONLY : nn_dttrc ! frequency of step on passive tracers20 19 USE dom_oce ! domain definition 21 20 USE zdfmxl , ONLY : nmln ! number of level in the mixed layer … … 253 252 254 253 255 IF( nn_dttrc /= 1 ) CALL ctl_stop( " Be careful, trends diags never validated " )256 257 254 ! ====================================================================== 258 255 ! I. Diagnose the purely vertical (K_z) diffusion trend … … 330 327 ! II.3 Initialize mixed-layer "before" arrays for the 1rst analysis window 331 328 ! ------------------------------------------------------------------------ 332 IF( kt == nittrc000 + nn_dttrc) THEN ! i.e. ( .NOT. ln_rstart ).AND.( kt == nit000 + 1) ???329 IF( kt == nittrc000 + 1 ) THEN ! i.e. ( .NOT. ln_rstart ).AND.( kt == nit000 + 1) ??? 333 330 ! 334 331 DO jn = 1, jptra … … 872 869 # endif 873 870 zout = nn_trd_trc * rdt 874 iiter = ( nittrc000 - 1 ) / nn_dttrc871 iiter = nittrc000 - 1 875 872 876 873 IF(lwp) WRITE (numout,*) ' netCDF initialization' -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trdmxl_trc_rst.F90
r10425 r11504 11 11 USE in_out_manager ! I/O manager 12 12 USE iom ! I/O module 13 USE trc ! for nn_dttrcctrcnm13 USE trc ! for ctrcnm 14 14 USE trdmxl_trc_oce ! for lk_trdmxl_trc 15 15 … … 44 44 !!-------------------------------------------------------------------------------- 45 45 46 IF( kt == nitrst - nn_dttrc .OR. nitend - nit000 + 1 < 2 * nn_dttrc) THEN ! idem trcrst.F9046 IF( kt == nitrst - 1 .OR. nitend - nit000 + 1 < 2 ) THEN ! idem trcrst.F90 47 47 IF( nitrst > 1.0e9 ) THEN 48 48 WRITE(clkt,*) nitrst -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trcini.F90
r11480 r11504 21 21 USE daymod ! calendar manager 22 22 USE prtctl_trc ! Print control passive tracers (prt_ctl_trc_init routine) 23 USE trcsub ! variables to substep passive tracers24 23 USE trcrst 25 24 USE lib_mpp ! distribued memory computing library … … 82 81 ! 83 82 CALL trc_ini_state( Nbb_trc, Nnn_trc, Naa_trc ) ! passive tracers initialisation : from a restart or from clim 84 IF( nn_dttrc /= 1 ) &85 CALL trc_sub_ini( Nnn_trc ) ! Initialize variables for substepping passive tracers86 83 ! 87 84 CALL trc_ini_inv( Nnn_trc ) ! Inventories -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trcnam.F90
r10425 r11504 23 23 USE trdtrc_oce ! 24 24 USE iom ! I/O manager 25 #if defined key_mpp_mpi26 USE lib_mpp, ONLY: ncom_dttrc27 #endif28 25 29 26 IMPLICIT NONE … … 79 76 ENDIF 80 77 ! 81 rdttrc = rdt * FLOAT( nn_dttrc )! passive tracer time-step78 rdttrc = rdt ! passive tracer time-step 82 79 ! 83 80 IF(lwp) THEN ! control print 84 81 WRITE(numout,*) 85 WRITE(numout,*) ' ==>>> Passive Tracer time step rdttrc = nn_dttrc*rdt = ', rdttrc82 WRITE(numout,*) ' ==>>> Passive Tracer time step rdttrc = rdt = ', rdttrc 86 83 ENDIF 87 84 ! … … 100 97 INTEGER :: ios ! Local integer 101 98 !! 102 NAMELIST/namtrc_run/ nn_dttrc,ln_rsttr, nn_rsttr, ln_top_euler, &99 NAMELIST/namtrc_run/ ln_rsttr, nn_rsttr, ln_top_euler, & 103 100 & cn_trcrst_indir, cn_trcrst_outdir, cn_trcrst_in, cn_trcrst_out 104 101 !!--------------------------------------------------------------------- … … 120 117 IF(lwm) WRITE( numont, namtrc_run ) 121 118 122 nittrc000 = nit000 + nn_dttrc - 1! first time step of tracer model119 nittrc000 = nit000 ! first time step of tracer model 123 120 124 121 IF(lwp) THEN ! control print 125 122 WRITE(numout,*) ' Namelist : namtrc_run' 126 WRITE(numout,*) ' time step freq. for passive tracer nn_dttrc = ', nn_dttrc127 123 WRITE(numout,*) ' restart for passive tracer ln_rsttr = ', ln_rsttr 128 124 WRITE(numout,*) ' control of time step for passive tracer nn_rsttr = ', nn_rsttr … … 130 126 WRITE(numout,*) ' Use euler integration for TRC (y/n) ln_top_euler = ', ln_top_euler 131 127 ENDIF 132 !133 #if defined key_mpp_mpi134 ncom_dttrc = nn_dttrc ! make nn_fsbc available for lib_mpp135 #endif136 128 ! 137 129 END SUBROUTINE trc_nam_run -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trcrst.F90
r10963 r11504 74 74 75 75 ! to get better performances with NetCDF format: 76 ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 2*nn_dttrc +1)77 ! except if we write tracer restart files every tracer time step or if a tracer restart file was writen at nitend - 2*nn_dttrc +178 IF( kt == nitrst - 2*nn_dttrc .OR. nstock == nn_dttrc .OR. ( kt == nitend - nn_dttrc.AND. .NOT. lrst_trc ) ) THEN76 ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 1) 77 ! except if we write tracer restart files every tracer time step or if a tracer restart file was writen at nitend - 1 78 IF( kt == nitrst - 1 .OR. nstock == 1 .OR. ( kt == nitend - 1 .AND. .NOT. lrst_trc ) ) THEN 79 79 ! beware of the format used to write kt (default is i8.8, that should be large enough) 80 80 IF( nitrst > 1.0e9 ) THEN ; WRITE(clkt,* ) nitrst … … 219 219 ENDIF 220 220 ! Control of date 221 IF( nittrc000 - NINT( zkt ) /= nn_dttrc.AND. nn_rsttr /= 0 ) &221 IF( nittrc000 - NINT( zkt ) /= 1 .AND. nn_rsttr /= 0 ) & 222 222 & CALL ctl_stop( ' ===>>>> : problem with nittrc000 for the restart', & 223 223 & ' verify the restart file or rerun with nn_rsttr = 0 (namelist)' ) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trcstp.F90
r11483 r11504 18 18 USE trcwri 19 19 USE trcrst 20 USE trcsub !21 20 USE trdtrc_oce 22 21 USE trdmxl_trc … … 72 71 IF( ( neuler == 0 .AND. kt == nittrc000 ) .OR. ln_top_euler ) THEN ! at nittrc000 73 72 r2dttrc = rdttrc ! = rdttrc (use or restarting with Euler time stepping) 74 ELSEIF( kt <= nittrc000 + nn_dttrc ) THEN ! at nittrc000 or nittrc000+175 r2dttrc = 2. * rdttrc ! = 2 rdttrc (leapfrog)76 73 ENDIF 77 74 ! … … 92 89 IF( l_trcdm2dc ) CALL trc_mean_qsr( kt ) 93 90 ! 94 IF( nn_dttrc == 1 ) THEN 95 IF( Kmm_oce /= Nnn_trc .OR. Kaa_oce /= Naa_trc .OR. Krhs_oce /= Nrhs_trc ) THEN 96 ! The nn_dttrc == 1 case depends on the OCE and TRC time indices being the same always. 97 ! If this is not the case then something has gone wrong. 98 CALL ctl_stop( 'trc_stp : nn_dttrc = 1 but OCE and TRC time indices are different! Something has gone wrong.' ) 99 ENDIF 100 ELSE 101 CALL trc_sub_stp( kt, Nbb_trc, Nnn_trc, Nrhs_trc ) ! averaging physical variables for sub-stepping 91 IF( Kmm_oce /= Nnn_trc .OR. Kaa_oce /= Naa_trc .OR. Krhs_oce /= Nrhs_trc ) THEN 92 ! The OCE and TRC time indices should be the same always. 93 ! If this is not the case then something has gone wrong. 94 CALL ctl_stop( 'trc_stp : OCE and TRC time indices are different! Something has gone wrong.' ) 102 95 ENDIF 103 96 ! 104 IF( MOD( kt , nn_dttrc ) == 0 ) THEN ! only every nn_dttrc time step 105 ! 106 IF(ln_ctl) THEN 107 WRITE(charout,FMT="('kt =', I4,' d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear 108 CALL prt_ctl_trc_info(charout) 109 ENDIF 110 ! 111 tr(:,:,:,:,Nrhs_trc) = 0.e0 112 ! 113 CALL trc_rst_opn ( kt ) ! Open tracer restart file 114 IF( lrst_trc ) CALL trc_rst_cal ( kt, 'WRITE' ) ! calendar 115 CALL trc_wri ( kt, Nnn_trc ) ! output of passive tracers with iom I/O manager 116 CALL trc_sms ( kt, Nbb_trc, Nnn_trc, Nrhs_trc ) ! tracers: sinks and sources 117 CALL trc_trp ( kt, Nbb_trc, Nnn_trc, Nrhs_trc, Naa_trc ) ! transport of passive tracers 118 IF( kt == nittrc000 ) THEN 119 CALL iom_close( numrtr ) ! close input tracer restart file 120 IF(lwm) CALL FLUSH( numont ) ! flush namelist output 121 ENDIF 122 IF( lrst_trc ) CALL trc_rst_wri ( kt, Nbb_trc, Nnn_trc, Nrhs_trc ) ! write tracer restart file 123 IF( lk_trdmxl_trc ) CALL trd_mxl_trc ( kt, Nnn_trc ) ! trends: Mixed-layer 124 ! 125 IF( nn_dttrc /= 1 ) CALL trc_sub_reset( kt, Nbb_trc, Nnn_trc, Nrhs_trc ) ! resetting physical variables when sub-stepping 126 ! 127 ENDIF 97 ! 98 IF(ln_ctl) THEN 99 WRITE(charout,FMT="('kt =', I4,' d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear 100 CALL prt_ctl_trc_info(charout) 101 ENDIF 102 ! 103 tr(:,:,:,:,Nrhs_trc) = 0.e0 104 ! 105 CALL trc_rst_opn ( kt ) ! Open tracer restart file 106 IF( lrst_trc ) CALL trc_rst_cal ( kt, 'WRITE' ) ! calendar 107 CALL trc_wri ( kt, Nnn_trc ) ! output of passive tracers with iom I/O manager 108 CALL trc_sms ( kt, Nbb_trc, Nnn_trc, Nrhs_trc ) ! tracers: sinks and sources 109 CALL trc_trp ( kt, Nbb_trc, Nnn_trc, Nrhs_trc, Naa_trc ) ! transport of passive tracers 110 IF( kt == nittrc000 ) THEN 111 CALL iom_close( numrtr ) ! close input tracer restart file 112 IF(lwm) CALL FLUSH( numont ) ! flush namelist output 113 ENDIF 114 IF( lrst_trc ) CALL trc_rst_wri ( kt, Nbb_trc, Nnn_trc, Nrhs_trc ) ! write tracer restart file 115 IF( lk_trdmxl_trc ) CALL trd_mxl_trc ( kt, Nnn_trc ) ! trends: Mixed-layer 128 116 ! 129 117 IF (ll_trcstat) THEN
Note: See TracChangeset
for help on using the changeset viewer.