- Timestamp:
- 2020-04-07T18:34:56+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.2_ENHANCE-02_ISF_nemo/src/OCE/IOM/iom.F90
r12143 r12706 56 56 LOGICAL, PUBLIC, PARAMETER :: lk_iomput = .FALSE. !: iom_put flag 57 57 #endif 58 PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get 58 PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_get_var 59 59 PUBLIC iom_chkatt, iom_getatt, iom_putatt, iom_getszuld, iom_rstput, iom_delay_rst, iom_put 60 60 PUBLIC iom_use, iom_context_finalize, iom_miss_val … … 62 62 PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 63 63 PRIVATE iom_g0d, iom_g1d, iom_g2d, iom_g3d, iom_get_123d 64 PRIVATE iom_p1d, iom_p2d, iom_p3d 64 PRIVATE iom_p1d, iom_p2d, iom_p3d, iom_p4d 65 65 #if defined key_iomput 66 66 PRIVATE iom_set_domain_attr, iom_set_axis_attr, iom_set_field_attr, iom_set_file_attr, iom_get_file_attr, iom_set_grid_attr … … 83 83 END INTERFACE 84 84 INTERFACE iom_put 85 MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d 85 MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d, iom_p4d 86 86 END INTERFACE iom_put 87 87 … … 108 108 TYPE(xios_date) :: start_date 109 109 CHARACTER(len=lc) :: clname 110 INTEGER :: irefyear, irefmonth, irefday 110 111 INTEGER :: ji, jkmin 111 112 LOGICAL :: llrst_context ! is context related to restart … … 139 140 140 141 ! Calendar type is now defined in xml file 142 IF (.NOT.(xios_getvar('ref_year' ,irefyear ))) irefyear = 1900 143 IF (.NOT.(xios_getvar('ref_month',irefmonth))) irefmonth = 01 144 IF (.NOT.(xios_getvar('ref_day' ,irefday ))) irefday = 01 145 141 146 SELECT CASE ( nleapy ) ! Choose calendar for IOIPSL 142 CASE ( 1) ; CALL xios_define_calendar( TYPE = "Gregorian", time_origin = xios_date( 1900,01,01,00,00,00), &147 CASE ( 1) ; CALL xios_define_calendar( TYPE = "Gregorian", time_origin = xios_date(irefyear,irefmonth,irefday,00,00,00), & 143 148 & start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 144 CASE ( 0) ; CALL xios_define_calendar( TYPE = "NoLeap" , time_origin = xios_date( 1900,01,01,00,00,00), &149 CASE ( 0) ; CALL xios_define_calendar( TYPE = "NoLeap" , time_origin = xios_date(irefyear,irefmonth,irefday,00,00,00), & 145 150 & start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 146 CASE (30) ; CALL xios_define_calendar( TYPE = "D360" , time_origin = xios_date( 1900,01,01,00,00,00), &151 CASE (30) ; CALL xios_define_calendar( TYPE = "D360" , time_origin = xios_date(irefyear,irefmonth,irefday,00,00,00), & 147 152 & start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 148 153 END SELECT … … 223 228 CALL iom_set_axis_attr( "icbcla", class_num ) 224 229 CALL iom_set_axis_attr( "iax_20C", (/ REAL(20,wp) /) ) ! strange syntaxe and idea... 230 CALL iom_set_axis_attr( "iax_26C", (/ REAL(26,wp) /) ) ! strange syntaxe and idea... 225 231 CALL iom_set_axis_attr( "iax_28C", (/ REAL(28,wp) /) ) ! strange syntaxe and idea... 232 CALL iom_set_axis_attr( "basin" , (/ (REAL(ji,wp), ji=1,5) /) ) 226 233 ENDIF 227 234 ! … … 795 802 CHARACTER(LEN=100) :: clinfo ! info character 796 803 !--------------------------------------------------------------------- 804 ! 805 IF( iom_open_init == 0 ) RETURN ! avoid to use iom_file(jf)%nfid that us not yet initialized 797 806 ! 798 807 clinfo = ' iom_close ~~~ ' … … 1329 1338 END SUBROUTINE iom_get_123d 1330 1339 1340 SUBROUTINE iom_get_var( cdname, z2d) 1341 CHARACTER(LEN=*), INTENT(in ) :: cdname 1342 REAL(wp), DIMENSION(jpi,jpj) :: z2d 1343 #if defined key_iomput 1344 IF( xios_field_is_active( cdname, at_current_timestep_arg = .TRUE. ) ) THEN 1345 z2d(:,:) = 0._wp 1346 CALL xios_recv_field( cdname, z2d) 1347 ENDIF 1348 #else 1349 IF( .FALSE. ) WRITE(numout,*) cdname, z2d ! useless test to avoid compilation warnings 1350 #endif 1351 END SUBROUTINE iom_get_var 1352 1331 1353 1332 1354 FUNCTION iom_getszuld ( kiomid ) … … 1698 1720 END SUBROUTINE iom_p3d 1699 1721 1722 SUBROUTINE iom_p4d( cdname, pfield4d ) 1723 CHARACTER(LEN=*) , INTENT(in) :: cdname 1724 REAL(wp), DIMENSION(:,:,:,:), INTENT(in) :: pfield4d 1725 #if defined key_iomput 1726 CALL xios_send_field(cdname, pfield4d) 1727 #else 1728 IF( .FALSE. ) WRITE(numout,*) cdname, pfield4d ! useless test to avoid compilation warnings 1729 #endif 1730 END SUBROUTINE iom_p4d 1731 1732 1700 1733 #if defined key_iomput 1701 1734 !!---------------------------------------------------------------------- … … 2040 2073 ALLOCATE( zlon(ni*nj) ) ; zlon(:) = 0._wp 2041 2074 ! 2042 CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) ! i-line that passes through Bering Strait: Reference latitude (used in plots)2043 !CALL dom_ngb( 180., 90., ix, iy, 'T' ) ! i-line that passes near the North Pole : Reference latitude (used in plots)2075 ! CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) ! i-line that passes through Bering Strait: Reference latitude (used in plots) 2076 CALL dom_ngb( 180., 90., ix, iy, 'T' ) ! i-line that passes near the North Pole : Reference latitude (used in plots) 2044 2077 CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-2, jbegin=njmpp+nldj-2, ni=ni, nj=nj) 2045 2078 CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) 2046 2079 CALL iom_set_domain_attr("gznl", lonvalue = zlon, & 2047 2080 & latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /))) 2048 CALL iom_set_zoom_domain_attr("znl_T", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 2049 CALL iom_set_zoom_domain_attr("znl_W", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 2081 CALL iom_set_zoom_domain_attr("ptr", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 2050 2082 ! 2051 2083 CALL iom_update_file_name('ptr')
Note: See TracChangeset
for help on using the changeset viewer.