Changeset 7613 for branches/UKMO
- Timestamp:
- 2017-01-26T18:35:46+01:00 (7 years ago)
- Location:
- branches/UKMO/CO6_shelfclimate/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/CO6_shelfclimate/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90
r7593 r7613 210 210 211 211 ENDIF 212 213 !Read section_ijglobal.diadct 214 CALL readsec 215 212 213 214 IF ( ln_NOOS ) THEN 215 IF ( ln_dct_calc_noos_25h .or. ln_dct_calc_noos_hr ) CALL readsec 216 ENDIF 216 217 217 218 -
branches/UKMO/CO6_shelfclimate/NEMOGCM/NEMO/OPA_SRC/DIA/diapea.F90
r7567 r7613 24 24 REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: t_zmean_mat, s_zmean_mat !Depth mean temperature and salinity: 3d fields 25 25 REAL(wp) :: zcutoff 26 LOGICAL , PUBLIC :: ln_pea ! region mean calculation 26 27 !!---------------------------------------------------------------------- 27 28 !! NEMO/OPA 3.6 , NEMO Consortium (2014) … … 36 37 REAL(wp) :: sumz,tmpsumz 37 38 INTEGER :: ierr ! error integer for IOM_get 39 INTEGER :: ios ! Local integer output status for namelist read 38 40 39 41 zcutoff = 200.!200m 42 43 NAMELIST/nam_pea/ ln_pea 44 45 46 ! 47 REWIND ( numnam_ref ) ! Read Namelist nam_diatmb in referdiatmbence namelist : TMB diagnostics 48 READ ( numnam_ref, nam_pea, IOSTAT=ios, ERR= 901 ) 49 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_pea in reference namelist', lwp ) 50 51 REWIND( numnam_cfg ) ! Namelist nam_diatmb in configuration namelist TMB diagnostics 52 READ ( numnam_cfg, nam_pea, IOSTAT = ios, ERR = 902 ) 53 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_pea in configuration namelist', lwp ) 54 IF(lwm) WRITE ( numond, nam_pea ) 55 56 IF(lwp) THEN ! Control print 57 WRITE(numout,*) 58 WRITE(numout,*) 'dia_pea_init : Output potential energy anomaly Diagnostics' 59 WRITE(numout,*) '~~~~~~~~~~~~' 60 WRITE(numout,*) 'Namelist nam_pea : set pea output ' 61 WRITE(numout,*) 'Switch for pea diagnostics (T) or not (F) ln_diaregmean = ', ln_pea 62 ENDIF 63 40 64 41 65 ALLOCATE( pea(jpi,jpj), STAT= ierr ) … … 62 86 ALLOCATE( wgt_co_mat(jpi,jpj,jpk), STAT= ierr ) 63 87 IF( ierr /= 0 ) CALL ctl_stop( 'dia_pea_init: failed to allocate wgt_co_mat array' ) 88 89 90 pea(:,:) = 0. 91 peat(:,:) = 0. 92 peas(:,:) = 0. 93 94 if ( ln_pea ) THEN 64 95 65 ! create wgt_co_mat mat, with the proportion of the grid (gdept_0) below cut off (200m) 66 67 DO jj = 1,jpj 68 DO ji = 1,jpi 69 IF ( tmask(ji,jj,1) == 1.0_wp ) THEN 70 sumz = 0. 71 DO jk = 1,jpk 72 IF ( tmask(ji,jj,jk) == 1.0_wp ) THEN 73 tmpsumz = sumz + e3t_n(ji,jj,jk) 74 IF (sumz .ge. zcutoff) THEN 75 ! Already too deep 76 wgt_co_mat(ji,jj,jk) = 0. 77 ELSE IF (tmpsumz .le. zcutoff) THEN 78 ! Too shallow 79 wgt_co_mat(ji,jj,jk) = 1. 80 ELSE 81 !proprotion of grid box above cut off depth 82 wgt_co_mat(ji,jj,jk) = (zcutoff-Sumz)/e3t_n(ji,jj,jk) 83 END IF 84 sumz = tmpsumz 85 endif 86 END DO 87 88 ELSE 89 !if land, set to 0. 90 DO jk = 1,jpk 91 wgt_co_mat(ji,jj,jk) = 0. 92 END DO 96 ! create wgt_co_mat mat, with the proportion of the grid (gdept_0) below cut off (200m) 97 98 DO jj = 1,jpj 99 DO ji = 1,jpi 100 IF ( tmask(ji,jj,1) == 1.0_wp ) THEN 101 sumz = 0. 102 DO jk = 1,jpk 103 IF ( tmask(ji,jj,jk) == 1.0_wp ) THEN 104 tmpsumz = sumz + e3t_n(ji,jj,jk) 105 IF (sumz .ge. zcutoff) THEN 106 ! Already too deep 107 wgt_co_mat(ji,jj,jk) = 0. 108 ELSE IF (tmpsumz .le. zcutoff) THEN 109 ! Too shallow 110 wgt_co_mat(ji,jj,jk) = 1. 111 ELSE 112 !proprotion of grid box above cut off depth 113 wgt_co_mat(ji,jj,jk) = (zcutoff-Sumz)/e3t_n(ji,jj,jk) 114 END IF 115 sumz = tmpsumz 116 endif 117 END DO 93 118 94 ENDIF 95 END DO 96 END DO 119 ELSE 120 !if land, set to 0. 121 DO jk = 1,jpk 122 wgt_co_mat(ji,jj,jk) = 0. 123 END DO 124 125 ENDIF 126 END DO 127 END DO 128 ENDIF 97 129 98 130 -
branches/UKMO/CO6_shelfclimate/NEMOGCM/NEMO/OPA_SRC/DIA/diaregmean.F90
r7593 r7613 164 164 END DO 165 165 166 IF(lwp) THEN 166 IF(lwp) THEN 167 167 ! if writing out as binary and text, open the files. 168 168 IF ( ln_diaregmean_bin ) THEN 169 169 ! Open binary for region means 170 OPEN( UNIT=73, FILE='region_mean_timeseries.dat', FORM='UNFORMATTED', STATUS='REPLACE' ) 170 !OPEN( UNIT=73, FILE='region_mean_timeseries.dat', FORM='UNFORMATTED', STATUS='REPLACE' ) 171 172 173 CALL ctl_opn( numdct_reg_bin ,'region_mean_timeseries.dat' , 'NEW', 'UNFORMATTED', 'SEQUENTIAL', -1, numout, .TRUE. ) 174 175 171 176 ENDIF 172 177 173 178 IF ( ln_diaregmean_ascii ) THEN 174 179 ! Open text files for region means 175 OPEN( UNIT=37, FILE='region_mean_timeseries.txt', FORM='FORMATTED', STATUS='REPLACE' ) 180 !OPEN( UNIT=37, FILE='region_mean_timeseries.txt', FORM='FORMATTED', STATUS='REPLACE' ) 181 CALL ctl_opn( numdct_reg_txt ,'region_mean_timeseries.txt' , 'NEW', 'FORMATTED', 'SEQUENTIAL', -1, numout, .TRUE. ) 176 182 ENDIF 177 183 ENDIF … … 385 391 IF ( ln_diaregmean_bin ) THEN 386 392 !Closing binary files for regional mean time series. 387 CLOSE( 73)393 CLOSE(numdct_reg_bin) 388 394 ENDIF 389 395 IF ( ln_diaregmean_ascii ) THEN 390 396 !Closing text files for regional mean time series. 391 CLOSE( 37)397 CLOSE(numdct_reg_txt) 392 398 ENDIF 393 399 … … 547 553 IF ( ln_diaregmean_bin ) THEN 548 554 !Writing out regional mean time series to binary files 549 WRITE( 73) name,kt,maskno,n_regions_output550 WRITE( 73) ave_mat551 WRITE( 73) tot_mat552 WRITE( 73) var_mat553 WRITE( 73) ssq_mat554 WRITE( 73) cnt_mat555 WRITE(numdct_reg_bin) name,kt,maskno,n_regions_output 556 WRITE(numdct_reg_bin) ave_mat 557 WRITE(numdct_reg_bin) tot_mat 558 WRITE(numdct_reg_bin) var_mat 559 WRITE(numdct_reg_bin) ssq_mat 560 WRITE(numdct_reg_bin) cnt_mat 555 561 ENDIF 556 562 … … 560 566 WRITE(nreg_string, "(I5)") nreg 561 567 FormatString = "(A17,"//trim(nreg_string)//"F15.3)" 562 WRITE( 37, FMT="(A17,I6,I6)") name,kt,maskno563 WRITE( 37, FMT=trim(FormatString)) trim(name)//" "//"ave_mat:", ave_mat564 WRITE( 37, FMT=trim(FormatString)) trim(name)//" "//"tot_mat:", tot_mat565 WRITE( 37, FMT=trim(FormatString)) trim(name)//" "//"var_mat:", var_mat566 WRITE( 37, FMT=trim(FormatString)) trim(name)//" "//"ssq_mat:", ssq_mat567 WRITE( 37, FMT=trim(FormatString)) trim(name)//" "//"cnt_mat:", cnt_mat568 WRITE( 37, FMT=trim(FormatString)) trim(name)//" "//"reg_mat:", reg_id_mat569 WRITE( 37, FMT=trim(FormatString)) trim(name)//" "//"msk_mat:", mask_id_mat568 WRITE(numdct_reg_txt, FMT="(A17,I6,I6)") name,kt,maskno 569 WRITE(numdct_reg_txt, FMT=trim(FormatString)) trim(name)//" "//"ave_mat:", ave_mat 570 WRITE(numdct_reg_txt, FMT=trim(FormatString)) trim(name)//" "//"tot_mat:", tot_mat 571 WRITE(numdct_reg_txt, FMT=trim(FormatString)) trim(name)//" "//"var_mat:", var_mat 572 WRITE(numdct_reg_txt, FMT=trim(FormatString)) trim(name)//" "//"ssq_mat:", ssq_mat 573 WRITE(numdct_reg_txt, FMT=trim(FormatString)) trim(name)//" "//"cnt_mat:", cnt_mat 574 WRITE(numdct_reg_txt, FMT=trim(FormatString)) trim(name)//" "//"reg_mat:", reg_id_mat 575 WRITE(numdct_reg_txt, FMT=trim(FormatString)) trim(name)//" "//"msk_mat:", mask_id_mat 570 576 571 577 ENDIF -
branches/UKMO/CO6_shelfclimate/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r7567 r7613 393 393 ENDIF 394 394 395 CALL dia_pea( kt ) 395 if ( ln_pea ) THEN 396 CALL dia_pea( kt ) 397 ENDIF 398 ! 396 399 397 400 IF (ln_diaregmean) THEN -
branches/UKMO/CO6_shelfclimate/NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90
r7567 r7613 146 146 INTEGER :: numfl = -1 !: logical unit for floats ascii output 147 147 INTEGER :: numflo = -1 !: logical unit for floats ascii output 148 149 INTEGER :: numdct_reg_bin = -1 !: logical unit for NOOS transports output 150 INTEGER :: numdct_reg_txt = -1 !: logical unit for NOOS hourly transports output 148 151 149 152 !!----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.