Changeset 12546 for NEMO/branches/2020/dev_r12512_HPC-04_mcastril_Mixed_Precision_implementation/src/OCE/IOM/iom.F90
- Timestamp:
- 2020-03-13T11:06:44+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12512_HPC-04_mcastril_Mixed_Precision_implementation/src/OCE/IOM/iom.F90
r12489 r12546 1311 1311 !--- overlap areas and extra hallows (mpp) 1312 1312 IF( PRESENT(pv_r2d) .AND. idom /= jpdom_unknown ) THEN 1313 CALL lbc_lnk( 'iom', pv_r2d,'Z', -999. , kfillmode = jpfillnothing )1313 CALL lbc_lnk( 'iom', pv_r2d,'Z', -999.0_wp, kfillmode = jpfillnothing ) 1314 1314 ELSEIF( PRESENT(pv_r3d) .AND. idom /= jpdom_unknown ) THEN 1315 1315 ! this if could be simplified with the new lbc_lnk that works with any size of the 3rd dimension 1316 1316 IF( icnt(3) == inlev ) THEN 1317 CALL lbc_lnk( 'iom', pv_r3d,'Z', -999. , kfillmode = jpfillnothing )1317 CALL lbc_lnk( 'iom', pv_r3d,'Z', -999.0_wp, kfillmode = jpfillnothing ) 1318 1318 ELSE ! put some arbitrary value (a call to lbc_lnk will be done later...) 1319 1319 DO jj = nlcj+1, jpj ; pv_r3d(1:nlci, jj, :) = pv_r3d(1:nlci, nlej, :) ; END DO … … 1340 1340 CALL xios_recv_field( trim(cdvar), pv_r3d) 1341 1341 IF(idom /= jpdom_unknown ) then 1342 CALL lbc_lnk( 'iom', pv_r3d,'Z', -999. , kfillmode = jpfillnothing)1342 CALL lbc_lnk( 'iom', pv_r3d,'Z', -999.0_wp, kfillmode = jpfillnothing) 1343 1343 ENDIF 1344 1344 ELSEIF( PRESENT(pv_r2d) ) THEN … … 1347 1347 CALL xios_recv_field( trim(cdvar), pv_r2d) 1348 1348 IF(idom /= jpdom_unknown ) THEN 1349 CALL lbc_lnk('iom', pv_r2d,'Z',-999. , kfillmode = jpfillnothing)1349 CALL lbc_lnk('iom', pv_r2d,'Z',-999.0_wp, kfillmode = jpfillnothing) 1350 1350 ENDIF 1351 1351 ELSEIF( PRESENT(pv_r1d) ) THEN … … 1362 1362 !some final adjustments 1363 1363 ! C1D case : always call lbc_lnk to replicate the central value over the whole 3X3 domain 1364 IF( lk_c1d .AND. PRESENT(pv_r2d) ) CALL lbc_lnk( 'iom', pv_r2d,'Z',1. )1365 IF( lk_c1d .AND. PRESENT(pv_r3d) ) CALL lbc_lnk( 'iom', pv_r3d,'Z',1. )1364 IF( lk_c1d .AND. PRESENT(pv_r2d) ) CALL lbc_lnk( 'iom', pv_r2d,'Z',1.0_wp ) 1365 IF( lk_c1d .AND. PRESENT(pv_r3d) ) CALL lbc_lnk( 'iom', pv_r3d,'Z',1.0_wp ) 1366 1366 1367 1367 !--- Apply scale_factor and offset … … 1982 1982 SELECT CASE ( cdgrd ) 1983 1983 CASE('T') ; zmask(:,:,:) = tmask(:,:,:) 1984 CASE('U') ; zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:) ; CALL lbc_lnk( 'iom', zmask, 'U', 1. )1985 CASE('V') ; zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:) ; CALL lbc_lnk( 'iom', zmask, 'V', 1. )1984 CASE('U') ; zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:) ; CALL lbc_lnk( 'iom', zmask, 'U', 1.0_wp ) 1985 CASE('V') ; zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:) ; CALL lbc_lnk( 'iom', zmask, 'V', 1.0_wp ) 1986 1986 CASE('W') ; zmask(:,:,2:jpk ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk) ; zmask(:,:,1) = tmask(:,:,1) 1987 1987 END SELECT … … 2026 2026 ! 2027 2027 z_fld(:,:) = 1._wp 2028 CALL lbc_lnk( 'iom', z_fld, cdgrd, -1. ) ! Working array for location of northfold2028 CALL lbc_lnk( 'iom', z_fld, cdgrd, -1.0_wp ) ! Working array for location of northfold 2029 2029 ! 2030 2030 ! Cell vertices that can be defined … … 2044 2044 ! Cell vertices on boundries 2045 2045 DO jn = 1, 4 2046 CALL lbc_lnk( 'iom', z_bnds(jn,:,:,1), cdgrd, 1. , pfillval=999._wp )2047 CALL lbc_lnk( 'iom', z_bnds(jn,:,:,2), cdgrd, 1. , pfillval=999._wp )2046 CALL lbc_lnk( 'iom', z_bnds(jn,:,:,1), cdgrd, 1.0_wp, pfillval=999._wp ) 2047 CALL lbc_lnk( 'iom', z_bnds(jn,:,:,2), cdgrd, 1.0_wp, pfillval=999._wp ) 2048 2048 END DO 2049 2049 ! … … 2116 2116 ALLOCATE( zlon(ni*nj) ) ; zlon(:) = 0._wp 2117 2117 ! 2118 ! CALL dom_ngb( -168.53 , 65.03, ix, iy, 'T' ) ! i-line that passes through Bering Strait: Reference latitude (used in plots)2119 CALL dom_ngb( 180. , 90., ix, iy, 'T' ) ! i-line that passes near the North Pole : Reference latitude (used in plots)2118 ! CALL dom_ngb( -168.53_wp, 65.03_wp, ix, iy, 'T' ) ! i-line that passes through Bering Strait: Reference latitude (used in plots) 2119 CALL dom_ngb( 180.0_wp, 90.0_wp, ix, iy, 'T' ) ! i-line that passes near the North Pole : Reference latitude (used in plots) 2120 2120 CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-2, jbegin=njmpp+nldj-2, ni=ni, nj=nj) 2121 2121 CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) … … 2198 2198 cl1 = clgrd(jg) 2199 2199 ! Equatorial section (attributs: jbegin, ni, name_suffix) 2200 CALL dom_ngb( 0. , 0., ix, iy, cl1 )2200 CALL dom_ngb( 0.0_wp, 0.0_wp, ix, iy, cl1 ) 2201 2201 CALL iom_set_zoom_domain_attr('Eq'//cl1, ibegin=0, jbegin=iy-1, ni=jpiglo, nj=1 ) 2202 2202 CALL iom_get_file_attr ('Eq'//cl1, name_suffix = clsuff ) … … 2424 2424 ! 2425 2425 IF ( ll24 .AND. isec == 0 ) THEN ! 00:00 of the next day -> move to 24:00 of the current day 2426 CALL ju2ymds( pjday - 1. , iyear, imonth, iday, zsec )2426 CALL ju2ymds( pjday - 1.0_wp, iyear, imonth, iday, zsec ) 2427 2427 isec = 86400 2428 2428 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.