Changeset 550 for trunk/NEMO/OPA_SRC/IOM/iom.F90
- Timestamp:
- 2006-10-25T15:43:58+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/IOM/iom.F90
r547 r550 13 13 !! iom_close : close a file or all files opened by iom 14 14 !! iom_get : read a field (interfaced to several routines) 15 !! iom_gettime : read the time axis cdvar in the file !!gm : never call ??????15 !! iom_gettime : read the time axis cdvar in the file 16 16 !! iom_varid : get the id of a variable in a file 17 17 !! iom_rstput : write a field in a restart file (interfaced to several routines) … … 25 25 26 26 IMPLICIT NONE 27 P UBLIC ! must be PUBLIC to pass the variables through the modules28 27 PRIVATE 28 29 29 PUBLIC iom_open, iom_close, iom_varid, iom_get, iom_gettime, iom_rstput 30 PRIVATE iom_get_0d, iom_get_1d, iom_get_2d, iom_get_3d, iom_get_123d31 PRIVATE iom_rstput_0d, iom_rstput_1d, iom_rstput_2d, iom_rstput_3d32 30 33 31 INTERFACE iom_get 34 MODULE PROCEDURE iom_g et_0d, iom_get_1d, iom_get_2d, iom_get_3d32 MODULE PROCEDURE iom_g0d, iom_g1d, iom_g2d, iom_g3d 35 33 END INTERFACE 36 34 INTERFACE iom_rstput 37 MODULE PROCEDURE iom_r stput_0d, iom_rstput_1d, iom_rstput_2d, iom_rstput_3d35 MODULE PROCEDURE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 38 36 END INTERFACE 39 37 40 INTEGER , PRIVATE:: iom_init = 0 !38 INTEGER :: iom_init = 0 ! 41 39 !!---------------------------------------------------------------------- 42 40 !! OPA 9.0 , LOCEAN-IPSL (2006) … … 62 60 CHARACTER(LEN=100) :: cltmpn ! tempory name to store clname (in writting mode) 63 61 CHARACTER(LEN=10) :: clsuffix ! ".nc" or ".dimg" 64 CHARACTER(LEN=1 0) :: clcpu ! the cpu number (max jpmax_digits digits)62 CHARACTER(LEN=15) :: clcpu ! the cpu number (max jpmax_digits digits) 65 63 CHARACTER(LEN=100) :: clinfo ! info character 66 64 LOGICAL :: llok ! check the existence … … 290 288 !! INTERFACE iom_get 291 289 !!---------------------------------------------------------------------- 292 SUBROUTINE iom_g et_0d( kiomid, cdvar, pvar )290 SUBROUTINE iom_g0d( kiomid, cdvar, pvar ) 293 291 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 294 292 CHARACTER(len=*), INTENT(in ) :: cdvar ! Name of the variable … … 304 302 CASE (jprstdimg) ; CALL iom_rstdimg_get( kiomid, idvar, pvar ) 305 303 CASE DEFAULT 306 CALL ctl_stop( 'iom_g et_0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )304 CALL ctl_stop( 'iom_g0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 307 305 END SELECT 308 306 END IF 309 END SUBROUTINE iom_g et_0d310 311 SUBROUTINE iom_g et_1d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount )307 END SUBROUTINE iom_g0d 308 309 SUBROUTINE iom_g1d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount ) 312 310 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 313 311 INTEGER , INTENT(in ) :: kdom ! Type of domain to be read … … 320 318 IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom , cdvar , pv_r1d=pvar, & 321 319 & ktime=ktime, kstart=kstart, kcount=kcount ) 322 END SUBROUTINE iom_g et_1d323 324 SUBROUTINE iom_g et_2d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount )320 END SUBROUTINE iom_g1d 321 322 SUBROUTINE iom_g2d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount ) 325 323 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 326 324 INTEGER , INTENT(in ) :: kdom ! Type of domain to be read … … 333 331 IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom , cdvar , pv_r2d=pvar, & 334 332 & ktime=ktime, kstart=kstart, kcount=kcount ) 335 END SUBROUTINE iom_g et_2d336 337 SUBROUTINE iom_g et_3d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount )333 END SUBROUTINE iom_g2d 334 335 SUBROUTINE iom_g3d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount ) 338 336 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 339 337 INTEGER , INTENT(in ) :: kdom ! Type of domain to be read … … 346 344 IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom , cdvar , pv_r3d=pvar, & 347 345 & ktime=ktime, kstart=kstart, kcount=kcount ) 348 END SUBROUTINE iom_g et_3d346 END SUBROUTINE iom_g3d 349 347 !!---------------------------------------------------------------------- 350 348 … … 607 605 IF( zofs /= 0. ) pv_r1d(:) = pv_r1d(:) + zofs 608 606 ELSEIF( PRESENT(pv_r2d) ) THEN 609 607 !CDIR COLLAPSE 610 608 IF( zscf /= 1.) pv_r2d(:,:) = pv_r2d(:,:) * zscf 611 609 !CDIR COLLAPSE 612 610 IF( zofs /= 0.) pv_r2d(:,:) = pv_r2d(:,:) + zofs 613 611 ELSEIF( PRESENT(pv_r3d) ) THEN 614 612 !CDIR COLLAPSE 615 613 IF( zscf /= 1.) pv_r3d(:,:,:) = pv_r3d(:,:,:) * zscf 616 614 !CDIR COLLAPSE 617 615 IF( zofs /= 0.) pv_r3d(:,:,:) = pv_r3d(:,:,:) + zofs 618 616 ENDIF … … 672 670 !! INTERFACE iom_rstput 673 671 !!---------------------------------------------------------------------- 674 SUBROUTINE iom_r stput_0d( kt, kwrite, kiomid, cdvar, pvar, ktype )672 SUBROUTINE iom_rp0d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 675 673 INTEGER , INTENT(in) :: kt ! ocean time-step 676 674 INTEGER , INTENT(in) :: kwrite ! writing time-step … … 687 685 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, pvar ) 688 686 CASE DEFAULT 689 CALL ctl_stop( 'iom_r stput_0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )687 CALL ctl_stop( 'iom_rp0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 690 688 END SELECT 691 689 END IF 692 END SUBROUTINE iom_r stput_0d693 694 SUBROUTINE iom_r stput_1d( kt, kwrite, kiomid, cdvar, pvar, ktype )690 END SUBROUTINE iom_rp0d 691 692 SUBROUTINE iom_rp1d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 695 693 INTEGER , INTENT(in) :: kt ! ocean time-step 696 694 INTEGER , INTENT(in) :: kwrite ! writing time-step … … 707 705 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, pv_r1d = pvar ) 708 706 CASE DEFAULT 709 CALL ctl_stop( 'iom_r stput_1d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )707 CALL ctl_stop( 'iom_rp1d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 710 708 END SELECT 711 709 END IF 712 END SUBROUTINE iom_r stput_1d713 714 SUBROUTINE iom_r stput_2d( kt, kwrite, kiomid, cdvar, pvar, ktype )710 END SUBROUTINE iom_rp1d 711 712 SUBROUTINE iom_rp2d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 715 713 INTEGER , INTENT(in) :: kt ! ocean time-step 716 714 INTEGER , INTENT(in) :: kwrite ! writing time-step … … 727 725 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, pv_r2d = pvar ) 728 726 CASE DEFAULT 729 CALL ctl_stop( 'iom_r stput_2d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )727 CALL ctl_stop( 'iom_rp2d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 730 728 END SELECT 731 729 END IF 732 END SUBROUTINE iom_r stput_2d733 734 SUBROUTINE iom_r stput_3d( kt, kwrite, kiomid, cdvar, pvar, ktype )730 END SUBROUTINE iom_rp2d 731 732 SUBROUTINE iom_rp3d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 735 733 INTEGER , INTENT(in) :: kt ! ocean time-step 736 734 INTEGER , INTENT(in) :: kwrite ! writing time-step … … 747 745 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, pv_r3d = pvar ) 748 746 CASE DEFAULT 749 CALL ctl_stop( 'iom_r stput_3d: accepted IO library are only jpioipsl and jprstdimg' )747 CALL ctl_stop( 'iom_rp3d: accepted IO library are only jpioipsl and jprstdimg' ) 750 748 END SELECT 751 749 END IF 752 END SUBROUTINE iom_r stput_3d750 END SUBROUTINE iom_rp3d 753 751 !!---------------------------------------------------------------------- 754 752
Note: See TracChangeset
for help on using the changeset viewer.