- Timestamp:
- 2015-02-11T11:50:34+01:00 (9 years ago)
- Location:
- branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90
r4772 r5075 112 112 INTEGER :: numstp = -1 !: logical unit for time step 113 113 INTEGER :: numtime = -1 !: logical unit for timing 114 INTEGER :: numout = 6 !: logical unit for output print 114 INTEGER :: numout = 6 !: logical unit for output print; Set to stdout to ensure any early 115 ! output can be collected; do not change 115 116 INTEGER :: numnam_ref = -1 !: logical unit for reference namelist 116 117 INTEGER :: numnam_cfg = -1 !: logical unit for configuration specific namelist 117 INTEGER :: numond = 7!: logical unit for Output Namelist Dynamics118 INTEGER :: numond = -1 !: logical unit for Output Namelist Dynamics 118 119 INTEGER :: numnam_ice_ref = -1 !: logical unit for ice reference namelist 119 120 INTEGER :: numnam_ice_cfg = -1 !: logical unit for ice reference namelist 120 INTEGER :: numoni = 8!: logical unit for Output Namelist Ice121 INTEGER :: numoni = -1 !: logical unit for Output Namelist Ice 121 122 INTEGER :: numevo_ice = -1 !: logical unit for ice variables (temp. evolution) 122 123 INTEGER :: numsol = -1 !: logical unit for solver statistics -
branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r4650 r5075 32 32 USE trc_oce, ONLY : nn_dttrc ! !: frequency of step on passive tracers 33 33 USE icb_oce, ONLY : nclasses, class_num ! !: iceberg classes 34 #if defined key_lim3 35 USE par_ice 36 #elif defined key_lim2 37 USE par_ice_2 38 #endif 34 39 USE domngb ! ocean space and time domain 35 40 USE phycst ! physical constants … … 49 54 #endif 50 55 PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_gettime, iom_rstput, iom_put 51 PUBLIC iom_getatt, iom_ context_finalize56 PUBLIC iom_getatt, iom_use, iom_context_finalize 52 57 53 58 PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d … … 143 148 CALL iom_set_axis_attr( "nfloat", (/ (REAL(ji,wp), ji=1,nfloat) /) ) 144 149 # endif 150 #if defined key_lim3 || defined key_lim2 151 CALL iom_set_axis_attr( "ncatice", (/ (REAL(ji,wp), ji=1,jpl) /) ) 152 #endif 145 153 CALL iom_set_axis_attr( "icbcla", class_num ) 146 154 … … 1015 1023 CHARACTER(LEN=*), INTENT(in) :: cdname 1016 1024 REAL(wp) , INTENT(in) :: pfield0d 1025 REAL(wp) , DIMENSION(jpi,jpj) :: zz ! masson 1017 1026 #if defined key_iomput 1018 CALL xios_send_field(cdname, (/pfield0d/)) 1027 zz(:,:)=pfield0d 1028 CALL xios_send_field(cdname, zz) 1029 !CALL xios_send_field(cdname, (/pfield0d/)) 1019 1030 #else 1020 1031 IF( .FALSE. ) WRITE(numout,*) cdname, pfield0d ! useless test to avoid compilation warnings … … 1155 1166 SUBROUTINE iom_context_finalize( cdname ) 1156 1167 CHARACTER(LEN=*), INTENT(in) :: cdname 1157 ! 1158 CALL iom_swap( cdname ) ! swap to cdname context 1159 CALL xios_context_finalize() ! finalize the context 1160 IF( cdname /= "nemo" ) CALL iom_swap( "nemo" ) ! return back to nemo context 1168 ! 1169 IF( xios_is_valid_context(cdname) ) THEN 1170 CALL iom_swap( cdname ) ! swap to cdname context 1171 CALL xios_context_finalize() ! finalize the context 1172 IF( cdname /= "nemo" ) CALL iom_swap( "nemo" ) ! return back to nemo context 1173 ENDIF 1161 1174 ! 1162 1175 END SUBROUTINE iom_context_finalize … … 1189 1202 CASE('T') ; zmask(:,:,:) = tmask(:,:,:) 1190 1203 CASE('U') ; zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:) ; CALL lbc_lnk( zmask, 'U', 1. ) 1191 CASE('V') ; zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jp i,:) ; CALL lbc_lnk( zmask, 'V', 1. )1204 CASE('V') ; zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:) ; CALL lbc_lnk( zmask, 'V', 1. ) 1192 1205 CASE('W') ; zmask(:,:,2:jpk ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk) ; zmask(:,:,1) = tmask(:,:,1) 1193 1206 END SELECT … … 1207 1220 !! 1208 1221 !!---------------------------------------------------------------------- 1209 REAL(wp), DIMENSION(1 ,1) :: zz = 1.1222 REAL(wp), DIMENSION(1) :: zz = 1. 1210 1223 !!---------------------------------------------------------------------- 1211 1224 CALL iom_set_domain_attr('scalarpoint', ni_glo=jpnij, nj_glo=1, ibegin=narea, jbegin=1, ni=1, nj=1) 1212 CALL iom_set_domain_attr('scalarpoint', data_dim=1) 1213 CALL iom_set_domain_attr('scalarpoint', lonvalue=(/ zz /), latvalue=(/ zz /)) 1225 CALL iom_set_domain_attr('scalarpoint', data_dim=2, data_ibegin = 1, data_ni = 1, data_jbegin = 1, data_nj = 1) 1226 zz=REAL(narea,wp) 1227 CALL iom_set_domain_attr('scalarpoint', lonvalue=zz, latvalue=zz) 1214 1228 1215 1229 END SUBROUTINE set_scalar … … 1226 1240 CHARACTER(len=256) :: clsuff ! suffix name 1227 1241 CHARACTER(len=1) :: cl1 ! 1 character 1228 CHARACTER(len=2) :: cl2 ! 1 character 1242 CHARACTER(len=2) :: cl2 ! 2 characters 1243 CHARACTER(len=3) :: cl3 ! 3 characters 1229 1244 INTEGER :: ji, jg ! loop counters 1230 1245 INTEGER :: ix, iy ! i-,j- index … … 1252 1267 WRITE(cl2,'(i2.2)') ji 1253 1268 CALL iom_update_file_name('file'//cl2) 1269 END DO 1270 DO ji = 1, 999 1271 WRITE(cl3,'(i3.3)') ji 1272 CALL iom_update_file_name('file'//cl3) 1254 1273 END DO 1255 1274 … … 1499 1518 1500 1519 #endif 1520 1521 LOGICAL FUNCTION iom_use( cdname ) 1522 CHARACTER(LEN=*), INTENT(in) :: cdname 1523 #if defined key_iomput 1524 iom_use = xios_field_is_active( cdname ) 1525 #else 1526 iom_use = .FALSE. 1527 #endif 1528 END FUNCTION iom_use 1501 1529 1502 1530 !!====================================================================== -
branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90
r4292 r5075 217 217 CALL iom_nf90_check(NF90_Inquire_Variable(if90id, ivarid, dimids = idimid(1:i_nvd)), clinfo) ! dimensions ids 218 218 iom_file(kiomid)%luld(kiv) = .FALSE. ! default value 219 iom_file(kiomid)%dimsz(:,kiv) = 0 ! reset dimsz in case previously used219 iom_file(kiomid)%dimsz(:,kiv) = 0 ! reset dimsz in case previously used 220 220 DO ji = 1, i_nvd ! dimensions size 221 221 CALL iom_nf90_check(NF90_Inquire_Dimension(if90id, idimid(ji), len = iom_file(kiomid)%dimsz(ji,kiv)), clinfo) -
branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90
r4520 r5075 164 164 ENDIF 165 165 166 IF ( clinfo3 == 'tra' ) THEN 167 zvctl1 = t_ctll(jn) 168 zvctl2 = s_ctll(jn) 169 ELSEIF ( clinfo3 == 'dyn' ) THEN 170 zvctl1 = u_ctll(jn) 171 zvctl2 = v_ctll(jn) 166 IF( PRESENT(clinfo3)) THEN 167 IF ( clinfo3 == 'tra' ) THEN 168 zvctl1 = t_ctll(jn) 169 zvctl2 = s_ctll(jn) 170 ELSEIF ( clinfo3 == 'dyn' ) THEN 171 zvctl1 = u_ctll(jn) 172 zvctl2 = v_ctll(jn) 173 ENDIF 172 174 ENDIF 173 175 -
branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90
r4334 r5075 22 22 USE iom ! I/O module 23 23 USE eosbn2 ! equation of state (eos bn2 routine) 24 USE trdm ld_oce ! ocean active mixed layer tracers trends variables24 USE trdmxl_oce ! ocean active mixed layer tracers trends variables 25 25 USE divcur ! hor. divergence and curl (div & cur routines) 26 26 USE sbc_ice, ONLY : lk_lim3 … … 120 120 CALL iom_rstput( kt, nitrst, numrow, 'hdivb' , hdivb ) 121 121 CALL iom_rstput( kt, nitrst, numrow, 'sshb' , sshb ) 122 ! 123 IF( lk_lim3 ) CALL iom_rstput( kt, nitrst, numrow, 'fse3t_b', fse3t_b(:,:,:) ) 122 124 ! 123 125 CALL iom_rstput( kt, nitrst, numrow, 'un' , un ) ! now fields … … 133 135 #endif 134 136 IF( lk_lim3 ) THEN 135 CALL iom_rstput( kt, nitrst, numrow, 'iatte' , iatte ) !clem modif 136 CALL iom_rstput( kt, nitrst, numrow, 'oatte' , oatte ) !clem modif 137 CALL iom_rstput( kt, nitrst, numrow, 'fraqsr_1lev' , fraqsr_1lev ) !clem modif 137 138 ENDIF 138 139 IF( kt == nitrst ) THEN 139 140 CALL iom_close( numrow ) ! close the restart file (only at last time step) 140 IF( .NOT. lk_trdmld ) lrst_oce = .FALSE. 141 !!gm IF( .NOT. lk_trdmld ) lrst_oce = .FALSE. 142 !!gm not sure what to do here ===>>> ask to Sebastian 143 lrst_oce = .FALSE. 141 144 ENDIF 142 145 ! 143 146 END SUBROUTINE rst_write 147 144 148 145 149 SUBROUTINE rst_read_open … … 155 159 LOGICAL :: llok 156 160 !!---------------------------------------------------------------------- 157 158 IF( numror .LE.0 ) THEN161 ! 162 IF( numror <= 0 ) THEN 159 163 IF(lwp) THEN ! Contol prints 160 164 WRITE(numout,*) … … 210 214 CALL iom_get( numror, jpdom_autoglo, 'hdivb' , hdivb ) 211 215 CALL iom_get( numror, jpdom_autoglo, 'sshb' , sshb ) 216 IF( lk_lim3 ) CALL iom_get( numror, jpdom_autoglo, 'fse3t_b', fse3t_b(:,:,:) ) 212 217 ELSE 213 218 neuler = 0 … … 245 250 hdivb(:,:,:) = hdivn(:,:,:) 246 251 sshb (:,:) = sshn (:,:) 247 ENDIF 248 ! 249 IF( lk_lim3 ) THEN 250 CALL iom_get( numror, jpdom_autoglo, 'iatte' , iatte ) ! clem modif 251 CALL iom_get( numror, jpdom_autoglo, 'oatte' , oatte ) ! clem modif 252 253 IF( lk_vvl ) THEN 254 DO jk = 1, jpk 255 fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 256 END DO 257 ENDIF 258 259 IF( lk_lim3 .AND. .NOT. lk_vvl ) THEN 260 DO jk = 1, jpk 261 fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 262 END DO 263 ENDIF 264 265 ENDIF 266 ! 267 IF( lk_lim3 ) THEN 268 CALL iom_get( numror, jpdom_autoglo, 'fraqsr_1lev' , fraqsr_1lev ) 252 269 ENDIF 253 270 !
Note: See TracChangeset
for help on using the changeset viewer.