Ignore:
Timestamp:
Mar 24, 2009, 5:42:19 PM (16 years ago)
Author:
jghattas
Message:

Modification pour couplage conservatif avec NEMO : passage des champs totaux et champs sur la glace au lieu de passage des champs sur l'ocean et champs sur la glace.

Arnaud Caubel

Location:
LMDZ4/branches/LMDZ4-dev/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/cpl_mod.F90

    r1125 r1133  
    278278    USE surface_data
    279279    USE phys_state_var_mod, ONLY : rlon, rlat
    280     USE Write_Field
    281280
    282281    INCLUDE "indicesol.h"
     
    615614       
    616615
    617        CALL gath2cpl(cpl_sols(1,cpl_index), cpl_sols2D(1,1,cpl_index), &
    618             knon, knindex)
    619 
    620        CALL gath2cpl(cpl_nsol(1,cpl_index), cpl_nsol2D(1,1,cpl_index), &
    621             knon, knindex)
    622 
    623        CALL gath2cpl(cpl_rain(1,cpl_index), cpl_rain2D(1,1,cpl_index), &
    624             knon, knindex)
    625 
    626        CALL gath2cpl(cpl_snow(1,cpl_index), cpl_snow2D(1,1,cpl_index), &
    627             knon, knindex)
    628 
    629        CALL gath2cpl(cpl_evap(1,cpl_index), cpl_evap2D(1,1,cpl_index), &
     616       CALL gath2cpl(cpl_sols(:,cpl_index), cpl_sols2D(:,:,cpl_index), &
     617            knon, knindex)
     618
     619       CALL gath2cpl(cpl_nsol(:,cpl_index), cpl_nsol2D(:,:,cpl_index), &
     620            knon, knindex)
     621
     622       CALL gath2cpl(cpl_rain(:,cpl_index), cpl_rain2D(:,:,cpl_index), &
     623            knon, knindex)
     624
     625       CALL gath2cpl(cpl_snow(:,cpl_index), cpl_snow2D(:,:,cpl_index), &
     626            knon, knindex)
     627
     628       CALL gath2cpl(cpl_evap(:,cpl_index), cpl_evap2D(:,:,cpl_index), &
    630629            knon, knindex)
    631630
    632631! cpl_tsol2D(:,:,:) not used!
    633        CALL gath2cpl(cpl_tsol(1,cpl_index), cpl_tsol2D(1,1, cpl_index), &
     632       CALL gath2cpl(cpl_tsol(:,cpl_index), cpl_tsol2D(:,:, cpl_index), &
    634633            knon, knindex)
    635634
    636635! cpl_fder2D(:,:,1) not used, only cpl_fder(:,:,2)!
    637        CALL gath2cpl(cpl_fder(1,cpl_index), cpl_fder2D(1,1,cpl_index), &
     636       CALL gath2cpl(cpl_fder(:,cpl_index), cpl_fder2D(:,:,cpl_index), &
    638637            knon, knindex)
    639638
    640639! cpl_albe2D(:,:,:) not used!
    641        CALL gath2cpl(cpl_albe(1,cpl_index), cpl_albe2D(1,1,cpl_index), &
    642             knon, knindex)
    643 
    644        CALL gath2cpl(cpl_taux(1,cpl_index), cpl_taux2D(1,1,cpl_index), &
    645             knon, knindex)
    646 
    647        CALL gath2cpl(cpl_tauy(1,cpl_index), cpl_tauy2D(1,1,cpl_index), &
    648             knon, knindex)
    649 
    650        CALL gath2cpl(cpl_windsp(1,cpl_index), cpl_windsp2D(1,1), &
     640       CALL gath2cpl(cpl_albe(:,cpl_index), cpl_albe2D(:,:,cpl_index), &
     641            knon, knindex)
     642
     643       CALL gath2cpl(cpl_taux(:,cpl_index), cpl_taux2D(:,:,cpl_index), &
     644            knon, knindex)
     645
     646       CALL gath2cpl(cpl_tauy(:,cpl_index), cpl_tauy2D(:,:,cpl_index), &
     647            knon, knindex)
     648
     649       CALL gath2cpl(cpl_windsp(:,cpl_index), cpl_windsp2D(:,:), &
    651650            knon, knindex)
    652651
     
    693692    CHARACTER(len = 25)                     :: modname = 'cpl_send_seaice_fields'
    694693    CHARACTER(len = 80)                     :: abort_message
    695 
     694    REAL, DIMENSION(klon)                   :: cpl_fder_tmp
    696695
    697696!*************************************************************************************
     
    783782       ENDIF
    784783
    785        CALL gath2cpl(cpl_sols(1,cpl_index), cpl_sols2D(1,1,cpl_index), &
    786             knon, knindex)
    787 
    788        CALL gath2cpl(cpl_nsol(1,cpl_index), cpl_nsol2D(1,1,cpl_index), &
    789             knon, knindex)
    790 
    791        CALL gath2cpl(cpl_rain(1,cpl_index), cpl_rain2D(1,1,cpl_index), &
    792             knon, knindex)
    793 
    794        CALL gath2cpl(cpl_snow(1,cpl_index), cpl_snow2D(1,1,cpl_index), &
    795             knon, knindex)
    796 
    797        CALL gath2cpl(cpl_evap(1,cpl_index), cpl_evap2D(1,1,cpl_index), &
     784       CALL gath2cpl(cpl_sols(:,cpl_index), cpl_sols2D(:,:,cpl_index), &
     785            knon, knindex)
     786
     787       CALL gath2cpl(cpl_nsol(:,cpl_index), cpl_nsol2D(:,:,cpl_index), &
     788            knon, knindex)
     789
     790       CALL gath2cpl(cpl_rain(:,cpl_index), cpl_rain2D(:,:,cpl_index), &
     791            knon, knindex)
     792
     793       CALL gath2cpl(cpl_snow(:,cpl_index), cpl_snow2D(:,:,cpl_index), &
     794            knon, knindex)
     795
     796       CALL gath2cpl(cpl_evap(:,cpl_index), cpl_evap2D(:,:,cpl_index), &
    798797            knon, knindex)
    799798
    800799! cpl_tsol2D(:,:,:) not used!
    801        CALL gath2cpl(cpl_tsol(1,cpl_index), cpl_tsol2D(1,1, cpl_index), &
    802             knon, knindex)
    803 
    804        CALL gath2cpl(cpl_fder(1,cpl_index), cpl_fder2D(1,1,cpl_index), &
    805             knon, knindex)
     800       CALL gath2cpl(cpl_tsol(:,cpl_index), cpl_tsol2D(:,:, cpl_index), &
     801            knon, knindex)
     802
     803       ! Set default value and decompress before gath2cpl
     804       cpl_fder_tmp(:) = -20.
     805       DO ig = 1, knon
     806          cpl_fder_tmp(knindex(ig))=cpl_fder(ig,cpl_index)
     807       END DO
     808       CALL gath2cpl(cpl_fder_tmp(:), cpl_fder2D(:,:,cpl_index), &
     809            klon, unity)
    806810
    807811! cpl_albe2D(:,:,:) not used!
    808        CALL gath2cpl(cpl_albe(1,cpl_index), cpl_albe2D(1,1,cpl_index), &
    809             knon, knindex)
    810 
    811        CALL gath2cpl(cpl_taux(1,cpl_index), cpl_taux2D(1,1,cpl_index), &
    812             knon, knindex)
    813 
    814        CALL gath2cpl(cpl_tauy(1,cpl_index), cpl_tauy2D(1,1,cpl_index), &
     812       CALL gath2cpl(cpl_albe(:,cpl_index), cpl_albe2D(:,:,cpl_index), &
     813            knon, knindex)
     814
     815       CALL gath2cpl(cpl_taux(:,cpl_index), cpl_taux2D(:,:,cpl_index), &
     816            knon, knindex)
     817
     818       CALL gath2cpl(cpl_tauy(:,cpl_index), cpl_tauy2D(:,:,cpl_index), &
    815819            knon, knindex)
    816820
     
    9961000    tab_flds(:,:,7)  = cpl_windsp2D(:,:)
    9971001    tab_flds(:,:,8)  = cpl_sols2D(:,:,2)
    998     tab_flds(:,:,9)  = cpl_sols2D(:,:,1)
    9991002    tab_flds(:,:,10) = cpl_nsol2D(:,:,2)
    1000     tab_flds(:,:,11) = cpl_nsol2D(:,:,1)
    10011003    tab_flds(:,:,12) = cpl_fder2D(:,:,2)
    10021004   
     
    10041006       tab_flds(:,:,18) = cpl_rriv2D(:,:) + cpl_rcoa2D(:,:)
    10051007    ELSE IF (version_ocean=='opa8') THEN
     1008       tab_flds(:,:,9)  = cpl_sols2D(:,:,1)
     1009       tab_flds(:,:,11) = cpl_nsol2D(:,:,1)
    10061010       tab_flds(:,:,13) = cpl_evap2D(:,:,2)
    10071011       tab_flds(:,:,14) = cpl_evap2D(:,:,1)
     
    10741078
    10751079       IF (version_ocean=='nemo') THEN
    1076           tab_flds(:,:,13) = cpl_evap2D(:,:,2) - (cpl_rain2D(:,:,2) + cpl_snow2D(:,:,2))
    1077 
     1080          tab_flds(:,:,9)  = 0.0
     1081          tab_flds(:,:,11) = 0.0
     1082          tab_flds(:,:,13) = 0.0
    10781083          tab_flds(:,:,14) = 0.0
     1084          tab_flds(:,:,15) = 0.0
     1085 
    10791086          tmp_taux(:,:)    = 0.0
    10801087          tmp_tauy(:,:)    = 0.0
     
    10851092             tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
    10861093                  cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
     1094             
     1095             tab_flds(:,:,9) = cpl_sols2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
     1096                  cpl_sols2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
     1097             tab_flds(:,:,11) = cpl_nsol2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
     1098                  cpl_nsol2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
     1099             tab_flds(:,:,13) = cpl_rain2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
     1100                  cpl_rain2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
    10871101             tab_flds(:,:,14) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
    10881102                  cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
    1089              
    1090           ENDWHERE
    1091 
    1092 !          WHERE (pctsrf2D(:,:,is_sic) == 0)
    1093 !             cpl_evap2D(:,:,2) = 0.0
    1094 !          END WHERE
    1095          
    1096           tab_flds(:,:,14) = cpl_evap2D(:,:,2) - tab_flds(:,:,14)
    1097           tab_flds(:,:,15) = cpl_evap2D(:,:,1) - (cpl_rain2D(:,:,1) + cpl_snow2D(:,:,1))
     1103             tab_flds(:,:,15) = cpl_evap2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
     1104                  cpl_evap2D(:,:,2)  * pctsrf2D(:,:,is_sic) / deno(:,:)
     1105         ENDWHERE
     1106
    10981107          tab_flds(:,:,16) = cpl_evap2D(:,:,2)
    10991108         
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/oasis.F90

    r1106 r1133  
    159159    cl_writ(7)='COWINDSP'
    160160    cl_writ(8)='COSHFICE'
    161     cl_writ(9)='COSHFOCE'
    162161    cl_writ(10)='CONSFICE'
    163     cl_writ(11)='CONSFOCE'
    164162    cl_writ(12)='CODFLXDT'
    165163
    166164    IF (version_ocean=='nemo') THEN
    167       cl_writ(13)='COEMPSIC'
    168       cl_writ(14)='CONESOPR'
    169       cl_writ(15)='COEMPOCE'
     165      cl_writ(9)='COQSRMIX'
     166      cl_writ(11)='COQNSMIX'
     167      cl_writ(13)='COTOTRAI'
     168      cl_writ(14)='COTOTSNO'
     169      cl_writ(15)='COTOTEVA'
    170170      cl_writ(16)='COICEVAP'
    171171      cl_writ(17)='COCALVIN'
    172172      cl_writ(18)='COLIQRUN'
    173173    ELSE IF (version_ocean=='opa8') THEN
     174       cl_writ(9)='COSHFOCE'
     175       cl_writ(11)='CONSFOCE'
    174176       cl_writ(13)='COTFSICE'
    175177       cl_writ(14)='COTFSOCE'
Note: See TracChangeset for help on using the changeset viewer.