Changeset 1227 for LMDZ4/branches/LMDZ4-dev/libf/phylmd/cpl_mod.F90
- Timestamp:
- Aug 10, 2009, 1:45:04 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/cpl_mod.F90
r1152 r1227 39 39 !************************************************************************************* 40 40 ! variable for coupling period 41 INTEGER, SAVE 41 INTEGER, SAVE :: nexca 42 42 !$OMP THREADPRIVATE(nexca) 43 43 … … 95 95 ! 96 96 SUBROUTINE cpl_init(dtime, rlon, rlat) 97 USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, fco2_ocn_day 97 98 98 99 INCLUDE "dimensions.h" … … 183 184 sum_error = sum_error + error 184 185 185 IF (c pl_carbon_cycle) THEN186 IF (carbon_cycle_cpl) THEN 186 187 ALLOCATE(read_co2(iim, jj_nb), stat = error) 187 188 sum_error = sum_error + error 188 189 ALLOCATE(cpl_atm_co2(klon,2), stat = error) 190 sum_error = sum_error + error 191 192 ! Allocate variable in carbon_cycle_mod 193 ALLOCATE(fco2_ocn_day(klon), stat = error) 189 194 sum_error = sum_error + error 190 195 END IF … … 275 280 USE surface_data 276 281 USE phys_state_var_mod, ONLY : rlon, rlat 277 282 USE carbon_cycle_mod, ONLY : carbon_cycle_cpl 283 278 284 INCLUDE "indicesol.h" 279 285 INCLUDE "temps.h" … … 364 370 ENDIF 365 371 366 IF (c pl_carbon_cycle) THEN372 IF (carbon_cycle_cpl) THEN 367 373 !$OMP MASTER 368 374 read_co2(:,:) = tab_read_flds(:,:,idr_oceco2) ! CO2 flux … … 403 409 ! The temperature is transformed into 1D array with valid points from index 1 to knon. 404 410 ! 411 USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, fco2_ocn_day 405 412 INCLUDE "indicesol.h" 406 413 … … 418 425 ! Local variables 419 426 !************************************************************************************* 420 INTEGER :: i 421 REAL, DIMENSION(klon) :: sic_new 427 INTEGER :: i 428 INTEGER, DIMENSION(klon) :: index 429 REAL, DIMENSION(klon) :: sic_new 422 430 423 431 !************************************************************************************* … … 430 438 CALL cpl2gath(read_v0, v0_new, knon, knindex) 431 439 432 IF (cpl_carbon_cycle) THEN 433 WRITE(*,*) 'cpl_carbon_cycle TO BE DONE!!' 434 !! var_co2 will be a intent(out) argument 435 !! CALL cpl2gath(read_co2, var_co2, knon, knindex) 440 !************************************************************************************* 441 ! Transform read_co2 into uncompressed 1D variable fco2_ocn_day added directly in 442 ! the module carbon_cycle_mod 443 ! 444 !************************************************************************************* 445 IF (carbon_cycle_cpl) THEN 446 DO i=1,klon 447 index(i)=i 448 END DO 449 CALL cpl2gath(read_co2, fco2_ocn_day, klon, index) 436 450 END IF 451 437 452 !************************************************************************************* 438 453 ! The fields received from the coupler have to be weighted with the fraction of ocean … … 511 526 ! (it is done in cpl_send_seaice_fields). 512 527 ! 528 USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, co2_send 513 529 INCLUDE "indicesol.h" 514 530 INCLUDE "dimensions.h" … … 531 547 CHARACTER(len = 25) :: modname = 'cpl_send_ocean_fields' 532 548 CHARACTER(len = 80) :: abort_message 533 REAL, DIMENSION(klon) :: atm_co2 ! JG: to be an INTENT(IN) if cpl_carbon_cycle534 549 535 550 !************************************************************************************* … … 556 571 cpl_tauy(1:knon,cpl_index) = 0.0 557 572 cpl_windsp(1:knon,cpl_index) = 0.0 558 IF (c pl_carbon_cycle) cpl_atm_co2(1:knon,cpl_index) = 0.0573 IF (carbon_cycle_cpl) cpl_atm_co2(1:knon,cpl_index) = 0.0 559 574 ENDIF 560 575 … … 587 602 windsp(ig) / FLOAT(nexca) 588 603 589 IF (cpl_carbon_cycle) THEN 590 atm_co2=286. 604 IF (carbon_cycle_cpl) THEN 591 605 cpl_atm_co2(ig,cpl_index) = cpl_atm_co2(ig,cpl_index) + & 592 atm_co2(ig)/ FLOAT(nexca)606 co2_send(knindex(ig))/ FLOAT(nexca) 593 607 END IF 594 608 ENDDO … … 627 641 sum_error = sum_error + error 628 642 629 IF (c pl_carbon_cycle) THEN643 IF (carbon_cycle_cpl) THEN 630 644 ALLOCATE(cpl_atm_co22D(iim,jj_nb), stat=error) 631 645 sum_error = sum_error + error … … 675 689 knon, knindex) 676 690 677 IF (c pl_carbon_cycle) &691 IF (carbon_cycle_cpl) & 678 692 CALL gath2cpl(cpl_atm_co2(:,cpl_index), cpl_atm_co22D(:,:), knon, knindex) 679 693 ENDIF … … 695 709 ! the coupler. 696 710 ! 711 USE carbon_cycle_mod, ONLY : carbon_cycle_cpl 697 712 INCLUDE "indicesol.h" 698 713 INCLUDE "dimensions.h" … … 803 818 sum_error = sum_error + error 804 819 805 IF (c pl_carbon_cycle) THEN820 IF (carbon_cycle_cpl) THEN 806 821 ALLOCATE(cpl_atm_co22D(iim,jj_nb), stat=error) 807 822 sum_error = sum_error + error … … 926 941 ! will be done in cpl_send_seaice_fields. 927 942 ! 943 928 944 INCLUDE "dimensions.h" 929 945 … … 979 995 ! 980 996 USE surface_data 997 USE carbon_cycle_mod, ONLY : carbon_cycle_cpl 981 998 ! Some includes 982 999 !************************************************************************************* … … 1037 1054 IF (version_ocean=='nemo') THEN 1038 1055 tab_flds(:,:,ids_liqrun) = cpl_rriv2D(:,:) + cpl_rcoa2D(:,:) 1039 IF (c pl_carbon_cycle) tab_flds(:,:,ids_atmco2)=cpl_atm_co22D(:,:)1056 IF (carbon_cycle_cpl) tab_flds(:,:,ids_atmco2)=cpl_atm_co22D(:,:) 1040 1057 ELSE IF (version_ocean=='opa8') THEN 1041 1058 tab_flds(:,:,ids_shfoce) = cpl_sols2D(:,:,1) … … 1232 1249 sum_error = sum_error + error 1233 1250 1234 IF (c pl_carbon_cycle) THEN1251 IF (carbon_cycle_cpl) THEN 1235 1252 DEALLOCATE(cpl_atm_co22D, stat=error ) 1236 1253 sum_error = sum_error + error … … 1248 1265 SUBROUTINE cpl2gath(champ_in, champ_out, knon, knindex) 1249 1266 USE mod_phys_lmdz_para 1250 ! Cette routine ecrit un champ 'gathered' sur la grille 2D pour le passer1251 ! au coupleur.1267 ! Cette routine transforme un champs de la grille 2D recu du coupleur sur la grille 1268 ! 'gathered' (la grille physiq comprime). 1252 1269 ! 1253 1270 ! 1254 1271 ! input: 1255 ! champ_in champ sur la grille gathere1272 ! champ_in champ sur la grille 2D 1256 1273 ! knon nombre de points dans le domaine a traiter 1257 1274 ! knindex index des points de la surface a traiter 1258 1275 ! 1259 1276 ! output: 1260 ! champ_out champ sur la grille 2D1277 ! champ_out champ sur la grille 'gatherd' 1261 1278 ! 1262 1279 INCLUDE "dimensions.h"
Note: See TracChangeset
for help on using the changeset viewer.