- Timestamp:
- 2019-12-11T17:15:54+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/IOM/iom.F90
r12182 r12193 55 55 LOGICAL, PUBLIC, PARAMETER :: lk_iomput = .FALSE. !: iom_put flag 56 56 #endif 57 PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get 57 PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_get_var 58 58 PUBLIC iom_chkatt, iom_getatt, iom_putatt, iom_getszuld, iom_rstput, iom_delay_rst, iom_put 59 59 PUBLIC iom_use, iom_context_finalize, iom_miss_val … … 61 61 PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 62 62 PRIVATE iom_g0d, iom_g1d, iom_g2d, iom_g3d, iom_get_123d 63 PRIVATE iom_p1d, iom_p2d, iom_p3d 63 PRIVATE iom_p1d, iom_p2d, iom_p3d, iom_p4d 64 64 #if defined key_iomput 65 65 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 … … 82 82 END INTERFACE 83 83 INTERFACE iom_put 84 MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d 84 MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d, iom_p4d 85 85 END INTERFACE iom_put 86 86 … … 107 107 TYPE(xios_date) :: start_date 108 108 CHARACTER(len=lc) :: clname 109 INTEGER :: irefyear, irefmonth, irefday 109 110 INTEGER :: ji, jkmin 110 111 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 … … 241 246 CALL iom_set_axis_attr( "icbcla", class_num ) 242 247 CALL iom_set_axis_attr( "iax_20C", (/ REAL(20,wp) /) ) ! strange syntaxe and idea... 248 CALL iom_set_axis_attr( "iax_26C", (/ REAL(26,wp) /) ) ! strange syntaxe and idea... 243 249 CALL iom_set_axis_attr( "iax_28C", (/ REAL(28,wp) /) ) ! strange syntaxe and idea... 250 CALL iom_set_axis_attr( "basin" , (/ (REAL(ji,wp), ji=1,5) /) ) 244 251 ENDIF 245 252 ! … … 1348 1355 END SUBROUTINE iom_get_123d 1349 1356 1357 SUBROUTINE iom_get_var( cdname, z2d) 1358 CHARACTER(LEN=*), INTENT(in ) :: cdname 1359 REAL(wp), DIMENSION(jpi,jpj) :: z2d 1360 #if defined key_iomput 1361 IF( xios_field_is_active( cdname, at_current_timestep_arg = .TRUE. ) ) THEN 1362 z2d(:,:) = 0._wp 1363 CALL xios_recv_field( cdname, z2d) 1364 ENDIF 1365 #else 1366 IF( .FALSE. ) WRITE(numout,*) cdname, z2d ! useless test to avoid compilation warnings 1367 #endif 1368 END SUBROUTINE iom_get_var 1369 1350 1370 1351 1371 FUNCTION iom_getszuld ( kiomid ) … … 1717 1737 END SUBROUTINE iom_p3d 1718 1738 1739 SUBROUTINE iom_p4d( cdname, pfield4d ) 1740 CHARACTER(LEN=*) , INTENT(in) :: cdname 1741 REAL(wp), DIMENSION(:,:,:,:), INTENT(in) :: pfield4d 1742 #if defined key_iomput 1743 CALL xios_send_field(cdname, pfield4d) 1744 #else 1745 IF( .FALSE. ) WRITE(numout,*) cdname, pfield4d ! useless test to avoid compilation warnings 1746 #endif 1747 END SUBROUTINE iom_p4d 1748 1749 1719 1750 #if defined key_iomput 1720 1751 !!---------------------------------------------------------------------- … … 2059 2090 ALLOCATE( zlon(ni*nj) ) ; zlon(:) = 0._wp 2060 2091 ! 2061 CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) ! i-line that passes through Bering Strait: Reference latitude (used in plots)2062 !CALL dom_ngb( 180., 90., ix, iy, 'T' ) ! i-line that passes near the North Pole : Reference latitude (used in plots)2092 ! CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) ! i-line that passes through Bering Strait: Reference latitude (used in plots) 2093 CALL dom_ngb( 180., 90., ix, iy, 'T' ) ! i-line that passes near the North Pole : Reference latitude (used in plots) 2063 2094 CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-2, jbegin=njmpp+nldj-2, ni=ni, nj=nj) 2064 2095 CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) 2065 2096 CALL iom_set_domain_attr("gznl", lonvalue = zlon, & 2066 2097 & latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /))) 2067 CALL iom_set_zoom_domain_attr("znl_T", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 2068 CALL iom_set_zoom_domain_attr("znl_W", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 2098 CALL iom_set_zoom_domain_attr("ptr", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 2069 2099 ! 2070 2100 CALL iom_update_file_name('ptr')
Note: See TracChangeset
for help on using the changeset viewer.