Changeset 7829 for branches/UKMO/dev_r5518_nemo_fabm_ukmo/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcwri_my_trc.F90
- Timestamp:
- 2017-03-23T15:36:14+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_nemo_fabm_ukmo/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcwri_my_trc.F90
r7827 r7829 19 19 20 20 PUBLIC trc_wri_my_trc 21 #if defined key_tracer_budget 22 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:), SAVE :: trb_temp ! slwa 23 #endif 24 21 25 22 26 # include "top_substitute.h90" 23 27 CONTAINS 24 28 29 #if defined key_tracer_budget 30 SUBROUTINE trc_wri_my_trc (kt, fl) ! slwa 31 #else 25 32 SUBROUTINE trc_wri_my_trc 33 #endif 26 34 !!--------------------------------------------------------------------- 27 35 !! *** ROUTINE trc_wri_trc *** … … 29 37 !! ** Purpose : output passive tracers fields 30 38 !!--------------------------------------------------------------------- 39 #if defined key_tracer_budget 40 INTEGER, INTENT( in ), OPTIONAL :: fl 41 INTEGER, INTENT( in ) :: kt 42 REAL(wp), DIMENSION(jpi,jpj,jpk) :: trpool !tracer pool temporary output 43 #endif 31 44 CHARACTER (len=20) :: cltra 32 INTEGER :: jn 45 INTEGER :: jn,jk 33 46 !!--------------------------------------------------------------------- 34 47 35 48 ! write the tracer concentrations in the file 36 49 ! --------------------------------------- 50 51 52 #if defined key_tracer_budget 53 IF( PRESENT(fl)) THEN 54 ! depth integrated 55 ! for strict budgetting write this out at end of timestep as an average between 'now' and 'after' at kt 56 DO jn = jp_myt0, jp_myt1 57 trpool(:,:,:) = 0.5 * ( trn(:,:,:,jn) * fse3t_a(:,:,:) + & 58 trb_temp(:,:,:,jn) * fse3t(:,:,:) ) 59 ! 60 cltra = TRIM( ctrcnm(jn) ) ! output of tracer density 61 CALL iom_put( cltra, trpool(:,:,:) / (0.5* (fse3t(:,:,:) + fse3t_a(:,:,:) ) ) ) 62 ! 63 cltra = TRIM( ctrcnm(jn) )//"_pool" ! volume integrated output 64 DO jk = 1, jpk 65 trpool(:,:,jk) = trpool(:,:,jk) * e1t(:,:) * e2t(:,:) 66 END DO 67 CALL iom_put( cltra, trpool) 68 69 ! cltra = TRIM( ctrcnm(jn) )//"_pool" ! volume integrated output 70 ! DO jk = 1, jpk 71 ! trpool(:,:,jk) = 0.5 * ( trn(:,:,jk,jn) * fse3t_a(:,:,jk) + & 72 ! trb_temp(:,:,jk,jn) * fse3t(:,:,jk) ) * & 73 ! e1t(:,:) * e2t(:,:) 74 ! END DO 75 ! CALL iom_put( cltra, trpool) 76 ! cltra = TRIM( ctrcnm(jn) ) ! output of tracer density 77 ! CALL iom_put( cltra, trpool(:,:,:) / (0.5* (fse3t(:,:,:) + fse3t_a(:,:,:) ) ) ) 78 END DO 79 CALL iom_put( "DEPTH" , 0.5* (fse3t(:,:,:) + fse3t_a(:,:,:) ) ) ! equivalent 'depth' at same time as tracer pool output 80 ELSE 81 82 IF( kt == nittrc000 ) THEN 83 ALLOCATE(trb_temp(jpi,jpj,jpk,jptra)) ! slwa 84 ENDIF 85 trb_temp(:,:,:,:)=trn(:,:,:,:) ! slwa save for tracer budget (unfiltered trn) 86 87 ! DO jn = jp_myt0, jp_myt1 88 ! cltra = TRIM( ctrcnm(jn) ) ! short title for tracer 89 ! CALL iom_put( cltra, trn(:,:,:,jn) ) 90 ! END DO 91 ! write out depths and areas in double precision for tracer budget calculations 92 CALL iom_put( "AREA" , e1t(:,:) * e2t(:,:)) 93 ! CALL iom_put( "DEPTH" , fse3t(:,:,:) ) ! need depth at same time as tracer output 94 95 END IF 96 #else 37 97 DO jn = jp_myt0, jp_myt1 38 98 cltra = TRIM( ctrcnm(jn) ) ! short title for tracer 39 99 CALL iom_put( cltra, trn(:,:,:,jn) ) 40 100 END DO 101 #endif 41 102 ! 42 103 END SUBROUTINE trc_wri_my_trc
Note: See TracChangeset
for help on using the changeset viewer.