Changeset 9173 for branches/NERC/dev_r5518_GO6_Carb_Fail_from_GO6_8356/NEMOGCM/NEMO/TOP_SRC/TRP/trdtrc.F90
- Timestamp:
- 2018-01-03T14:19:47+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_Carb_Fail_from_GO6_8356/NEMOGCM/NEMO/TOP_SRC/TRP/trdtrc.F90
r6486 r9173 19 19 USE trdmxl_trc ! Mixed layer trends diag. 20 20 USE iom ! I/O library 21 # if defined key_debug_medusa 22 USE trcstat, ONLY: trc_rst_dia_stat 23 # endif 21 24 22 25 IMPLICIT NONE … … 86 89 87 90 IF( lk_trdtrc .AND. ln_trdtrc( kjn ) ) THEN 88 ! 91 !! JPALM -- 17-08-2017 -- modif following trd_tra_iom as suggested by Georges 92 !! -- add jptra_tot; jptra_totad; jptra_zdfp 93 !! -- shange to output trends every 2 time-step, except tot. 94 !! -- move cltra and iomput inside the select case 95 !! So if an non-wanted case arrives here it will not go 96 !! through cltra (without value) and break iomput. 97 !! -- Add iom_use in prevision of not using All trends 98 !! for All passive tracers (will create a HUGE 3D file otherwise -- 99 !! might be interested in very few of them : SMS and TOT probably) 100 ! 101 SELECT CASE( ktrd ) 102 !! tot - output every time-step: 103 CASE( jptra_tot ) ; WRITE (cltra,'("TOT_",4a)') 104 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 105 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 106 END SELECT 107 ! 108 IF( MOD( kt, 2 ) == 0 ) THEN 89 109 SELECT CASE( ktrd ) 90 110 CASE( jptra_xad ) ; WRITE (cltra,'("XAD_",4a)') 111 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 112 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 91 113 CASE( jptra_yad ) ; WRITE (cltra,'("YAD_",4a)') 92 CASE( jptra_zad ) ; WRITE (cltra,'("ZAD_",4a)') 114 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 115 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 116 CASE( jptra_zad ) ; WRITE (cltra,'("ZAD_",4a)') !! care vvl case 117 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 118 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 119 CASE( jptra_totad ) ; WRITE (cltra,'("TAD_",4a)') !! total adv 120 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 121 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 93 122 CASE( jptra_ldf ) ; WRITE (cltra,'("LDF_",4a)') 123 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 124 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 94 125 CASE( jptra_bbl ) ; WRITE (cltra,'("BBL_",4a)') 126 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 127 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 95 128 CASE( jptra_nsr ) ; WRITE (cltra,'("FOR_",4a)') 129 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 130 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 96 131 CASE( jptra_zdf ) ; WRITE (cltra,'("ZDF_",4a)') 132 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 133 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 134 CASE( jptra_zdfp ) ; WRITE (cltra,'("ZDP_",4a)') 135 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 136 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 97 137 CASE( jptra_dmp ) ; WRITE (cltra,'("DMP_",4a)') 138 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 139 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 98 140 CASE( jptra_sms ) ; WRITE (cltra,'("SMS_",4a)') 141 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 142 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 143 CASE( jptra_radb ) ; WRITE (cltra,'("RDB_",4a)') 144 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 145 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 146 CASE( jptra_radn ) ; WRITE (cltra,'("RDN_",4a)') 147 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 148 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 149 END SELECT 150 ELSE IF( MOD( kt, 2 ) == 1 ) THEN 151 SELECT CASE( ktrd ) 99 152 CASE( jptra_atf ) ; WRITE (cltra,'("ATF_",4a)') 100 CASE( jptra_radb ) ; WRITE (cltra,'("RDB_",4a)') 101 CASE( jptra_radn ) ; WRITE (cltra,'("RDN_",4a)') 102 END SELECT 103 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 104 CALL iom_put( cltra, ptrtrd(:,:,:) ) 153 cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 154 CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 155 END SELECT 156 END IF 105 157 ! 106 158 END IF … … 123 175 124 176 END SUBROUTINE trd_trc_bio 177 178 SUBROUTINE trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 179 !!---------------------------------------------------------------------- 180 !! *** ROUTINE trd_trc_iomput *** 181 !!---------------------------------------------------------------------- 182 INTEGER, INTENT( in ) :: kt ! timestep 183 INTEGER, INTENT( in ) :: kjn ! biotrend index 184 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( inout ) :: ptrtrd ! var trend 185 CHARACTER (len=*),INTENT( in ) :: cltra ! trend name 186 !!---------------------------------------------------------------------- 187 188 189 IF (iom_use(cltra)) THEN 190 # if defined key_debug_medusa 191 IF(lwp) WRITE(numout,*) ' TREND stats (min, max,sum) kt = ',kt ,' jn = ',kjn 192 CALL trc_rst_dia_stat( ptrtrd(:,:,1), cltra) 193 # endif 194 CALL iom_put( cltra, ptrtrd(:,:,:) ) 195 # if defined key_debug_medusa 196 ELSE 197 IF(lwp) WRITE(numout,*) & 198 ' TREND -- No output asked for ',cltra,' kt = ',kt,' jn = ',kjn 199 CALL trc_rst_dia_stat( ptrtrd(:,:,1), cltra) 200 # endif 201 ENDIF 202 203 END SUBROUTINE trd_trc_iomput 204 205 125 206 #else 126 207 !!----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.