- Timestamp:
- 2013-11-05T12:59:53+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r4148 r4152 37 37 # endif 38 38 USE ioipsl, ONLY : ju2ymds ! for calendar 39 USE crs ! Grid coarsening 39 40 40 41 IMPLICIT NONE … … 47 48 #endif 48 49 PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_gettime, iom_rstput, iom_put 49 PUBLIC iom_getatt 50 PUBLIC iom_getatt, iom_context_finalize 50 51 51 52 PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d … … 69 70 MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d 70 71 END INTERFACE 71 #if defined key_iomput72 INTERFACE iom_setkt73 MODULE PROCEDURE xios_update_calendar74 END INTERFACE75 # endif76 72 77 73 !!---------------------------------------------------------------------- … … 83 79 CONTAINS 84 80 85 SUBROUTINE iom_init 81 SUBROUTINE iom_init( cdname ) 86 82 !!---------------------------------------------------------------------- 87 83 !! *** ROUTINE *** … … 90 86 !! 91 87 !!---------------------------------------------------------------------- 88 CHARACTER(len=*), INTENT(in) :: cdname 92 89 #if defined key_iomput 93 90 TYPE(xios_time) :: dtime = xios_time(0, 0, 0, 0, 0, 0) … … 97 94 !!---------------------------------------------------------------------- 98 95 99 clname = "nemo"100 IF( TRIM(Agrif_CFixed()) /= '0' ) clname = TRIM(Agrif_CFixed())//"_"//TRIM(c lname)96 clname = cdname 97 IF( TRIM(Agrif_CFixed()) /= '0' ) clname = TRIM(Agrif_CFixed())//"_"//TRIM(cdname) 101 98 CALL xios_context_initialize(TRIM(clname), mpi_comm_opa) 102 CALL iom_swap 99 CALL iom_swap( cdname ) 103 100 104 101 ! calendar parameters … … 113 110 ! horizontal grid definition 114 111 CALL set_scalar 115 CALL set_grid( "T", glamt, gphit ) 116 CALL set_grid( "U", glamu, gphiu ) 117 CALL set_grid( "V", glamv, gphiv ) 118 CALL set_grid( "W", glamt, gphit ) 112 113 IF( TRIM(cdname) == "nemo" ) THEN 114 CALL set_grid( "T", glamt, gphit ) 115 CALL set_grid( "U", glamu, gphiu ) 116 CALL set_grid( "V", glamv, gphiv ) 117 CALL set_grid( "W", glamt, gphit ) 118 ENDIF 119 120 IF( TRIM(cdname) == "nemo_crs" ) THEN 121 CALL dom_grid_crs ! Save the parent grid information & Switch to coarse grid domain 122 ! 123 CALL set_grid( "T", glamt_crs, gphit_crs ) 124 CALL set_grid( "U", glamu_crs, gphiu_crs ) 125 CALL set_grid( "V", glamv_crs, gphiv_crs ) 126 CALL set_grid( "W", glamt_crs, gphit_crs ) 127 ! 128 CALL dom_grid_glo ! Return to parent grid domain 129 ENDIF 130 119 131 120 132 ! vertical grid definition … … 141 153 142 154 143 SUBROUTINE iom_swap 155 SUBROUTINE iom_swap( cdname ) 144 156 !!--------------------------------------------------------------------- 145 157 !! *** SUBROUTINE iom_swap *** … … 147 159 !! ** Purpose : swap context between different agrif grid for xmlio_server 148 160 !!--------------------------------------------------------------------- 161 CHARACTER(len=*), INTENT(in) :: cdname 149 162 #if defined key_iomput 150 163 TYPE(xios_context) :: nemo_hdl 151 164 152 IF( TRIM(Agrif_CFixed()) == '0' ) THEN153 CALL xios_get_handle( "nemo",nemo_hdl)154 ELSE155 CALL xios_get_handle(TRIM(Agrif_CFixed())//"_ nemo",nemo_hdl)156 ENDIF157 CALL xios_set_current_context(nemo_hdl)158 165 IF( TRIM(Agrif_CFixed()) == '0' ) THEN 166 CALL xios_get_handle(TRIM(cdname),nemo_hdl) 167 ELSE 168 CALL xios_get_handle(TRIM(Agrif_CFixed())//"_"//TRIM(cdname),nemo_hdl) 169 ENDIF 170 ! 171 CALL xios_set_current_context(nemo_hdl) 159 172 #endif 173 ! 160 174 END SUBROUTINE iom_swap 161 175 … … 1100 1114 CALL xios_solve_inheritance() 1101 1115 END SUBROUTINE iom_set_grid_attr 1116 1117 SUBROUTINE iom_setkt( kt, cdname ) 1118 INTEGER , INTENT(in) :: kt 1119 CHARACTER(LEN=*), INTENT(in) :: cdname 1120 ! 1121 CALL iom_swap( cdname ) ! swap to cdname context 1122 CALL xios_update_calendar(kt) 1123 IF( cdname /= "nemo" ) CALL iom_swap( "nemo" ) ! return back to nemo context 1124 ! 1125 END SUBROUTINE iom_setkt 1126 1127 SUBROUTINE iom_context_finalize( cdname ) 1128 CHARACTER(LEN=*), INTENT(in) :: cdname 1129 ! 1130 CALL iom_swap( cdname ) ! swap to cdname context 1131 CALL xios_context_finalize() ! finalize the context 1132 IF( cdname /= "nemo" ) CALL iom_swap( "nemo" ) ! return back to nemo context 1133 ! 1134 END SUBROUTINE iom_context_finalize 1102 1135 1103 1136 … … 1424 1457 #else 1425 1458 1426 SUBROUTINE iom_setkt( kt ) 1427 INTEGER, INTENT(in ):: kt 1428 IF( .FALSE. ) WRITE(numout,*) kt ! useless test to avoid compilation warnings 1459 1460 SUBROUTINE iom_setkt( kt, cdname ) 1461 INTEGER , INTENT(in):: kt 1462 CHARACTER(LEN=*), INTENT(in) :: cdname 1463 IF( .FALSE. ) WRITE(numout,*) kt, cdname ! useless test to avoid compilation warnings 1429 1464 END SUBROUTINE iom_setkt 1465 1466 SUBROUTINE iom_context_finalize( cdname ) 1467 CHARACTER(LEN=*), INTENT(in) :: cdname 1468 IF( .FALSE. ) WRITE(numout,*) cdname ! useless test to avoid compilation warnings 1469 END SUBROUTINE iom_context_finalize 1430 1470 1431 1471 #endif
Note: See TracChangeset
for help on using the changeset viewer.