Changeset 1302 for trunk/LMDZ.COMMON/libf/bibio
- Timestamp:
- Jun 26, 2014, 6:07:05 PM (11 years ago)
- Location:
- trunk/LMDZ.COMMON/libf/bibio
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/bibio/wxios.F90
r1300 r1302 26 26 27 27 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 28 ! str + i => str_i !!!!!!!!!!!!!!!!!!!!29 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!30 31 SUBROUTINE concat(str, str2, str_str2)32 CHARACTER(len=*), INTENT(IN) :: str, str233 CHARACTER(len=20), INTENT(OUT) :: str_str234 35 36 str_str2 = TRIM(ADJUSTL(str//"_"//TRIM(ADJUSTL(str2))))37 !IF (prt_level >= 10) WRITE(lunout,*) "Xios. ",str,"+",str2,"=",str_str238 END SUBROUTINE concat39 40 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!41 28 ! 36day => 36d etc !!!!!!!!!!!!!!!!!!!! 42 29 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 109 96 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 110 97 111 SUBROUTINE wxios_init(xios_ctx_name, locom, outcom )98 SUBROUTINE wxios_init(xios_ctx_name, locom, outcom, type_ocean) 112 99 IMPLICIT NONE 113 100 INCLUDE 'iniprint.h' … … 116 103 INTEGER, INTENT(IN), OPTIONAL :: locom 117 104 INTEGER, INTENT(OUT), OPTIONAL :: outcom 105 CHARACTER(len=6), INTENT(IN), OPTIONAL :: type_ocean 118 106 119 107 … … 142 130 g_ctx_name = xios_ctx_name 143 131 144 CALL wxios_context_init() 145 132 ! Si couple alors init fait dans cpl_init 133 IF (.not. PRESENT(type_ocean)) THEN 134 CALL wxios_context_init() 135 ENDIF 136 146 137 END SUBROUTINE wxios_init 147 138 … … 158 149 g_ctx = xios_ctx 159 150 160 IF (prt_level >= 10) WRITE(lunout,*) "wxios_context_init: Current context is ",trim(g_ctx_name) 161 151 IF (prt_level >= 10) THEN 152 WRITE(lunout,*) "wxios_context_init: Current context is ",trim(g_ctx_name) 153 WRITE(lunout,*) " now call xios_solve_inheritance()" 154 ENDIF 162 155 !Une première analyse des héritages: 163 156 CALL xios_solve_inheritance() … … 303 296 ! Pour déclarer un axe vertical !!!!!!!!!!!!!!! 304 297 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 305 SUBROUTINE wxios_add_vaxis(axis group_id, axis_file, axis_size, axis_value)306 IMPLICIT NONE 307 INCLUDE 'iniprint.h' 308 309 CHARACTER (len=*), INTENT(IN) :: axis group_id, axis_file298 SUBROUTINE wxios_add_vaxis(axis_id, axis_size, axis_value) 299 IMPLICIT NONE 300 INCLUDE 'iniprint.h' 301 302 CHARACTER (len=*), INTENT(IN) :: axis_id 310 303 INTEGER, INTENT(IN) :: axis_size 311 304 REAL, DIMENSION(axis_size), INTENT(IN) :: axis_value 312 305 313 TYPE(xios_axisgroup) :: axgroup 314 TYPE(xios_axis) :: ax 315 CHARACTER(len=20) :: axis_id 316 317 318 !Préparation du nom de l'axe: 319 CALL concat(axisgroup_id, axis_file, axis_id) 306 ! TYPE(xios_axisgroup) :: axgroup 307 ! TYPE(xios_axis) :: ax 308 ! CHARACTER(len=50) :: axis_id 309 310 ! IF (len_trim(axisgroup_id).gt.len(axis_id)) THEN 311 ! WRITE(lunout,*) "wxios_add_vaxis: error, size of axis_id too small!!" 312 ! WRITE(lunout,*) " increase it to at least ",len_trim(axisgroup_id) 313 ! CALL abort_gcm("wxios_add_vaxis","len(axis_id) too small",1) 314 ! ENDIF 315 ! axis_id=trim(axisgroup_id) 320 316 321 317 !On récupère le groupe d'axes qui va bien: 322 CALL xios_get_axisgroup_handle(axisgroup_id, axgroup)318 !CALL xios_get_axisgroup_handle(axisgroup_id, axgroup) 323 319 324 320 !On ajoute l'axe correspondant à ce fichier: 325 CALL xios_add_axis(axgroup, ax, TRIM(ADJUSTL(axis_id)))321 !CALL xios_add_axis(axgroup, ax, TRIM(ADJUSTL(axis_id))) 326 322 327 323 !Et on le parametrise: 328 CALL xios_set_axis_attr_hdl(ax, size=axis_size, value=axis_value) 324 !CALL xios_set_axis_attr_hdl(ax, size=axis_size, value=axis_value) 325 326 ! Ehouarn: New way to declare axis, without axis_group: 327 CALL xios_set_axis_attr(trim(axis_id),size=axis_size,value=axis_value) 329 328 330 329 !Vérification: … … 332 331 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_vaxis: Axis created: ", TRIM(ADJUSTL(axis_id)) 333 332 ELSE 334 WRITE( *,*) "wxios_add_vaxis: Invalid axis: ", TRIM(ADJUSTL(axis_id))333 WRITE(lunout,*) "wxios_add_vaxis: Invalid axis: ", TRIM(ADJUSTL(axis_id)) 335 334 END IF 336 335 … … 367 366 368 367 IF (xios_is_valid_file("X"//fname)) THEN 369 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_file: New file: ", "X"//fname 370 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl 368 IF (prt_level >= 10) THEN 369 WRITE(lunout,*) "wxios_add_file: New file: ", "X"//fname 370 WRITE(lunout,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl 371 ENDIF 371 372 ELSE 372 WRITE( *,*) "wxios_add_file: Error, invalid file: ", "X"//trim(fname)373 WRITE( *,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl373 WRITE(lunout,*) "wxios_add_file: Error, invalid file: ", "X"//trim(fname) 374 WRITE(lunout,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl 374 375 END IF 375 376 ELSE 376 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_file: File ",trim(fname), " défined using XML." 377 CALL xios_set_file_attr(fname, enabled=.TRUE.) 377 IF (prt_level >= 10) THEN 378 WRITE(lunout,*) "wxios_add_file: File ",trim(fname), " défined using XML." 379 ENDIF 380 ! Ehouarn: add an enable=.true. on top of xml definitions... why??? 381 CALL xios_set_file_attr(fname, enabled=.TRUE.) 378 382 END IF 379 383 END SUBROUTINE wxios_add_file 380 384 381 385 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 382 ! Pour créer un champ !!!!!!!!!!!!!!! 386 ! Pour créer un champ !!!!!!!!!!!!!!!!!!!! 383 387 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 384 388 SUBROUTINE wxios_add_field(fieldname, fieldgroup, fieldlongname, fieldunit) … … 418 422 419 423 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 420 ! Pour déclarer un champ !!!!!!!!!!!!!!! 424 ! Pour déclarer un champ !!!!!!!!!!!!!!!!! 421 425 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 422 426 SUBROUTINE wxios_add_field_to_file(fieldname, fdim, fid, fname, fieldlongname, fieldunit, field_level, op) … … 432 436 CHARACTER(len=*), INTENT(IN) :: op 433 437 434 CHARACTER(len=20) :: axis_id 438 CHARACTER(len=20) :: axis_id ! Ehouarn: dangerous... 435 439 CHARACTER(len=100) :: operation 436 440 TYPE(xios_file) :: f … … 441 445 442 446 443 !Préparation du nom de l'axe: 444 CALL concat("presnivs", fname, axis_id) 447 ! Ajout Abd pour NMC: 448 IF (fid.LE.6) THEN 449 axis_id="presnivs" 450 ELSE 451 axis_id="plev" 452 ENDIF 445 453 446 454 !on prépare le nom de l'opération: … … 448 456 449 457 450 451 458 !On selectionne le bon groupe de champs: 452 459 IF (fdim.EQ.2) THEN 453 460 CALL xios_get_fieldgroup_handle("fields_2D", fieldgroup) 454 461 ELSE 455 462 CALL xios_get_fieldgroup_handle("fields_3D", fieldgroup) … … 515 522 !Sinon on se contente de l'activer: 516 523 CALL xios_set_field_attr(fieldname, enabled=.TRUE.) 524 !NB: This will override an enable=.false. set by a user in the xml file; 525 ! then the only way to not output the field is by changing its 526 ! output level 517 527 ENDIF 518 528 519 529 END SUBROUTINE wxios_add_field_to_file 520 530 521 SUBROUTINE wxios_update_calendar(ito)522 INTEGER, INTENT(IN) :: ito523 CALL xios_update_calendar(ito)524 END SUBROUTINE wxios_update_calendar525 526 SUBROUTINE wxios_write_2D(fieldname, fdata)527 CHARACTER(len=*), INTENT(IN) :: fieldname528 REAL, DIMENSION(:,:), INTENT(IN) :: fdata529 530 CALL xios_send_field(fieldname, fdata)531 END SUBROUTINE wxios_write_2D532 533 SUBROUTINE wxios_write_3D(fieldname, fdata)534 CHARACTER(len=*), INTENT(IN) :: fieldname535 REAL, DIMENSION(:,:,:), INTENT(IN) :: fdata536 537 CALL xios_send_field(fieldname, fdata)538 END SUBROUTINE wxios_write_3D531 ! SUBROUTINE wxios_update_calendar(ito) 532 ! INTEGER, INTENT(IN) :: ito 533 ! CALL xios_update_calendar(ito) 534 ! END SUBROUTINE wxios_update_calendar 535 ! 536 ! SUBROUTINE wxios_write_2D(fieldname, fdata) 537 ! CHARACTER(len=*), INTENT(IN) :: fieldname 538 ! REAL, DIMENSION(:,:), INTENT(IN) :: fdata 539 ! 540 ! CALL xios_send_field(fieldname, fdata) 541 ! END SUBROUTINE wxios_write_2D 542 543 ! SUBROUTINE wxios_write_3D(fieldname, fdata) 544 ! CHARACTER(len=*), INTENT(IN) :: fieldname 545 ! REAL, DIMENSION(:,:,:), INTENT(IN) :: fdata 546 ! 547 ! CALL xios_send_field(fieldname, fdata) 548 ! END SUBROUTINE wxios_write_3D 539 549 540 550 SUBROUTINE wxios_closedef()
Note: See TracChangeset
for help on using the changeset viewer.