Changeset 3680 for branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP
- Timestamp:
- 2012-11-27T15:42:24+01:00 (12 years ago)
- Location:
- branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r3294 r3680 82 82 IF( kt == nittrc000 ) CALL trc_adv_ctl ! initialisation & control of options 83 83 84 #if ! defined key_pisces 85 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nittrc000 86 r2dt(:) = rdttrc(:) ! = rdttrc (restarting with Euler time stepping) 87 ELSEIF( kt <= nittrc000 + 1 ) THEN ! at nittrc000 or nittrc000+1 88 r2dt(:) = 2. * rdttrc(:) ! = 2 rdttrc (leapfrog) 84 IF( ln_top_euler) THEN 85 r2dt(:) = rdttrc(:) ! = rdttrc (use Euler time stepping) 86 ELSE 87 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nittrc000 88 r2dt(:) = rdttrc(:) ! = rdttrc (restarting with Euler time stepping) 89 ELSEIF( kt <= nittrc000 + 1 ) THEN ! at nittrc000 or nittrc000+1 90 r2dt(:) = 2. * rdttrc(:) ! = 2 rdttrc (leapfrog) 91 ENDIF 89 92 ENDIF 90 #else91 r2dt(:) = rdttrc(:) ! = rdttrc (for PISCES use Euler time stepping)92 #endif93 93 94 94 ! ! effective transport -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90
r3294 r3680 81 81 NAMELIST/namtrc_rad/ ln_trcrad 82 82 #if defined key_trcdmp 83 NAMELIST/namtrc_dmp/ nn_hdmp_tr, nn_zdmp_tr, rn_surf_tr, &83 NAMELIST/namtrc_dmp/ ln_trcdmp, nn_hdmp_tr, nn_zdmp_tr, rn_surf_tr, & 84 84 & rn_bot_tr , rn_dep_tr , nn_file_tr 85 85 #endif … … 156 156 WRITE(numout,*) '~~~~~~~' 157 157 WRITE(numout,*) ' Namelist namtrc_dmp : set damping parameter' 158 WRITE(numout,*) ' add a damping term or not ln_trcdmp = ', ln_trcdmp 158 159 WRITE(numout,*) ' tracer damping option nn_hdmp_tr = ', nn_hdmp_tr 159 160 WRITE(numout,*) ' mixed layer damping option nn_zdmp_tr = ', nn_zdmp_tr, '(zoom: forced to 0)' -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
r3294 r3680 34 34 USE tranxt 35 35 # if defined key_agrif 36 USE agrif_top_update37 36 USE agrif_top_interp 38 37 # endif … … 146 145 ENDIF 147 146 148 #if defined key_agrif149 ! Update tracer at AGRIF zoom boundaries150 IF( .NOT.Agrif_Root() ) CALL Agrif_Update_Trc( kt ) ! children only151 #endif152 153 147 ! trends computation 154 148 IF( l_trdtrc ) THEN ! trends -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90
r3294 r3680 63 63 IF( lk_cfc ) CALL trc_rad_sms( kt, trb, trn, jp_cfc0 , jp_cfc1 ) ! CFC model 64 64 IF( lk_c14b ) CALL trc_rad_sms( kt, trb, trn, jp_c14b0, jp_c14b1 ) ! bomb C14 65 IF( lk_lobster ) CALL trc_rad_sms( kt, trb, trn, jp_lob0 , jp_lob1, cpreserv='Y' ) ! LOBSTER model66 65 IF( lk_pisces ) CALL trc_rad_sms( kt, trb, trn, jp_pcs0 , jp_pcs1, cpreserv='Y' ) ! PISCES model 67 66 IF( lk_my_trc ) CALL trc_rad_sms( kt, trb, trn, jp_myt0 , jp_myt1 ) ! MY_TRC model -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90
r3625 r3680 50 50 !! tra = tra + emp * trn / e3t for k=1 51 51 !! where emp, the surface freshwater budget (evaporation minus 52 !! precipitation minus runoff) given in kg/m2/s is divided52 !! precipitation ) given in kg/m2/s is divided 53 53 !! by 1035 kg/m3 (density of ocean water) to obtain m/s. 54 54 !! … … 79 79 ENDIF 80 80 81 ! Coupling online : river runoff is added to the horizontal divergence (hdivn) in the subroutine sbc_rnf_div 82 ! one only consider the concentration/dilution effect due to evaporation minus precipitation + freezing/melting of sea-ice 81 83 82 IF( lk_offline ) THEN ! sfx in dynamical files contains sfx - rnf 83 zsfx(:,:) = sfx(:,:) 84 ELSE ! Concentration dilution effect on tracer due to evaporation, precipitation, and river runoff 85 IF( lk_vvl ) THEN ! volume variable 86 zsfx(:,:) = sfx(:,:) - emp(:,:) 87 !!ch zsfx(:,:) = 0. 88 ELSE ! linear free surface 89 IF( ln_rnf ) THEN ; zsfx(:,:) = sfx(:,:) - rnf(:,:) ! E-P-R 90 ELSE ; zsfx(:,:) = sfx(:,:) 91 ENDIF 92 ENDIF 93 ENDIF 84 IF( .NOT. lk_offline .AND. lk_vvl ) THEN ! online coupling + volume variable 85 zemps(:,:) = sfx(:,:) - emp(:,:) 86 ELSE 87 zemps(:,:) = emp(:,:) 88 ENDIF 94 89 95 90 ! 0. initialization -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
r3294 r3680 29 29 30 30 #if defined key_agrif 31 USE agrif_top_sponge ! Momemtum and tracers sponges 31 USE agrif_top_sponge ! tracers sponges 32 USE agrif_top_update ! tracers updates 32 33 #endif 33 34 … … 76 77 CALL trc_nxt( kstp ) ! tracer fields at next time step 77 78 IF( ln_trcrad ) CALL trc_rad( kstp ) ! Correct artificial negative concentrations 79 80 #if defined key_agrif 81 IF( .NOT. Agrif_Root()) CALL Agrif_Update_Trc( kstp ) ! Update tracer at AGRIF zoom boundaries : children only 82 #endif 78 83 IF( ln_zps ) CALL zps_hde( kstp, jptra, trn, gtru, gtrv ) ! Partial steps: now horizontal gradient of passive 79 84 ! tracers at the bottom ocean level … … 98 103 !!---------------------------------------------------------------------- 99 104 CONTAINS 100 SUBROUTINE trc_trp( k t) ! Empty routine101 INTEGER, INTENT(in) :: k t102 WRITE(*,*) 'trc_trp: You should not have seen this print! error?', k t105 SUBROUTINE trc_trp( kstp ) ! Empty routine 106 INTEGER, INTENT(in) :: kstp 107 WRITE(*,*) 'trc_trp: You should not have seen this print! error?', kstp 103 108 END SUBROUTINE trc_trp 104 109 #endif -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trczdf.F90
r3632 r3680 73 73 IF( kt == nittrc000 ) CALL zdf_ctl ! initialisation & control of options 74 74 75 #if ! defined key_pisces 76 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nittrc000 77 r2dt(:) = rdttrc(:) ! = rdttrc (restarting with Euler time stepping) 78 ELSEIF( kt <= nittrc000 + 1 ) THEN ! at nittrc000 or nittrc000+1 79 r2dt(:) = 2. * rdttrc(:) ! = 2 rdttrc (leapfrog) 75 IF( ln_top_euler) THEN 76 r2dt(:) = rdttrc(:) ! = rdttrc (use Euler time stepping) 77 ELSE 78 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nittrc000 79 r2dt(:) = rdttrc(:) ! = rdttrc (restarting with Euler time stepping) 80 ELSEIF( kt <= nittrc000 + 1 ) THEN ! at nittrc000 or nittrc000+1 81 r2dt(:) = 2. * rdttrc(:) ! = 2 rdttrc (leapfrog) 82 ENDIF 80 83 ENDIF 81 #else82 r2dt(:) = rdttrc(:) ! = rdttrc (for PISCES use Euler time stepping)83 #endif84 84 85 85 IF( l_trdtrc ) THEN -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trdmld_trc.F90
r3320 r3680 34 34 USE prtctl ! print control 35 35 USE sms_pisces ! PISCES bio-model 36 USE sms_lobster ! LOBSTER bio-model37 36 USE wrk_nemo ! Memory allocation 38 37 … … 53 52 INTEGER :: ndimtrd1 54 53 INTEGER, SAVE :: ionce, icount 55 #if defined key_ lobster54 #if defined key_pisces_reduced 56 55 INTEGER :: nidtrdbio, nh_tb 57 56 INTEGER, SAVE :: ioncebio, icountbio … … 62 61 63 62 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: ztmltrd2 ! 64 #if defined key_ lobster63 #if defined key_pisces_reduced 65 64 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ztmltrdbio2 ! only needed for mean diagnostics in trd_mld_bio() 66 65 #endif … … 81 80 !!---------------------------------------------------------------------- 82 81 ALLOCATE( ztmltrd2(jpi,jpj,jpltrd_trc,jptra) , & 83 #if defined key_ lobster82 #if defined key_pisces_reduced 84 83 & ztmltrdbio2(jpi,jpj,jpdiabio) , & 85 84 #endif … … 133 132 SELECT CASE ( nn_ctls_trc ) ! choice of the control surface 134 133 CASE ( -2 ) ; STOP 'trdmld_trc : not ready ' ! -> isopycnal surface (see ???) 135 #if defined key_pisces || defined key_ lobster134 #if defined key_pisces || defined key_pisces_reduced 136 135 CASE ( -1 ) ; nmld_trc(:,:) = neln(:,:) ! -> euphotic layer with light criterion 137 136 #endif … … 232 231 INTEGER , INTENT(in) :: ktrd ! bio trend index 233 232 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: ptrc_trdmld ! passive trc trend 234 #if defined key_ lobster233 #if defined key_pisces_reduced 235 234 ! 236 235 INTEGER :: ji, jj, jk, isum … … 940 939 !!---------------------------------------------------------------------- 941 940 INTEGER, INTENT( in ) :: kt ! ocean time-step index 942 #if defined key_ lobster941 #if defined key_pisces_reduced 943 942 INTEGER :: jl, it, itmod 944 943 LOGICAL :: llwarn = .TRUE., lldebug = .TRUE. … … 1217 1216 tmltrd_csum_ln_trc (:,:,:,:) = 0.e0 ; rmld_sum_trc (:,:) = 0.e0 1218 1217 1219 #if defined key_ lobster1218 #if defined key_pisces_reduced 1220 1219 nmoymltrdbio = 0 1221 1220 tmltrd_sum_bio (:,:,:) = 0.e0 ; tmltrd_csum_ln_bio (:,:,:) = 0.e0 1222 DO jl = 1, jp_ lobster_trd1221 DO jl = 1, jp_pisces_trd 1223 1222 ctrd_bio(jl,1) = ctrbil(jl) ! long name 1224 1223 ctrd_bio(jl,2) = ctrbio(jl) ! short name … … 1234 1233 tml_sumb_trc (:,:,:) = 0.e0 ; tmltrd_csum_ub_trc (:,:,:,:) = 0.e0 ! mean 1235 1234 tmltrd_atf_sumb_trc(:,:,:) = 0.e0 ; tmltrd_rad_sumb_trc(:,:,:) = 0.e0 1236 #if defined key_ lobster1235 #if defined key_pisces_reduced 1237 1236 tmltrd_csum_ub_bio (:,:,:) = 0.e0 1238 1237 #endif … … 1242 1241 icount = 1 ; ionce = 1 ! open specifier 1243 1242 1244 #if defined key_ lobster1243 #if defined key_pisces_reduced 1245 1244 icountbio = 1 ; ioncebio = 1 ! open specifier 1246 1245 #endif … … 1337 1336 END DO 1338 1337 1339 #if defined key_ lobster1338 #if defined key_pisces_reduced 1340 1339 !-- Create a NetCDF file and enter the define mode 1341 1340 CALL dia_nam( clhstnam, nn_trd_trc, 'trdbio' ) … … 1383 1382 END DO 1384 1383 1385 #if defined key_ lobster1386 DO jl = 1, jp_ lobster_trd1384 #if defined key_pisces_reduced 1385 DO jl = 1, jp_pisces_trd 1387 1386 CALL histdef(nidtrdbio, TRIM("ML_"//ctrd_bio(jl,2)), TRIM(clmxl//" ML_"//ctrd_bio(jl,1)) , & 1388 1387 & cltrcu, jpi, jpj, nh_tb, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) ! IOIPSL: time mean … … 1395 1394 END DO 1396 1395 1397 #if defined key_ lobster1396 #if defined key_pisces_reduced 1398 1397 !-- Leave IOIPSL/NetCDF define mode 1399 1398 CALL histend( nidtrdbio, snc4set ) -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trdmld_trc_rst.F90
r2528 r3680 105 105 END DO ! tracer loop 106 106 ! ! =========== 107 #if defined key_ lobster108 DO jl = 1, jp_ lobster_trd107 #if defined key_pisces_reduced 108 DO jl = 1, jp_pisces_trd 109 109 CALL iom_rstput( kt, nitrst, nummldw_trc, 'tmltrd_csum_ub_bio'//ctrd_bio(jl,2), tmltrd_csum_ub_bio(:,:,jl) ) 110 110 ENDDO … … 190 190 ! ! =========== 191 191 192 #if defined key_ lobster193 DO jl = 1, jp_ lobster_trd192 #if defined key_pisces_reduced 193 DO jl = 1, jp_pisces_trd 194 194 CALL iom_get( inum, jpdom_autoglo, 'tmltrd_csum_ub_bio'//ctrd_bio(jl,2), tmltrd_csum_ub_bio(:,:,jl) ) 195 195 ENDDO -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/TOP_SRC/TRP/trdmod_trc_oce.F90
r3320 r3680 106 106 # endif 107 107 108 # if defined key_ lobster108 # if defined key_pisces_reduced 109 109 CHARACTER(LEN=80) :: clname_bio, ctrd_bio(jpdiabio,2) 110 110 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: & … … 154 154 #endif 155 155 ! 156 # if defined key_ lobster156 # if defined key_pisces_reduced 157 157 ALLOCATE( tmltrd_bio (jpi,jpj,jpdiabio) , & 158 158 & tmltrd_sum_bio (jpi,jpj,jpdiabio) , &
Note: See TracChangeset
for help on using the changeset viewer.