New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 2201 – NEMO

Changeset 2201


Ignore:
Timestamp:
2010-10-11T15:13:35+02:00 (14 years ago)
Author:
acc
Message:

NEMO branch DEV_r1924_nocs_latphys. Merge in trunk chaanges from r1924 to r2200

Location:
branches/DEV_r1924_nocs_latphys
Files:
68 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/DEV_r1924_nocs_latphys/CONFIG/GYRE/scripts/BB_make

    r1791 r2201  
    77#          Check your compilers option in consequence when using real F95 compilers 
    88 
     9F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 
     10L_X = $(L_O) 
    911#-Q- platine # Compiler options NEMO (CCRT Itanium Bull)  
    1012#-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC)  
     
    101103 
    102104#check key compatibility 
    103 keycompat=$(if $(and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
     105keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
    104106 
    105107KEY_LIST = \ 
     
    430432 
    431433# Agrif library and conv 
    432 libagrif :  $(call keycompat,key_iomput,key_agrif) 
     434libagrif : 
    433435ifeq ($(AGRIF),use) 
    434436   @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) 
     
    11951197   diaar5.F90 
    11961198$(MODEL_LIB)(diadimg.o) :  \ 
    1197    $(MODEL_LIB)(lib_print.o) \ 
    1198    $(MODEL_LIB)(par_kind.o) \ 
    1199    $(MODEL_LIB)(par_oce.o) \ 
    1200    lib_print.f90 \ 
    1201    par_kind.F90 \ 
    1202    par_oce.F90 \ 
    1203    $(MODEL_LIB)(dom_oce.o) \ 
    1204    $(MODEL_LIB)(in_out_manager.o) \ 
    1205    $(MODEL_LIB)(oce.o) \ 
     1199   $(MODEL_LIB)(dom_oce.o) \ 
     1200   $(MODEL_LIB)(in_out_manager.o) \ 
     1201   $(MODEL_LIB)(iom.o) \ 
     1202   $(MODEL_LIB)(lib_print.o) \ 
     1203   $(MODEL_LIB)(par_kind.o) \ 
     1204   $(MODEL_LIB)(par_oce.o) \ 
     1205   $(MODEL_LIB)(phycst.o) \ 
     1206   $(MODEL_LIB)(prtctl.o) \ 
     1207   $(MODEL_LIB)(restart.o) \ 
     1208   dom_oce.F90 \ 
     1209   in_out_manager.F90 \ 
     1210   iom.F90 \ 
     1211   lib_print.f90 \ 
     1212   par_kind.F90 \ 
     1213   par_oce.F90 \ 
     1214   phycst.F90 \ 
     1215   prtctl.F90 \ 
     1216   restart.F90 \ 
     1217   $(MODEL_LIB)(daymod.o) \ 
     1218   $(MODEL_LIB)(dom_oce.o) \ 
     1219   $(MODEL_LIB)(in_out_manager.o) \ 
     1220   $(MODEL_LIB)(oce.o) \ 
     1221   daymod.F90 \ 
    12061222   dom_oce.F90 \ 
    12071223   in_out_manager.F90 \ 
     
    13581374   phycst.F90 \ 
    13591375   $(IOIPSL_LIB) \ 
    1360    KEY_CPP \ 
    13611376   dianam.F90 
    13621377$(MODEL_LIB)(diaptr.o) :   \ 
     
    14191434   diaptr.F90 
    14201435$(MODEL_LIB)(diawri.o) :   \ 
     1436   $(MODEL_LIB)(daymod.o) \ 
    14211437   $(MODEL_LIB)(dianam.o) \ 
    14221438   $(MODEL_LIB)(dom_ice_2.o) \ 
     
    14461462   $(MODEL_LIB)(sbcrnf.o) \ 
    14471463   $(MODEL_LIB)(zdf_oce.o) \ 
     1464   daymod.F90 \ 
    14481465   dianam.F90 \ 
    14491466   dom_ice_2.F90 \ 
     
    45944611   in_out_manager.F90 \ 
    45954612   lbcnfd.F90 \ 
    4596    $(AGRIF_LIB) \ 
    45974613   KEY_CPP \ 
    45984614   lib_mpp.F90 
     
    53095325   $(MODEL_LIB)(limistate_2.o) \ 
    53105326   $(MODEL_LIB)(phycst.o) \ 
     5327   $(MODEL_LIB)(sbc_oce.o) \ 
    53115328   dom_ice_2.F90 \ 
    53125329   dom_oce.F90 \ 
     
    53195336   limistate_2.F90 \ 
    53205337   phycst.F90 \ 
     5338   sbc_oce.F90 \ 
    53215339   vectopt_loop_substitute.h90 \ 
    53225340   KEY_CPP \ 
     
    79968014   $(MODEL_LIB)(lib_print.o) \ 
    79978015   $(MODEL_LIB)(limwri_2.o) \ 
     8016   $(MODEL_LIB)(obc_oce.o) \ 
    79988017   $(MODEL_LIB)(obctra.o) \ 
    79998018   $(MODEL_LIB)(oce.o) \ 
     
    80678086   lib_print.f90 \ 
    80688087   limwri_2.F90 \ 
     8088   obc_oce.F90 \ 
    80698089   obctra.F90 \ 
    80708090   oce.F90 \ 
     
    96209640   $(MODEL_LIB)(lib_print.o) \ 
    96219641   $(MODEL_LIB)(obc_oce.o) \ 
     9642   $(MODEL_LIB)(obc_par.o) \ 
    96229643   $(MODEL_LIB)(oce.o) \ 
    96239644   $(MODEL_LIB)(par_kind.o) \ 
     
    96449665   lib_print.f90 \ 
    96459666   obc_oce.F90 \ 
     9667   obc_par.F90 \ 
    96469668   oce.F90 \ 
    96479669   par_kind.F90 \ 
     
    96689690   $(MODEL_LIB)(in_out_manager.o) \ 
    96699691   $(MODEL_LIB)(lbclnk.o) \ 
     9692   $(MODEL_LIB)(obc_oce.o) \ 
    96709693   $(MODEL_LIB)(obctra.o) \ 
    96719694   $(MODEL_LIB)(oce.o) \ 
     
    96849707   in_out_manager.F90 \ 
    96859708   lbclnk.F90 \ 
     9709   obc_oce.F90 \ 
    96869710   obctra.F90 \ 
    96879711   oce.F90 \ 
     
    1017210196$(MODEL_LIB)(trdmld.o) :   \ 
    1017310197   $(MODEL_LIB)(c1d.o) \ 
     10198   $(MODEL_LIB)(daymod.o) \ 
    1017410199   $(MODEL_LIB)(dom_oce.o) \ 
    1017510200   $(MODEL_LIB)(eosbn2.o) \ 
     
    1019710222   $(MODEL_LIB)(zpshde.o) \ 
    1019810223   c1d.F90 \ 
     10224   daymod.F90 \ 
    1019910225   dom_oce.F90 \ 
    1020010226   eosbn2.F90 \ 
  • branches/DEV_r1924_nocs_latphys/CONFIG/GYRE/scripts/BB_make.ldef

    r1791 r2201  
    3434#- 
    3535#- Prefix for preprocessing --- 
     36prefix = -D 
    3637#-Q- sx8mercure prefix = -D 
    3738#-Q- sx9mercure prefix = -D 
  • branches/DEV_r1924_nocs_latphys/CONFIG/GYRE_LOBSTER/scripts/BB_make

    r1791 r2201  
    77#          Check your compilers option in consequence when using real F95 compilers 
    88 
     9F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 
     10L_X = $(L_O) 
    911#-Q- platine # Compiler options NEMO (CCRT Itanium Bull)  
    1012#-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC)  
     
    101103 
    102104#check key compatibility 
    103 keycompat=$(if $(and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
     105keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
    104106 
    105107KEY_LIST = \ 
     
    477479      $(MODEL_LIB)(trcrad.o)\ 
    478480      $(MODEL_LIB)(trcrst.o)\ 
     481      $(MODEL_LIB)(trcrst_c14b.o)\ 
     482      $(MODEL_LIB)(trcrst_cfc.o)\ 
     483      $(MODEL_LIB)(trcrst_lobster.o)\ 
     484      $(MODEL_LIB)(trcrst_my_trc.o)\ 
     485      $(MODEL_LIB)(trcrst_pisces.o)\ 
    479486      $(MODEL_LIB)(trcsbc.o)\ 
    480487      $(MODEL_LIB)(trcsed.o)\ 
     
    559566 
    560567# Agrif library and conv 
    561 libagrif :  $(call keycompat,key_iomput,key_agrif) 
     568libagrif : 
    562569ifeq ($(AGRIF),use) 
    563570   @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) 
     
    13301337   diaar5.F90 
    13311338$(MODEL_LIB)(diadimg.o) :  \ 
    1332    $(MODEL_LIB)(lib_print.o) \ 
    1333    $(MODEL_LIB)(par_kind.o) \ 
    1334    $(MODEL_LIB)(par_oce.o) \ 
    1335    lib_print.f90 \ 
    1336    par_kind.F90 \ 
    1337    par_oce.F90 \ 
    1338    $(MODEL_LIB)(dom_oce.o) \ 
    1339    $(MODEL_LIB)(in_out_manager.o) \ 
    1340    $(MODEL_LIB)(oce.o) \ 
     1339   $(MODEL_LIB)(dom_oce.o) \ 
     1340   $(MODEL_LIB)(in_out_manager.o) \ 
     1341   $(MODEL_LIB)(iom.o) \ 
     1342   $(MODEL_LIB)(lib_print.o) \ 
     1343   $(MODEL_LIB)(par_kind.o) \ 
     1344   $(MODEL_LIB)(par_oce.o) \ 
     1345   $(MODEL_LIB)(phycst.o) \ 
     1346   $(MODEL_LIB)(prtctl.o) \ 
     1347   $(MODEL_LIB)(restart.o) \ 
     1348   dom_oce.F90 \ 
     1349   in_out_manager.F90 \ 
     1350   iom.F90 \ 
     1351   lib_print.f90 \ 
     1352   par_kind.F90 \ 
     1353   par_oce.F90 \ 
     1354   phycst.F90 \ 
     1355   prtctl.F90 \ 
     1356   restart.F90 \ 
     1357   $(MODEL_LIB)(daymod.o) \ 
     1358   $(MODEL_LIB)(dom_oce.o) \ 
     1359   $(MODEL_LIB)(in_out_manager.o) \ 
     1360   $(MODEL_LIB)(oce.o) \ 
     1361   daymod.F90 \ 
    13411362   dom_oce.F90 \ 
    13421363   in_out_manager.F90 \ 
     
    14931514   phycst.F90 \ 
    14941515   $(IOIPSL_LIB) \ 
    1495    KEY_CPP \ 
    14961516   dianam.F90 
    14971517$(MODEL_LIB)(diaptr.o) :   \ 
     
    15541574   diaptr.F90 
    15551575$(MODEL_LIB)(diawri.o) :   \ 
     1576   $(MODEL_LIB)(daymod.o) \ 
    15561577   $(MODEL_LIB)(dianam.o) \ 
    15571578   $(MODEL_LIB)(dom_ice_2.o) \ 
     
    15811602   $(MODEL_LIB)(sbcrnf.o) \ 
    15821603   $(MODEL_LIB)(zdf_oce.o) \ 
     1604   daymod.F90 \ 
    15831605   dianam.F90 \ 
    15841606   dom_ice_2.F90 \ 
     
    47294751   in_out_manager.F90 \ 
    47304752   lbcnfd.F90 \ 
    4731    $(AGRIF_LIB) \ 
    47324753   KEY_CPP \ 
    47334754   lib_mpp.F90 
     
    54445465   $(MODEL_LIB)(limistate_2.o) \ 
    54455466   $(MODEL_LIB)(phycst.o) \ 
     5467   $(MODEL_LIB)(sbc_oce.o) \ 
    54465468   dom_ice_2.F90 \ 
    54475469   dom_oce.F90 \ 
     
    54545476   limistate_2.F90 \ 
    54555477   phycst.F90 \ 
     5478   sbc_oce.F90 \ 
    54565479   vectopt_loop_substitute.h90 \ 
    54575480   KEY_CPP \ 
     
    65286551   trc.F90 \ 
    65296552   domzgr_substitute.h90 \ 
     6553   ldfeiv_substitute.h90 \ 
     6554   ldftra_substitute.h90 \ 
     6555   top_substitute.h90 \ 
     6556   vectopt_loop_substitute.h90 \ 
    65306557   KEY_CPP \ 
    65316558   p4zbio.F90 
     
    65706597   trc.F90 \ 
    65716598   domzgr_substitute.h90 \ 
     6599   ldfeiv_substitute.h90 \ 
     6600   ldftra_substitute.h90 \ 
     6601   top_substitute.h90 \ 
     6602   vectopt_loop_substitute.h90 \ 
    65726603   KEY_CPP \ 
    65736604   p4zche.F90 
     
    66446675   trc.F90 \ 
    66456676   domzgr_substitute.h90 \ 
     6677   ldfeiv_substitute.h90 \ 
     6678   ldftra_substitute.h90 \ 
     6679   top_substitute.h90 \ 
     6680   vectopt_loop_substitute.h90 \ 
    66466681   KEY_CPP \ 
    66476682   p4zflx.F90 
     
    67276762   trc.F90 \ 
    67286763   domzgr_substitute.h90 \ 
     6764   ldfeiv_substitute.h90 \ 
     6765   ldftra_substitute.h90 \ 
     6766   top_substitute.h90 \ 
     6767   vectopt_loop_substitute.h90 \ 
    67296768   KEY_CPP \ 
    67306769   p4zlim.F90 
     
    68626901   trc.F90 \ 
    68636902   domzgr_substitute.h90 \ 
     6903   ldfeiv_substitute.h90 \ 
     6904   ldftra_substitute.h90 \ 
     6905   top_substitute.h90 \ 
     6906   vectopt_loop_substitute.h90 \ 
    68646907   KEY_CPP \ 
    68656908   p4zmeso.F90 
     
    69366979   trc.F90 \ 
    69376980   domzgr_substitute.h90 \ 
     6981   ldfeiv_substitute.h90 \ 
     6982   ldftra_substitute.h90 \ 
     6983   top_substitute.h90 \ 
     6984   vectopt_loop_substitute.h90 \ 
    69386985   KEY_CPP \ 
    69396986   p4zmicro.F90 
     
    69927039   trc.F90 \ 
    69937040   domzgr_substitute.h90 \ 
     7041   ldfeiv_substitute.h90 \ 
     7042   ldftra_substitute.h90 \ 
     7043   top_substitute.h90 \ 
     7044   vectopt_loop_substitute.h90 \ 
    69947045   KEY_CPP \ 
    69957046   p4zmort.F90 
     
    70527103   trc_oce.F90 \ 
    70537104   domzgr_substitute.h90 \ 
     7105   ldfeiv_substitute.h90 \ 
     7106   ldftra_substitute.h90 \ 
     7107   top_substitute.h90 \ 
     7108   vectopt_loop_substitute.h90 \ 
    70547109   KEY_CPP \ 
    70557110   p4zopt.F90 
     
    71327187   trc.F90 \ 
    71337188   domzgr_substitute.h90 \ 
     7189   ldfeiv_substitute.h90 \ 
     7190   ldftra_substitute.h90 \ 
     7191   top_substitute.h90 \ 
     7192   vectopt_loop_substitute.h90 \ 
    71347193   KEY_CPP \ 
    71357194   p4zprod.F90 
     
    72067265   trc.F90 \ 
    72077266   domzgr_substitute.h90 \ 
     7267   ldfeiv_substitute.h90 \ 
     7268   ldftra_substitute.h90 \ 
     7269   top_substitute.h90 \ 
     7270   vectopt_loop_substitute.h90 \ 
    72087271   KEY_CPP \ 
    72097272   p4zrem.F90 
     
    73827445   trc.F90 \ 
    73837446   domzgr_substitute.h90 \ 
     7447   ldfeiv_substitute.h90 \ 
     7448   ldftra_substitute.h90 \ 
     7449   top_substitute.h90 \ 
     7450   vectopt_loop_substitute.h90 \ 
    73847451   KEY_CPP \ 
    73857452   p4zsink.F90 
     
    99229989   $(MODEL_LIB)(lib_print.o) \ 
    99239990   $(MODEL_LIB)(limwri_2.o) \ 
     9991   $(MODEL_LIB)(obc_oce.o) \ 
    99249992   $(MODEL_LIB)(obctra.o) \ 
    99259993   $(MODEL_LIB)(oce.o) \ 
     
    1000310071   lib_print.f90 \ 
    1000410072   limwri_2.F90 \ 
     10073   obc_oce.F90 \ 
    1000510074   obctra.F90 \ 
    1000610075   oce.F90 \ 
     
    1156811637   $(MODEL_LIB)(lib_print.o) \ 
    1156911638   $(MODEL_LIB)(obc_oce.o) \ 
     11639   $(MODEL_LIB)(obc_par.o) \ 
    1157011640   $(MODEL_LIB)(oce.o) \ 
    1157111641   $(MODEL_LIB)(par_kind.o) \ 
     
    1159211662   lib_print.f90 \ 
    1159311663   obc_oce.F90 \ 
     11664   obc_par.F90 \ 
    1159411665   oce.F90 \ 
    1159511666   par_kind.F90 \ 
     
    1161611687   $(MODEL_LIB)(in_out_manager.o) \ 
    1161711688   $(MODEL_LIB)(lbclnk.o) \ 
     11689   $(MODEL_LIB)(obc_oce.o) \ 
    1161811690   $(MODEL_LIB)(obctra.o) \ 
    1161911691   $(MODEL_LIB)(oce.o) \ 
     
    1163211704   in_out_manager.F90 \ 
    1163311705   lbclnk.F90 \ 
     11706   obc_oce.F90 \ 
    1163411707   obctra.F90 \ 
    1163511708   oce.F90 \ 
     
    1302513098   $(MODEL_LIB)(lib_print.o) \ 
    1302613099   $(MODEL_LIB)(oce.o) \ 
    13027    $(MODEL_LIB)(par_kind.o) \ 
    13028    $(MODEL_LIB)(par_oce.o) \ 
     13100   $(MODEL_LIB)(par_c14b.o) \ 
     13101   $(MODEL_LIB)(par_cfc.o) \ 
     13102   $(MODEL_LIB)(par_kind.o) \ 
     13103   $(MODEL_LIB)(par_lobster.o) \ 
     13104   $(MODEL_LIB)(par_my_trc.o) \ 
     13105   $(MODEL_LIB)(par_oce.o) \ 
     13106   $(MODEL_LIB)(par_pisces.o) \ 
    1302913107   $(MODEL_LIB)(par_trc.o) \ 
    1303013108   $(MODEL_LIB)(phycst.o) \ 
     
    1304513123   lib_print.f90 \ 
    1304613124   oce.F90 \ 
    13047    par_kind.F90 \ 
    13048    par_oce.F90 \ 
     13125   par_c14b.F90 \ 
     13126   par_cfc.F90 \ 
     13127   par_kind.F90 \ 
     13128   par_lobster.F90 \ 
     13129   par_my_trc.F90 \ 
     13130   par_oce.F90 \ 
     13131   par_pisces.F90 \ 
    1304913132   par_trc.F90 \ 
    1305013133   phycst.F90 \ 
     
    1306213145   $(MODEL_LIB)(lib_mpp.o) \ 
    1306313146   $(MODEL_LIB)(oce_trc.o) \ 
     13147   $(MODEL_LIB)(par_trc.o) \ 
    1306413148   $(MODEL_LIB)(trc.o) \ 
    1306513149   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     
    1307013154   lib_mpp.F90 \ 
    1307113155   oce_trc.F90 \ 
     13156   par_trc.F90 \ 
    1307213157   trc.F90 \ 
    1307313158   trdmld_trc_oce.F90 \ 
     
    1334513430   trcexp.F90 
    1334613431$(MODEL_LIB)(trcini.o) :   \ 
     13432   $(MODEL_LIB)(daymod.o) \ 
    1334713433   $(MODEL_LIB)(dom_oce.o) \ 
    1334813434   $(MODEL_LIB)(in_out_manager.o) \ 
     
    1338013466   $(MODEL_LIB)(trclsm_my_trc.o) \ 
    1338113467   $(MODEL_LIB)(trclsm_pisces.o) \ 
     13468   $(MODEL_LIB)(trcrst_c14b.o) \ 
     13469   $(MODEL_LIB)(trcrst_cfc.o) \ 
     13470   $(MODEL_LIB)(trcrst_lobster.o) \ 
     13471   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     13472   $(MODEL_LIB)(trcrst_pisces.o) \ 
    1338213473   $(MODEL_LIB)(trcsms_c14b.o) \ 
    1338313474   $(MODEL_LIB)(trcsms_cfc.o) \ 
    13384    $(MODEL_LIB)(trcsms_my_trc.o) \ 
    1338513475   $(MODEL_LIB)(trctrp_ctl.o) \ 
    1338613476   $(MODEL_LIB)(trctrp_lec.o) \ 
     
    1339013480   $(MODEL_LIB)(zdfddm.o) \ 
    1339113481   $(MODEL_LIB)(zdfmxl.o) \ 
     13482   daymod.F90 \ 
    1339213483   dom_oce.F90 \ 
    1339313484   in_out_manager.F90 \ 
     
    1342513516   trclsm_my_trc.F90 \ 
    1342613517   trclsm_pisces.F90 \ 
     13518   trcrst_c14b.F90 \ 
     13519   trcrst_cfc.F90 \ 
     13520   trcrst_lobster.F90 \ 
     13521   trcrst_my_trc.F90 \ 
     13522   trcrst_pisces.F90 \ 
    1342713523   trcsms_c14b.F90 \ 
    1342813524   trcsms_cfc.F90 \ 
    13429    trcsms_my_trc.F90 \ 
    1343013525   trctrp_ctl.F90 \ 
    1343113526   trctrp_lec.F90 \ 
     
    1467814773   trc.F90 \ 
    1467914774   domzgr_substitute.h90 \ 
     14775   ldfeiv_substitute.h90 \ 
     14776   ldftra_substitute.h90 \ 
     14777   top_substitute.h90 \ 
     14778   vectopt_loop_substitute.h90 \ 
    1468014779   KEY_CPP \ 
    1468114780   trcopt.F90 
     
    1477614875   $(MODEL_LIB)(par_trc.o) \ 
    1477714876   $(MODEL_LIB)(phycst.o) \ 
     14877   $(MODEL_LIB)(prtctl.o) \ 
     14878   $(MODEL_LIB)(restart.o) \ 
     14879   $(MODEL_LIB)(sbc_oce.o) \ 
     14880   $(MODEL_LIB)(sbcrnf.o) \ 
     14881   $(MODEL_LIB)(sms_lobster.o) \ 
     14882   $(MODEL_LIB)(sms_pisces.o) \ 
     14883   $(MODEL_LIB)(trabbl.o) \ 
     14884   $(MODEL_LIB)(traqsr.o) \ 
     14885   $(MODEL_LIB)(trc.o) \ 
     14886   $(MODEL_LIB)(trcdta.o) \ 
     14887   $(MODEL_LIB)(trcsms_c14b.o) \ 
     14888   $(MODEL_LIB)(trcsms_cfc.o) \ 
     14889   $(MODEL_LIB)(trcsms_lobster.o) \ 
     14890   $(MODEL_LIB)(trcsms_pisces.o) \ 
     14891   $(MODEL_LIB)(trp_trc.o) \ 
     14892   $(MODEL_LIB)(zdf_oce.o) \ 
     14893   $(MODEL_LIB)(zdfddm.o) \ 
     14894   $(MODEL_LIB)(zdfmxl.o) \ 
     14895   dianam.F90 \ 
     14896   dom_oce.F90 \ 
     14897   domngb.F90 \ 
     14898   in_out_manager.F90 \ 
     14899   iom.F90 \ 
     14900   iom_def.F90 \ 
     14901   iom_ioipsl.F90 \ 
     14902   iom_nf90.F90 \ 
     14903   iom_rstdimg.F90 \ 
     14904   lbclnk.F90 \ 
     14905   lbcnfd.F90 \ 
     14906   ldfslp.F90 \ 
     14907   ldftra_oce.F90 \ 
     14908   lib_mpp.F90 \ 
     14909   oce.F90 \ 
     14910   oce_trc.F90 \ 
     14911   par_oce.F90 \ 
     14912   par_trc.F90 \ 
     14913   phycst.F90 \ 
     14914   prtctl.F90 \ 
     14915   restart.F90 \ 
     14916   sbc_oce.F90 \ 
     14917   sbcrnf.F90 \ 
     14918   sms_lobster.F90 \ 
     14919   sms_pisces.F90 \ 
     14920   trabbl.F90 \ 
     14921   traqsr.F90 \ 
     14922   trc.F90 \ 
     14923   trcdta.F90 \ 
     14924   trcsms_c14b.F90 \ 
     14925   trcsms_cfc.F90 \ 
     14926   trcsms_lobster.F90 \ 
     14927   trcsms_pisces.F90 \ 
     14928   trp_trc.F90 \ 
     14929   zdf_oce.F90 \ 
     14930   zdfddm.F90 \ 
     14931   zdfmxl.F90 \ 
     14932   $(MODEL_LIB)(daymod.o) \ 
     14933   $(MODEL_LIB)(iom.o) \ 
     14934   $(MODEL_LIB)(lib_mpp.o) \ 
     14935   $(MODEL_LIB)(oce_trc.o) \ 
     14936   $(MODEL_LIB)(trc.o) \ 
     14937   $(MODEL_LIB)(trcrst_c14b.o) \ 
     14938   $(MODEL_LIB)(trcrst_cfc.o) \ 
     14939   $(MODEL_LIB)(trcrst_lobster.o) \ 
     14940   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     14941   $(MODEL_LIB)(trcrst_pisces.o) \ 
     14942   $(MODEL_LIB)(trctrp_lec.o) \ 
     14943   daymod.F90 \ 
     14944   iom.F90 \ 
     14945   lib_mpp.F90 \ 
     14946   oce_trc.F90 \ 
     14947   trc.F90 \ 
     14948   trcrst_c14b.F90 \ 
     14949   trcrst_cfc.F90 \ 
     14950   trcrst_lobster.F90 \ 
     14951   trcrst_my_trc.F90 \ 
     14952   trcrst_pisces.F90 \ 
     14953   trctrp_lec.F90 \ 
     14954   domzgr_substitute.h90 \ 
     14955   ldfeiv_substitute.h90 \ 
     14956   ldftra_substitute.h90 \ 
     14957   top_substitute.h90 \ 
     14958   vectopt_loop_substitute.h90 \ 
     14959   KEY_CPP \ 
     14960   trcrst.F90 
     14961$(MODEL_LIB)(trcrst_c14b.o) : \ 
     14962   $(MODEL_LIB)(dianam.o) \ 
     14963   $(MODEL_LIB)(dom_oce.o) \ 
     14964   $(MODEL_LIB)(domngb.o) \ 
     14965   $(MODEL_LIB)(in_out_manager.o) \ 
     14966   $(MODEL_LIB)(iom.o) \ 
     14967   $(MODEL_LIB)(iom_def.o) \ 
     14968   $(MODEL_LIB)(iom_ioipsl.o) \ 
     14969   $(MODEL_LIB)(iom_nf90.o) \ 
     14970   $(MODEL_LIB)(iom_rstdimg.o) \ 
     14971   $(MODEL_LIB)(lbclnk.o) \ 
     14972   $(MODEL_LIB)(ldfslp.o) \ 
     14973   $(MODEL_LIB)(ldftra_oce.o) \ 
     14974   $(MODEL_LIB)(lib_mpp.o) \ 
     14975   $(MODEL_LIB)(lib_print.o) \ 
     14976   $(MODEL_LIB)(oce.o) \ 
     14977   $(MODEL_LIB)(oce_trc.o) \ 
     14978   $(MODEL_LIB)(par_c14b.o) \ 
     14979   $(MODEL_LIB)(par_cfc.o) \ 
     14980   $(MODEL_LIB)(par_kind.o) \ 
     14981   $(MODEL_LIB)(par_lobster.o) \ 
     14982   $(MODEL_LIB)(par_my_trc.o) \ 
     14983   $(MODEL_LIB)(par_oce.o) \ 
     14984   $(MODEL_LIB)(par_pisces.o) \ 
     14985   $(MODEL_LIB)(par_trc.o) \ 
     14986   $(MODEL_LIB)(phycst.o) \ 
    1477814987   $(MODEL_LIB)(sbc_oce.o) \ 
    1477914988   $(MODEL_LIB)(sbcrnf.o) \ 
     
    1478314992   $(MODEL_LIB)(trdmld_trc.o) \ 
    1478414993   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
    14785    $(MODEL_LIB)(trp_trc.o) \ 
    1478614994   $(MODEL_LIB)(zdf_oce.o) \ 
    1478714995   $(MODEL_LIB)(zdfddm.o) \ 
     
    1479715005   iom_rstdimg.F90 \ 
    1479815006   lbclnk.F90 \ 
    14799    lbcnfd.F90 \ 
    1480015007   ldfslp.F90 \ 
    1480115008   ldftra_oce.F90 \ 
    1480215009   lib_mpp.F90 \ 
     15010   lib_print.f90 \ 
    1480315011   oce.F90 \ 
    1480415012   oce_trc.F90 \ 
    14805    par_oce.F90 \ 
     15013   par_c14b.F90 \ 
     15014   par_cfc.F90 \ 
     15015   par_kind.F90 \ 
     15016   par_lobster.F90 \ 
     15017   par_my_trc.F90 \ 
     15018   par_oce.F90 \ 
     15019   par_pisces.F90 \ 
    1480615020   par_trc.F90 \ 
    1480715021   phycst.F90 \ 
     
    1481315027   trdmld_trc.F90 \ 
    1481415028   trdmld_trc_oce.F90 \ 
    14815    trp_trc.F90 \ 
    1481615029   zdf_oce.F90 \ 
    1481715030   zdfddm.F90 \ 
    1481815031   zdfmxl.F90 \ 
    14819    $(MODEL_LIB)(iom.o) \ 
    14820    $(MODEL_LIB)(lib_mpp.o) \ 
     15032   $(MODEL_LIB)(in_out_manager.o) \ 
     15033   $(MODEL_LIB)(iom.o) \ 
    1482115034   $(MODEL_LIB)(oce_trc.o) \ 
     15035   $(MODEL_LIB)(par_trc.o) \ 
     15036   $(MODEL_LIB)(trc.o) \ 
     15037   $(MODEL_LIB)(trcsms_c14b.o) \ 
     15038   in_out_manager.F90 \ 
     15039   iom.F90 \ 
     15040   oce_trc.F90 \ 
     15041   par_trc.F90 \ 
     15042   trc.F90 \ 
     15043   trcsms_c14b.F90 \ 
     15044   KEY_CPP \ 
     15045   trcrst_c14b.F90 
     15046$(MODEL_LIB)(trcrst_cfc.o) :  \ 
     15047   $(MODEL_LIB)(dianam.o) \ 
     15048   $(MODEL_LIB)(dom_oce.o) \ 
     15049   $(MODEL_LIB)(domngb.o) \ 
     15050   $(MODEL_LIB)(in_out_manager.o) \ 
     15051   $(MODEL_LIB)(iom.o) \ 
     15052   $(MODEL_LIB)(iom_def.o) \ 
     15053   $(MODEL_LIB)(iom_ioipsl.o) \ 
     15054   $(MODEL_LIB)(iom_nf90.o) \ 
     15055   $(MODEL_LIB)(iom_rstdimg.o) \ 
     15056   $(MODEL_LIB)(lbclnk.o) \ 
     15057   $(MODEL_LIB)(ldfslp.o) \ 
     15058   $(MODEL_LIB)(ldftra_oce.o) \ 
     15059   $(MODEL_LIB)(lib_mpp.o) \ 
     15060   $(MODEL_LIB)(lib_print.o) \ 
     15061   $(MODEL_LIB)(oce.o) \ 
     15062   $(MODEL_LIB)(oce_trc.o) \ 
     15063   $(MODEL_LIB)(par_c14b.o) \ 
     15064   $(MODEL_LIB)(par_cfc.o) \ 
     15065   $(MODEL_LIB)(par_kind.o) \ 
     15066   $(MODEL_LIB)(par_lobster.o) \ 
     15067   $(MODEL_LIB)(par_my_trc.o) \ 
     15068   $(MODEL_LIB)(par_oce.o) \ 
     15069   $(MODEL_LIB)(par_pisces.o) \ 
     15070   $(MODEL_LIB)(par_trc.o) \ 
     15071   $(MODEL_LIB)(phycst.o) \ 
     15072   $(MODEL_LIB)(sbc_oce.o) \ 
     15073   $(MODEL_LIB)(sbcrnf.o) \ 
     15074   $(MODEL_LIB)(trabbl.o) \ 
     15075   $(MODEL_LIB)(traqsr.o) \ 
     15076   $(MODEL_LIB)(trc.o) \ 
     15077   $(MODEL_LIB)(trdmld_trc.o) \ 
     15078   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     15079   $(MODEL_LIB)(zdf_oce.o) \ 
     15080   $(MODEL_LIB)(zdfddm.o) \ 
     15081   $(MODEL_LIB)(zdfmxl.o) \ 
     15082   dianam.F90 \ 
     15083   dom_oce.F90 \ 
     15084   domngb.F90 \ 
     15085   in_out_manager.F90 \ 
     15086   iom.F90 \ 
     15087   iom_def.F90 \ 
     15088   iom_ioipsl.F90 \ 
     15089   iom_nf90.F90 \ 
     15090   iom_rstdimg.F90 \ 
     15091   lbclnk.F90 \ 
     15092   ldfslp.F90 \ 
     15093   ldftra_oce.F90 \ 
     15094   lib_mpp.F90 \ 
     15095   lib_print.f90 \ 
     15096   oce.F90 \ 
     15097   oce_trc.F90 \ 
     15098   par_c14b.F90 \ 
     15099   par_cfc.F90 \ 
     15100   par_kind.F90 \ 
     15101   par_lobster.F90 \ 
     15102   par_my_trc.F90 \ 
     15103   par_oce.F90 \ 
     15104   par_pisces.F90 \ 
     15105   par_trc.F90 \ 
     15106   phycst.F90 \ 
     15107   sbc_oce.F90 \ 
     15108   sbcrnf.F90 \ 
     15109   trabbl.F90 \ 
     15110   traqsr.F90 \ 
     15111   trc.F90 \ 
     15112   trdmld_trc.F90 \ 
     15113   trdmld_trc_oce.F90 \ 
     15114   zdf_oce.F90 \ 
     15115   zdfddm.F90 \ 
     15116   zdfmxl.F90 \ 
     15117   $(MODEL_LIB)(in_out_manager.o) \ 
     15118   $(MODEL_LIB)(iom.o) \ 
     15119   $(MODEL_LIB)(oce_trc.o) \ 
     15120   $(MODEL_LIB)(par_trc.o) \ 
     15121   $(MODEL_LIB)(trc.o) \ 
     15122   $(MODEL_LIB)(trcsms_cfc.o) \ 
     15123   in_out_manager.F90 \ 
     15124   iom.F90 \ 
     15125   oce_trc.F90 \ 
     15126   par_trc.F90 \ 
     15127   trc.F90 \ 
     15128   trcsms_cfc.F90 \ 
     15129   KEY_CPP \ 
     15130   trcrst_cfc.F90 
     15131$(MODEL_LIB)(trcrst_lobster.o) : \ 
     15132   $(MODEL_LIB)(dianam.o) \ 
     15133   $(MODEL_LIB)(dom_oce.o) \ 
     15134   $(MODEL_LIB)(domngb.o) \ 
     15135   $(MODEL_LIB)(in_out_manager.o) \ 
     15136   $(MODEL_LIB)(iom_def.o) \ 
     15137   $(MODEL_LIB)(iom_ioipsl.o) \ 
     15138   $(MODEL_LIB)(iom_nf90.o) \ 
     15139   $(MODEL_LIB)(iom_rstdimg.o) \ 
     15140   $(MODEL_LIB)(lbclnk.o) \ 
     15141   $(MODEL_LIB)(ldfslp.o) \ 
     15142   $(MODEL_LIB)(ldftra_oce.o) \ 
     15143   $(MODEL_LIB)(lib_mpp.o) \ 
     15144   $(MODEL_LIB)(lib_print.o) \ 
     15145   $(MODEL_LIB)(oce.o) \ 
     15146   $(MODEL_LIB)(oce_trc.o) \ 
     15147   $(MODEL_LIB)(par_c14b.o) \ 
     15148   $(MODEL_LIB)(par_cfc.o) \ 
     15149   $(MODEL_LIB)(par_kind.o) \ 
     15150   $(MODEL_LIB)(par_lobster.o) \ 
     15151   $(MODEL_LIB)(par_my_trc.o) \ 
     15152   $(MODEL_LIB)(par_oce.o) \ 
     15153   $(MODEL_LIB)(par_pisces.o) \ 
     15154   $(MODEL_LIB)(par_trc.o) \ 
     15155   $(MODEL_LIB)(phycst.o) \ 
     15156   $(MODEL_LIB)(sbc_oce.o) \ 
     15157   $(MODEL_LIB)(sbcrnf.o) \ 
     15158   $(MODEL_LIB)(trabbl.o) \ 
     15159   $(MODEL_LIB)(traqsr.o) \ 
     15160   $(MODEL_LIB)(trc.o) \ 
     15161   $(MODEL_LIB)(trcbio.o) \ 
     15162   $(MODEL_LIB)(trcexp.o) \ 
     15163   $(MODEL_LIB)(trcopt.o) \ 
     15164   $(MODEL_LIB)(trcsed.o) \ 
     15165   $(MODEL_LIB)(trdmld_trc.o) \ 
     15166   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     15167   $(MODEL_LIB)(zdf_oce.o) \ 
     15168   $(MODEL_LIB)(zdfddm.o) \ 
     15169   $(MODEL_LIB)(zdfmxl.o) \ 
     15170   dianam.F90 \ 
     15171   dom_oce.F90 \ 
     15172   domngb.F90 \ 
     15173   in_out_manager.F90 \ 
     15174   iom_def.F90 \ 
     15175   iom_ioipsl.F90 \ 
     15176   iom_nf90.F90 \ 
     15177   iom_rstdimg.F90 \ 
     15178   lbclnk.F90 \ 
     15179   ldfslp.F90 \ 
     15180   ldftra_oce.F90 \ 
     15181   lib_mpp.F90 \ 
     15182   lib_print.f90 \ 
     15183   oce.F90 \ 
     15184   oce_trc.F90 \ 
     15185   par_c14b.F90 \ 
     15186   par_cfc.F90 \ 
     15187   par_kind.F90 \ 
     15188   par_lobster.F90 \ 
     15189   par_my_trc.F90 \ 
     15190   par_oce.F90 \ 
     15191   par_pisces.F90 \ 
     15192   par_trc.F90 \ 
     15193   phycst.F90 \ 
     15194   sbc_oce.F90 \ 
     15195   sbcrnf.F90 \ 
     15196   trabbl.F90 \ 
     15197   traqsr.F90 \ 
     15198   trc.F90 \ 
     15199   trcbio.F90 \ 
     15200   trcexp.F90 \ 
     15201   trcopt.F90 \ 
     15202   trcsed.F90 \ 
     15203   trdmld_trc.F90 \ 
     15204   trdmld_trc_oce.F90 \ 
     15205   zdf_oce.F90 \ 
     15206   zdfddm.F90 \ 
     15207   zdfmxl.F90 \ 
     15208   $(MODEL_LIB)(in_out_manager.o) \ 
     15209   $(MODEL_LIB)(iom.o) \ 
     15210   $(MODEL_LIB)(oce_trc.o) \ 
     15211   $(MODEL_LIB)(par_trc.o) \ 
    1482215212   $(MODEL_LIB)(sms_lobster.o) \ 
     15213   $(MODEL_LIB)(trc.o) \ 
     15214   $(MODEL_LIB)(trcsms_lobster.o) \ 
     15215   in_out_manager.F90 \ 
     15216   iom.F90 \ 
     15217   oce_trc.F90 \ 
     15218   par_trc.F90 \ 
     15219   sms_lobster.F90 \ 
     15220   trc.F90 \ 
     15221   trcsms_lobster.F90 \ 
     15222   KEY_CPP \ 
     15223   trcrst_lobster.F90 
     15224$(MODEL_LIB)(trcrst_my_trc.o) :  \ 
     15225   KEY_CPP \ 
     15226   trcrst_my_trc.F90 
     15227$(MODEL_LIB)(trcrst_pisces.o) :  \ 
     15228   $(MODEL_LIB)(dianam.o) \ 
     15229   $(MODEL_LIB)(dom_oce.o) \ 
     15230   $(MODEL_LIB)(domngb.o) \ 
     15231   $(MODEL_LIB)(in_out_manager.o) \ 
     15232   $(MODEL_LIB)(iom.o) \ 
     15233   $(MODEL_LIB)(iom_def.o) \ 
     15234   $(MODEL_LIB)(iom_ioipsl.o) \ 
     15235   $(MODEL_LIB)(iom_nf90.o) \ 
     15236   $(MODEL_LIB)(iom_rstdimg.o) \ 
     15237   $(MODEL_LIB)(lbclnk.o) \ 
     15238   $(MODEL_LIB)(ldfslp.o) \ 
     15239   $(MODEL_LIB)(ldftra_oce.o) \ 
     15240   $(MODEL_LIB)(lib_mpp.o) \ 
     15241   $(MODEL_LIB)(lib_print.o) \ 
     15242   $(MODEL_LIB)(oce.o) \ 
     15243   $(MODEL_LIB)(oce_trc.o) \ 
     15244   $(MODEL_LIB)(p4zbio.o) \ 
     15245   $(MODEL_LIB)(p4zche.o) \ 
     15246   $(MODEL_LIB)(p4zflx.o) \ 
     15247   $(MODEL_LIB)(p4zint.o) \ 
     15248   $(MODEL_LIB)(p4zlys.o) \ 
     15249   $(MODEL_LIB)(p4zsed.o) \ 
     15250   $(MODEL_LIB)(par_c14b.o) \ 
     15251   $(MODEL_LIB)(par_cfc.o) \ 
     15252   $(MODEL_LIB)(par_kind.o) \ 
     15253   $(MODEL_LIB)(par_lobster.o) \ 
     15254   $(MODEL_LIB)(par_my_trc.o) \ 
     15255   $(MODEL_LIB)(par_oce.o) \ 
     15256   $(MODEL_LIB)(par_pisces.o) \ 
     15257   $(MODEL_LIB)(par_trc.o) \ 
     15258   $(MODEL_LIB)(phycst.o) \ 
     15259   $(MODEL_LIB)(sbc_oce.o) \ 
     15260   $(MODEL_LIB)(sbcrnf.o) \ 
     15261   $(MODEL_LIB)(sedmodel.o) \ 
     15262   $(MODEL_LIB)(sms_pisces.o) \ 
     15263   $(MODEL_LIB)(trabbl.o) \ 
     15264   $(MODEL_LIB)(traqsr.o) \ 
     15265   $(MODEL_LIB)(trc.o) \ 
     15266   $(MODEL_LIB)(trdmld_trc.o) \ 
     15267   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     15268   $(MODEL_LIB)(zdf_oce.o) \ 
     15269   $(MODEL_LIB)(zdfddm.o) \ 
     15270   $(MODEL_LIB)(zdfmxl.o) \ 
     15271   dianam.F90 \ 
     15272   dom_oce.F90 \ 
     15273   domngb.F90 \ 
     15274   in_out_manager.F90 \ 
     15275   iom.F90 \ 
     15276   iom_def.F90 \ 
     15277   iom_ioipsl.F90 \ 
     15278   iom_nf90.F90 \ 
     15279   iom_rstdimg.F90 \ 
     15280   lbclnk.F90 \ 
     15281   ldfslp.F90 \ 
     15282   ldftra_oce.F90 \ 
     15283   lib_mpp.F90 \ 
     15284   lib_print.f90 \ 
     15285   oce.F90 \ 
     15286   oce_trc.F90 \ 
     15287   p4zbio.F90 \ 
     15288   p4zche.F90 \ 
     15289   p4zflx.F90 \ 
     15290   p4zint.F90 \ 
     15291   p4zlys.F90 \ 
     15292   p4zsed.F90 \ 
     15293   par_c14b.F90 \ 
     15294   par_cfc.F90 \ 
     15295   par_kind.F90 \ 
     15296   par_lobster.F90 \ 
     15297   par_my_trc.F90 \ 
     15298   par_oce.F90 \ 
     15299   par_pisces.F90 \ 
     15300   par_trc.F90 \ 
     15301   phycst.F90 \ 
     15302   sbc_oce.F90 \ 
     15303   sbcrnf.F90 \ 
     15304   sedmodel.F90 \ 
     15305   sms_pisces.F90 \ 
     15306   trabbl.F90 \ 
     15307   traqsr.F90 \ 
     15308   trc.F90 \ 
     15309   trdmld_trc.F90 \ 
     15310   trdmld_trc_oce.F90 \ 
     15311   zdf_oce.F90 \ 
     15312   zdfddm.F90 \ 
     15313   zdfmxl.F90 \ 
     15314   $(MODEL_LIB)(in_out_manager.o) \ 
     15315   $(MODEL_LIB)(iom.o) \ 
     15316   $(MODEL_LIB)(oce_trc.o) \ 
     15317   $(MODEL_LIB)(par_trc.o) \ 
    1482315318   $(MODEL_LIB)(sms_pisces.o) \ 
    1482415319   $(MODEL_LIB)(trc.o) \ 
    14825    $(MODEL_LIB)(trcsms_c14b.o) \ 
    14826    $(MODEL_LIB)(trcsms_cfc.o) \ 
    14827    $(MODEL_LIB)(trcsms_my_trc.o) \ 
    14828    $(MODEL_LIB)(trctrp_lec.o) \ 
    14829    iom.F90 \ 
    14830    lib_mpp.F90 \ 
     15320   $(MODEL_LIB)(trcdta.o) \ 
     15321   $(MODEL_LIB)(trcsms_pisces.o) \ 
     15322   in_out_manager.F90 \ 
     15323   iom.F90 \ 
    1483115324   oce_trc.F90 \ 
    14832    sms_lobster.F90 \ 
     15325   par_trc.F90 \ 
    1483315326   sms_pisces.F90 \ 
    1483415327   trc.F90 \ 
    14835    trcsms_c14b.F90 \ 
    14836    trcsms_cfc.F90 \ 
    14837    trcsms_my_trc.F90 \ 
    14838    trctrp_lec.F90 \ 
    14839    domzgr_substitute.h90 \ 
    14840    ldfeiv_substitute.h90 \ 
    14841    ldftra_substitute.h90 \ 
    14842    top_substitute.h90 \ 
    14843    vectopt_loop_substitute.h90 \ 
    14844    KEY_CPP \ 
    14845    trcrst.F90 
     15328   trcdta.F90 \ 
     15329   trcsms_pisces.F90 \ 
     15330   KEY_CPP \ 
     15331   trcrst_pisces.F90 
    1484615332$(MODEL_LIB)(trcsbc.o) :   \ 
    1484715333   $(MODEL_LIB)(dianam.o) \ 
     
    1500015486   trdmld_trc_oce.F90 \ 
    1500115487   domzgr_substitute.h90 \ 
     15488   ldfeiv_substitute.h90 \ 
     15489   ldftra_substitute.h90 \ 
     15490   top_substitute.h90 \ 
     15491   vectopt_loop_substitute.h90 \ 
    1500215492   KEY_CPP \ 
    1500315493   trcsed.F90 
     
    1556016050$(MODEL_LIB)(trcstp.o) :   \ 
    1556116051   $(MODEL_LIB)(agrif_top_sponge.o) \ 
     16052   $(MODEL_LIB)(daymod.o) \ 
    1556216053   $(MODEL_LIB)(dianam.o) \ 
    1556316054   $(MODEL_LIB)(dom_oce.o) \ 
     
    1560316094   $(MODEL_LIB)(trcnxt.o) \ 
    1560416095   $(MODEL_LIB)(trcrad.o) \ 
     16096   $(MODEL_LIB)(trcrst_c14b.o) \ 
     16097   $(MODEL_LIB)(trcrst_cfc.o) \ 
     16098   $(MODEL_LIB)(trcrst_lobster.o) \ 
     16099   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     16100   $(MODEL_LIB)(trcrst_pisces.o) \ 
    1560516101   $(MODEL_LIB)(trcsbc.o) \ 
    1560616102   $(MODEL_LIB)(trcsms_c14b.o) \ 
     
    1562216118   $(MODEL_LIB)(zpshde_trc.o) \ 
    1562316119   agrif_top_sponge.F90 \ 
     16120   daymod.F90 \ 
    1562416121   dianam.F90 \ 
    1562516122   dom_oce.F90 \ 
     
    1566516162   trcnxt.F90 \ 
    1566616163   trcrad.F90 \ 
     16164   trcrst_c14b.F90 \ 
     16165   trcrst_cfc.F90 \ 
     16166   trcrst_lobster.F90 \ 
     16167   trcrst_my_trc.F90 \ 
     16168   trcrst_pisces.F90 \ 
    1566716169   trcsbc.F90 \ 
    1566816170   trcsms_c14b.F90 \ 
     
    1582316325   zpshde_trc.F90 \ 
    1582416326   domzgr_substitute.h90 \ 
     16327   ldfeiv_substitute.h90 \ 
     16328   ldftra_substitute.h90 \ 
     16329   top_substitute.h90 \ 
     16330   vectopt_loop_substitute.h90 \ 
    1582516331   $(AGRIF_LIB) \ 
    1582616332   KEY_CPP \ 
     
    1593516441   $(MODEL_LIB)(trabbl.o) \ 
    1593616442   $(MODEL_LIB)(traqsr.o) \ 
     16443   $(MODEL_LIB)(trc.o) \ 
    1593716444   $(MODEL_LIB)(zdf_oce.o) \ 
    1593816445   $(MODEL_LIB)(zdfddm.o) \ 
     
    1595816465   trabbl.F90 \ 
    1595916466   traqsr.F90 \ 
     16467   trc.F90 \ 
    1596016468   zdf_oce.F90 \ 
    1596116469   zdfddm.F90 \ 
    1596216470   zdfmxl.F90 \ 
    1596316471   $(MODEL_LIB)(dianam.o) \ 
     16472   $(MODEL_LIB)(dom_oce.o) \ 
    1596416473   $(MODEL_LIB)(iom.o) \ 
    1596516474   $(MODEL_LIB)(oce_trc.o) \ 
    1596616475   $(MODEL_LIB)(trc.o) \ 
     16476   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     16477   $(MODEL_LIB)(trp_trc.o) \ 
    1596716478   dianam.F90 \ 
     16479   dom_oce.F90 \ 
    1596816480   iom.F90 \ 
    1596916481   oce_trc.F90 \ 
    1597016482   trc.F90 \ 
     16483   trdmld_trc_oce.F90 \ 
     16484   trp_trc.F90 \ 
    1597116485   domzgr_substitute.h90 \ 
    1597216486   ldfeiv_substitute.h90 \ 
     
    1634716861$(MODEL_LIB)(trdmld.o) :   \ 
    1634816862   $(MODEL_LIB)(c1d.o) \ 
     16863   $(MODEL_LIB)(daymod.o) \ 
    1634916864   $(MODEL_LIB)(dom_oce.o) \ 
    1635016865   $(MODEL_LIB)(eosbn2.o) \ 
     
    1637216887   $(MODEL_LIB)(zpshde.o) \ 
    1637316888   c1d.F90 \ 
     16889   daymod.F90 \ 
    1637416890   dom_oce.F90 \ 
    1637516891   eosbn2.F90 \ 
  • branches/DEV_r1924_nocs_latphys/CONFIG/GYRE_LOBSTER/scripts/BB_make.ldef

    r1791 r2201  
    3434#- 
    3535#- Prefix for preprocessing --- 
     36prefix = -D 
    3637#-Q- sx8mercure prefix = -D 
    3738#-Q- sx9mercure prefix = -D 
  • branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM/IGCM00/COMP/opa9.driver

    r1853 r2201  
    8686      if [ X${year} = X${PeriodInitYear} ] ; then   
    8787                           if [ ${month} -eq 01 ] ; then 
    88                   # if year-1 does not exist we copy year in (year-1) 
     88                  # if year-1 does not exist we create a file _noym1.nc copy of year 
    8989                  eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year - 1 )).nc 
    9090                  if  [ ! -f ${jobsbc_file_ym1} ] ; then 
    9191                     eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 
    92                      eval runsbc_file_ym1=${file}_noy.nc 
     92                     eval runsbc_file_ym1=${file}_noym1.nc 
    9393                  else 
    9494                      eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year - 1 )).nc 
     
    116116          if  [ ! -f ${runsbc_file_yp1} ] ; then 
    117117          
    118               # if year+1 does not exist we copy year in (year+1) 
     118              # if year+1 does not exist we create a file _noyp1.nc copy of year 
     119            eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc 
    119120         if  [ ! -f ${jobsbc_file_yp1} ] ; then 
    120121             eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 
    121                 eval runsbc_file_yp1=${file}_noy.nc 
     122                eval runsbc_file_yp1=${file}_noyp1.nc 
    122123         else 
    123124             eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc 
  • branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM/scripts/BB_make

    r1791 r2201  
    77#          Check your compilers option in consequence when using real F95 compilers 
    88 
     9F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC)  
     10L_X = $(L_O)  
    911#-Q- platine # Compiler options NEMO (CCRT Itanium Bull)  
    1012#-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC)  
     
    101103 
    102104#check key compatibility 
    103 keycompat=$(if $(and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
     105keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
    104106 
    105107KEY_LIST = \ 
     
    437439 
    438440# Agrif library and conv 
    439 libagrif :  $(call keycompat,key_iomput,key_agrif) 
     441libagrif : 
    440442ifeq ($(AGRIF),use) 
    441443   @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) 
     
    851853   $(MODEL_LIB)(dom_oce.o) \ 
    852854   $(MODEL_LIB)(in_out_manager.o) \ 
     855   $(MODEL_LIB)(obc_par.o) \ 
    853856   $(MODEL_LIB)(oce.o) \ 
    854857   $(MODEL_LIB)(opa.o) \ 
     
    865868   dom_oce.F90 \ 
    866869   in_out_manager.F90 \ 
     870   obc_par.F90 \ 
    867871   oce.F90 \ 
    868872   opa.F90 \ 
     
    15011505   diaar5.F90 
    15021506$(MODEL_LIB)(diadimg.o) :  \ 
    1503    $(MODEL_LIB)(lib_print.o) \ 
    1504    $(MODEL_LIB)(par_kind.o) \ 
    1505    $(MODEL_LIB)(par_oce.o) \ 
    1506    lib_print.f90 \ 
    1507    par_kind.F90 \ 
    1508    par_oce.F90 \ 
    1509    $(MODEL_LIB)(dom_oce.o) \ 
    1510    $(MODEL_LIB)(in_out_manager.o) \ 
    1511    $(MODEL_LIB)(oce.o) \ 
     1507   $(MODEL_LIB)(dom_oce.o) \ 
     1508   $(MODEL_LIB)(in_out_manager.o) \ 
     1509   $(MODEL_LIB)(iom.o) \ 
     1510   $(MODEL_LIB)(lib_print.o) \ 
     1511   $(MODEL_LIB)(par_kind.o) \ 
     1512   $(MODEL_LIB)(par_oce.o) \ 
     1513   $(MODEL_LIB)(phycst.o) \ 
     1514   $(MODEL_LIB)(prtctl.o) \ 
     1515   $(MODEL_LIB)(restart.o) \ 
     1516   dom_oce.F90 \ 
     1517   in_out_manager.F90 \ 
     1518   iom.F90 \ 
     1519   lib_print.f90 \ 
     1520   par_kind.F90 \ 
     1521   par_oce.F90 \ 
     1522   phycst.F90 \ 
     1523   prtctl.F90 \ 
     1524   restart.F90 \ 
     1525   $(MODEL_LIB)(daymod.o) \ 
     1526   $(MODEL_LIB)(dom_oce.o) \ 
     1527   $(MODEL_LIB)(in_out_manager.o) \ 
     1528   $(MODEL_LIB)(oce.o) \ 
     1529   daymod.F90 \ 
    15121530   dom_oce.F90 \ 
    15131531   in_out_manager.F90 \ 
     
    16641682   phycst.F90 \ 
    16651683   $(IOIPSL_LIB) \ 
    1666    KEY_CPP \ 
    16671684   dianam.F90 
    16681685$(MODEL_LIB)(diaptr.o) :   \ 
     
    17251742   diaptr.F90 
    17261743$(MODEL_LIB)(diawri.o) :   \ 
     1744   $(MODEL_LIB)(daymod.o) \ 
    17271745   $(MODEL_LIB)(dianam.o) \ 
    17281746   $(MODEL_LIB)(dom_ice_2.o) \ 
     
    17521770   $(MODEL_LIB)(sbcrnf.o) \ 
    17531771   $(MODEL_LIB)(zdf_oce.o) \ 
     1772   daymod.F90 \ 
    17541773   dianam.F90 \ 
    17551774   dom_ice_2.F90 \ 
     
    49124931   in_out_manager.F90 \ 
    49134932   lbcnfd.F90 \ 
    4914    $(AGRIF_LIB) \ 
    49154933   KEY_CPP \ 
    49164934   lib_mpp.F90 
     
    56275645   $(MODEL_LIB)(limistate_2.o) \ 
    56285646   $(MODEL_LIB)(phycst.o) \ 
     5647   $(MODEL_LIB)(sbc_oce.o) \ 
    56295648   dom_ice_2.F90 \ 
    56305649   dom_oce.F90 \ 
     
    56375656   limistate_2.F90 \ 
    56385657   phycst.F90 \ 
     5658   sbc_oce.F90 \ 
    56395659   vectopt_loop_substitute.h90 \ 
    56405660   KEY_CPP \ 
     
    83168336   $(MODEL_LIB)(lib_print.o) \ 
    83178337   $(MODEL_LIB)(limwri_2.o) \ 
     8338   $(MODEL_LIB)(obc_oce.o) \ 
    83188339   $(MODEL_LIB)(obctra.o) \ 
    83198340   $(MODEL_LIB)(oce.o) \ 
     
    83878408   lib_print.f90 \ 
    83888409   limwri_2.F90 \ 
     8410   obc_oce.F90 \ 
    83898411   obctra.F90 \ 
    83908412   oce.F90 \ 
     
    99439965   $(MODEL_LIB)(lib_print.o) \ 
    99449966   $(MODEL_LIB)(obc_oce.o) \ 
     9967   $(MODEL_LIB)(obc_par.o) \ 
    99459968   $(MODEL_LIB)(oce.o) \ 
    99469969   $(MODEL_LIB)(par_kind.o) \ 
     
    99729995   lib_print.f90 \ 
    99739996   obc_oce.F90 \ 
     9997   obc_par.F90 \ 
    99749998   oce.F90 \ 
    99759999   par_kind.F90 \ 
     
    999810022   $(MODEL_LIB)(in_out_manager.o) \ 
    999910023   $(MODEL_LIB)(lbclnk.o) \ 
     10024   $(MODEL_LIB)(obc_oce.o) \ 
    1000010025   $(MODEL_LIB)(obctra.o) \ 
    1000110026   $(MODEL_LIB)(oce.o) \ 
     
    1001410039   in_out_manager.F90 \ 
    1001510040   lbclnk.F90 \ 
     10041   obc_oce.F90 \ 
    1001610042   obctra.F90 \ 
    1001710043   oce.F90 \ 
     
    1050210528$(MODEL_LIB)(trdmld.o) :   \ 
    1050310529   $(MODEL_LIB)(c1d.o) \ 
     10530   $(MODEL_LIB)(daymod.o) \ 
    1050410531   $(MODEL_LIB)(dom_oce.o) \ 
    1050510532   $(MODEL_LIB)(eosbn2.o) \ 
     
    1052710554   $(MODEL_LIB)(zpshde.o) \ 
    1052810555   c1d.F90 \ 
     10556   daymod.F90 \ 
    1052910557   dom_oce.F90 \ 
    1053010558   eosbn2.F90 \ 
  • branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM/scripts/BB_make.ldef

    r1791 r2201  
    3434#- 
    3535#- Prefix for preprocessing --- 
     36prefix = -D 
    3637#-Q- sx8mercure prefix = -D 
    3738#-Q- sx9mercure prefix = -D 
  • branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM_PISCES/scripts/BB_make

    r1791 r2201  
    77#          Check your compilers option in consequence when using real F95 compilers 
    88 
     9F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 
     10L_X = $(L_O) 
    911#-Q- platine # Compiler options NEMO (CCRT Itanium Bull)  
    1012#-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC)  
     
    101103 
    102104#check key compatibility 
    103 keycompat=$(if $(and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
     105keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
    104106 
    105107KEY_LIST = \ 
     
    480482      $(MODEL_LIB)(trcrad.o)\ 
    481483      $(MODEL_LIB)(trcrst.o)\ 
     484      $(MODEL_LIB)(trcrst_c14b.o)\ 
     485      $(MODEL_LIB)(trcrst_cfc.o)\ 
     486      $(MODEL_LIB)(trcrst_lobster.o)\ 
     487      $(MODEL_LIB)(trcrst_my_trc.o)\ 
     488      $(MODEL_LIB)(trcrst_pisces.o)\ 
    482489      $(MODEL_LIB)(trcsbc.o)\ 
    483490      $(MODEL_LIB)(trcsed.o)\ 
     
    562569 
    563570# Agrif library and conv 
    564 libagrif :  $(call keycompat,key_iomput,key_agrif) 
     571libagrif : 
    565572ifeq ($(AGRIF),use) 
    566573   @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) 
     
    9941001   $(MODEL_LIB)(dom_oce.o) \ 
    9951002   $(MODEL_LIB)(in_out_manager.o) \ 
     1003   $(MODEL_LIB)(obc_par.o) \ 
    9961004   $(MODEL_LIB)(oce.o) \ 
    9971005   $(MODEL_LIB)(opa.o) \ 
     
    10091017   dom_oce.F90 \ 
    10101018   in_out_manager.F90 \ 
     1019   obc_par.F90 \ 
    10111020   oce.F90 \ 
    10121021   opa.F90 \ 
     
    16461655   diaar5.F90 
    16471656$(MODEL_LIB)(diadimg.o) :  \ 
    1648    $(MODEL_LIB)(lib_print.o) \ 
    1649    $(MODEL_LIB)(par_kind.o) \ 
    1650    $(MODEL_LIB)(par_oce.o) \ 
    1651    lib_print.f90 \ 
    1652    par_kind.F90 \ 
    1653    par_oce.F90 \ 
    1654    $(MODEL_LIB)(dom_oce.o) \ 
    1655    $(MODEL_LIB)(in_out_manager.o) \ 
    1656    $(MODEL_LIB)(oce.o) \ 
     1657   $(MODEL_LIB)(dom_oce.o) \ 
     1658   $(MODEL_LIB)(in_out_manager.o) \ 
     1659   $(MODEL_LIB)(iom.o) \ 
     1660   $(MODEL_LIB)(lib_print.o) \ 
     1661   $(MODEL_LIB)(par_kind.o) \ 
     1662   $(MODEL_LIB)(par_oce.o) \ 
     1663   $(MODEL_LIB)(phycst.o) \ 
     1664   $(MODEL_LIB)(prtctl.o) \ 
     1665   $(MODEL_LIB)(restart.o) \ 
     1666   dom_oce.F90 \ 
     1667   in_out_manager.F90 \ 
     1668   iom.F90 \ 
     1669   lib_print.f90 \ 
     1670   par_kind.F90 \ 
     1671   par_oce.F90 \ 
     1672   phycst.F90 \ 
     1673   prtctl.F90 \ 
     1674   restart.F90 \ 
     1675   $(MODEL_LIB)(daymod.o) \ 
     1676   $(MODEL_LIB)(dom_oce.o) \ 
     1677   $(MODEL_LIB)(in_out_manager.o) \ 
     1678   $(MODEL_LIB)(oce.o) \ 
     1679   daymod.F90 \ 
    16571680   dom_oce.F90 \ 
    16581681   in_out_manager.F90 \ 
     
    18091832   phycst.F90 \ 
    18101833   $(IOIPSL_LIB) \ 
    1811    KEY_CPP \ 
    18121834   dianam.F90 
    18131835$(MODEL_LIB)(diaptr.o) :   \ 
     
    18701892   diaptr.F90 
    18711893$(MODEL_LIB)(diawri.o) :   \ 
     1894   $(MODEL_LIB)(daymod.o) \ 
    18721895   $(MODEL_LIB)(dianam.o) \ 
    18731896   $(MODEL_LIB)(dom_ice_2.o) \ 
     
    18971920   $(MODEL_LIB)(sbcrnf.o) \ 
    18981921   $(MODEL_LIB)(zdf_oce.o) \ 
     1922   daymod.F90 \ 
    18991923   dianam.F90 \ 
    19001924   dom_ice_2.F90 \ 
     
    50575081   in_out_manager.F90 \ 
    50585082   lbcnfd.F90 \ 
    5059    $(AGRIF_LIB) \ 
    50605083   KEY_CPP \ 
    50615084   lib_mpp.F90 
     
    57725795   $(MODEL_LIB)(limistate_2.o) \ 
    57735796   $(MODEL_LIB)(phycst.o) \ 
     5797   $(MODEL_LIB)(sbc_oce.o) \ 
    57745798   dom_ice_2.F90 \ 
    57755799   dom_oce.F90 \ 
     
    57825806   limistate_2.F90 \ 
    57835807   phycst.F90 \ 
     5808   sbc_oce.F90 \ 
    57845809   vectopt_loop_substitute.h90 \ 
    57855810   KEY_CPP \ 
     
    68566881   trc.F90 \ 
    68576882   domzgr_substitute.h90 \ 
     6883   ldfeiv_substitute.h90 \ 
     6884   ldftra_substitute.h90 \ 
     6885   top_substitute.h90 \ 
     6886   vectopt_loop_substitute.h90 \ 
    68586887   KEY_CPP \ 
    68596888   p4zbio.F90 
     
    68986927   trc.F90 \ 
    68996928   domzgr_substitute.h90 \ 
     6929   ldfeiv_substitute.h90 \ 
     6930   ldftra_substitute.h90 \ 
     6931   top_substitute.h90 \ 
     6932   vectopt_loop_substitute.h90 \ 
    69006933   KEY_CPP \ 
    69016934   p4zche.F90 
     
    69727005   trc.F90 \ 
    69737006   domzgr_substitute.h90 \ 
     7007   ldfeiv_substitute.h90 \ 
     7008   ldftra_substitute.h90 \ 
     7009   top_substitute.h90 \ 
     7010   vectopt_loop_substitute.h90 \ 
    69747011   KEY_CPP \ 
    69757012   p4zflx.F90 
     
    70557092   trc.F90 \ 
    70567093   domzgr_substitute.h90 \ 
     7094   ldfeiv_substitute.h90 \ 
     7095   ldftra_substitute.h90 \ 
     7096   top_substitute.h90 \ 
     7097   vectopt_loop_substitute.h90 \ 
    70577098   KEY_CPP \ 
    70587099   p4zlim.F90 
     
    71907231   trc.F90 \ 
    71917232   domzgr_substitute.h90 \ 
     7233   ldfeiv_substitute.h90 \ 
     7234   ldftra_substitute.h90 \ 
     7235   top_substitute.h90 \ 
     7236   vectopt_loop_substitute.h90 \ 
    71927237   KEY_CPP \ 
    71937238   p4zmeso.F90 
     
    72647309   trc.F90 \ 
    72657310   domzgr_substitute.h90 \ 
     7311   ldfeiv_substitute.h90 \ 
     7312   ldftra_substitute.h90 \ 
     7313   top_substitute.h90 \ 
     7314   vectopt_loop_substitute.h90 \ 
    72667315   KEY_CPP \ 
    72677316   p4zmicro.F90 
     
    73207369   trc.F90 \ 
    73217370   domzgr_substitute.h90 \ 
     7371   ldfeiv_substitute.h90 \ 
     7372   ldftra_substitute.h90 \ 
     7373   top_substitute.h90 \ 
     7374   vectopt_loop_substitute.h90 \ 
    73227375   KEY_CPP \ 
    73237376   p4zmort.F90 
     
    73807433   trc_oce.F90 \ 
    73817434   domzgr_substitute.h90 \ 
     7435   ldfeiv_substitute.h90 \ 
     7436   ldftra_substitute.h90 \ 
     7437   top_substitute.h90 \ 
     7438   vectopt_loop_substitute.h90 \ 
    73827439   KEY_CPP \ 
    73837440   p4zopt.F90 
     
    74607517   trc.F90 \ 
    74617518   domzgr_substitute.h90 \ 
     7519   ldfeiv_substitute.h90 \ 
     7520   ldftra_substitute.h90 \ 
     7521   top_substitute.h90 \ 
     7522   vectopt_loop_substitute.h90 \ 
    74627523   KEY_CPP \ 
    74637524   p4zprod.F90 
     
    75347595   trc.F90 \ 
    75357596   domzgr_substitute.h90 \ 
     7597   ldfeiv_substitute.h90 \ 
     7598   ldftra_substitute.h90 \ 
     7599   top_substitute.h90 \ 
     7600   vectopt_loop_substitute.h90 \ 
    75367601   KEY_CPP \ 
    75377602   p4zrem.F90 
     
    77107775   trc.F90 \ 
    77117776   domzgr_substitute.h90 \ 
     7777   ldfeiv_substitute.h90 \ 
     7778   ldftra_substitute.h90 \ 
     7779   top_substitute.h90 \ 
     7780   vectopt_loop_substitute.h90 \ 
    77127781   KEY_CPP \ 
    77137782   p4zsink.F90 
     
    1025210321   $(MODEL_LIB)(lib_print.o) \ 
    1025310322   $(MODEL_LIB)(limwri_2.o) \ 
     10323   $(MODEL_LIB)(obc_oce.o) \ 
    1025410324   $(MODEL_LIB)(obctra.o) \ 
    1025510325   $(MODEL_LIB)(oce.o) \ 
     
    1033310403   lib_print.f90 \ 
    1033410404   limwri_2.F90 \ 
     10405   obc_oce.F90 \ 
    1033510406   obctra.F90 \ 
    1033610407   oce.F90 \ 
     
    1190111972   $(MODEL_LIB)(lib_print.o) \ 
    1190211973   $(MODEL_LIB)(obc_oce.o) \ 
     11974   $(MODEL_LIB)(obc_par.o) \ 
    1190311975   $(MODEL_LIB)(oce.o) \ 
    1190411976   $(MODEL_LIB)(par_kind.o) \ 
     
    1193012002   lib_print.f90 \ 
    1193112003   obc_oce.F90 \ 
     12004   obc_par.F90 \ 
    1193212005   oce.F90 \ 
    1193312006   par_kind.F90 \ 
     
    1195612029   $(MODEL_LIB)(in_out_manager.o) \ 
    1195712030   $(MODEL_LIB)(lbclnk.o) \ 
     12031   $(MODEL_LIB)(obc_oce.o) \ 
    1195812032   $(MODEL_LIB)(obctra.o) \ 
    1195912033   $(MODEL_LIB)(oce.o) \ 
     
    1197212046   in_out_manager.F90 \ 
    1197312047   lbclnk.F90 \ 
     12048   obc_oce.F90 \ 
    1197412049   obctra.F90 \ 
    1197512050   oce.F90 \ 
     
    1336513440   $(MODEL_LIB)(lib_print.o) \ 
    1336613441   $(MODEL_LIB)(oce.o) \ 
    13367    $(MODEL_LIB)(par_kind.o) \ 
    13368    $(MODEL_LIB)(par_oce.o) \ 
     13442   $(MODEL_LIB)(par_c14b.o) \ 
     13443   $(MODEL_LIB)(par_cfc.o) \ 
     13444   $(MODEL_LIB)(par_kind.o) \ 
     13445   $(MODEL_LIB)(par_lobster.o) \ 
     13446   $(MODEL_LIB)(par_my_trc.o) \ 
     13447   $(MODEL_LIB)(par_oce.o) \ 
     13448   $(MODEL_LIB)(par_pisces.o) \ 
    1336913449   $(MODEL_LIB)(par_trc.o) \ 
    1337013450   $(MODEL_LIB)(phycst.o) \ 
     
    1338513465   lib_print.f90 \ 
    1338613466   oce.F90 \ 
    13387    par_kind.F90 \ 
    13388    par_oce.F90 \ 
     13467   par_c14b.F90 \ 
     13468   par_cfc.F90 \ 
     13469   par_kind.F90 \ 
     13470   par_lobster.F90 \ 
     13471   par_my_trc.F90 \ 
     13472   par_oce.F90 \ 
     13473   par_pisces.F90 \ 
    1338913474   par_trc.F90 \ 
    1339013475   phycst.F90 \ 
     
    1340213487   $(MODEL_LIB)(lib_mpp.o) \ 
    1340313488   $(MODEL_LIB)(oce_trc.o) \ 
     13489   $(MODEL_LIB)(par_trc.o) \ 
    1340413490   $(MODEL_LIB)(trc.o) \ 
    1340513491   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     
    1341013496   lib_mpp.F90 \ 
    1341113497   oce_trc.F90 \ 
     13498   par_trc.F90 \ 
    1341213499   trc.F90 \ 
    1341313500   trdmld_trc_oce.F90 \ 
     
    1368513772   trcexp.F90 
    1368613773$(MODEL_LIB)(trcini.o) :   \ 
     13774   $(MODEL_LIB)(daymod.o) \ 
    1368713775   $(MODEL_LIB)(dom_oce.o) \ 
    1368813776   $(MODEL_LIB)(in_out_manager.o) \ 
     
    1372013808   $(MODEL_LIB)(trclsm_my_trc.o) \ 
    1372113809   $(MODEL_LIB)(trclsm_pisces.o) \ 
     13810   $(MODEL_LIB)(trcrst_c14b.o) \ 
     13811   $(MODEL_LIB)(trcrst_cfc.o) \ 
     13812   $(MODEL_LIB)(trcrst_lobster.o) \ 
     13813   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     13814   $(MODEL_LIB)(trcrst_pisces.o) \ 
    1372213815   $(MODEL_LIB)(trcsms_c14b.o) \ 
    1372313816   $(MODEL_LIB)(trcsms_cfc.o) \ 
    13724    $(MODEL_LIB)(trcsms_my_trc.o) \ 
    1372513817   $(MODEL_LIB)(trctrp_ctl.o) \ 
    1372613818   $(MODEL_LIB)(trctrp_lec.o) \ 
     
    1373013822   $(MODEL_LIB)(zdfddm.o) \ 
    1373113823   $(MODEL_LIB)(zdfmxl.o) \ 
     13824   daymod.F90 \ 
    1373213825   dom_oce.F90 \ 
    1373313826   in_out_manager.F90 \ 
     
    1376513858   trclsm_my_trc.F90 \ 
    1376613859   trclsm_pisces.F90 \ 
     13860   trcrst_c14b.F90 \ 
     13861   trcrst_cfc.F90 \ 
     13862   trcrst_lobster.F90 \ 
     13863   trcrst_my_trc.F90 \ 
     13864   trcrst_pisces.F90 \ 
    1376713865   trcsms_c14b.F90 \ 
    1376813866   trcsms_cfc.F90 \ 
    13769    trcsms_my_trc.F90 \ 
    1377013867   trctrp_ctl.F90 \ 
    1377113868   trctrp_lec.F90 \ 
     
    1502215119   trc.F90 \ 
    1502315120   domzgr_substitute.h90 \ 
     15121   ldfeiv_substitute.h90 \ 
     15122   ldftra_substitute.h90 \ 
     15123   top_substitute.h90 \ 
     15124   vectopt_loop_substitute.h90 \ 
    1502415125   KEY_CPP \ 
    1502515126   trcopt.F90 
     
    1512015221   $(MODEL_LIB)(par_trc.o) \ 
    1512115222   $(MODEL_LIB)(phycst.o) \ 
     15223   $(MODEL_LIB)(prtctl.o) \ 
     15224   $(MODEL_LIB)(restart.o) \ 
     15225   $(MODEL_LIB)(sbc_oce.o) \ 
     15226   $(MODEL_LIB)(sbcrnf.o) \ 
     15227   $(MODEL_LIB)(sms_lobster.o) \ 
     15228   $(MODEL_LIB)(sms_pisces.o) \ 
     15229   $(MODEL_LIB)(trabbl.o) \ 
     15230   $(MODEL_LIB)(traqsr.o) \ 
     15231   $(MODEL_LIB)(trc.o) \ 
     15232   $(MODEL_LIB)(trcdta.o) \ 
     15233   $(MODEL_LIB)(trcsms_c14b.o) \ 
     15234   $(MODEL_LIB)(trcsms_cfc.o) \ 
     15235   $(MODEL_LIB)(trcsms_lobster.o) \ 
     15236   $(MODEL_LIB)(trcsms_pisces.o) \ 
     15237   $(MODEL_LIB)(trp_trc.o) \ 
     15238   $(MODEL_LIB)(zdf_oce.o) \ 
     15239   $(MODEL_LIB)(zdfddm.o) \ 
     15240   $(MODEL_LIB)(zdfmxl.o) \ 
     15241   dianam.F90 \ 
     15242   dom_oce.F90 \ 
     15243   domngb.F90 \ 
     15244   in_out_manager.F90 \ 
     15245   iom.F90 \ 
     15246   iom_def.F90 \ 
     15247   iom_ioipsl.F90 \ 
     15248   iom_nf90.F90 \ 
     15249   iom_rstdimg.F90 \ 
     15250   lbclnk.F90 \ 
     15251   lbcnfd.F90 \ 
     15252   ldfslp.F90 \ 
     15253   ldftra_oce.F90 \ 
     15254   lib_mpp.F90 \ 
     15255   oce.F90 \ 
     15256   oce_trc.F90 \ 
     15257   par_oce.F90 \ 
     15258   par_trc.F90 \ 
     15259   phycst.F90 \ 
     15260   prtctl.F90 \ 
     15261   restart.F90 \ 
     15262   sbc_oce.F90 \ 
     15263   sbcrnf.F90 \ 
     15264   sms_lobster.F90 \ 
     15265   sms_pisces.F90 \ 
     15266   trabbl.F90 \ 
     15267   traqsr.F90 \ 
     15268   trc.F90 \ 
     15269   trcdta.F90 \ 
     15270   trcsms_c14b.F90 \ 
     15271   trcsms_cfc.F90 \ 
     15272   trcsms_lobster.F90 \ 
     15273   trcsms_pisces.F90 \ 
     15274   trp_trc.F90 \ 
     15275   zdf_oce.F90 \ 
     15276   zdfddm.F90 \ 
     15277   zdfmxl.F90 \ 
     15278   $(MODEL_LIB)(daymod.o) \ 
     15279   $(MODEL_LIB)(iom.o) \ 
     15280   $(MODEL_LIB)(lib_mpp.o) \ 
     15281   $(MODEL_LIB)(oce_trc.o) \ 
     15282   $(MODEL_LIB)(trc.o) \ 
     15283   $(MODEL_LIB)(trcrst_c14b.o) \ 
     15284   $(MODEL_LIB)(trcrst_cfc.o) \ 
     15285   $(MODEL_LIB)(trcrst_lobster.o) \ 
     15286   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     15287   $(MODEL_LIB)(trcrst_pisces.o) \ 
     15288   $(MODEL_LIB)(trctrp_lec.o) \ 
     15289   daymod.F90 \ 
     15290   iom.F90 \ 
     15291   lib_mpp.F90 \ 
     15292   oce_trc.F90 \ 
     15293   trc.F90 \ 
     15294   trcrst_c14b.F90 \ 
     15295   trcrst_cfc.F90 \ 
     15296   trcrst_lobster.F90 \ 
     15297   trcrst_my_trc.F90 \ 
     15298   trcrst_pisces.F90 \ 
     15299   trctrp_lec.F90 \ 
     15300   domzgr_substitute.h90 \ 
     15301   ldfeiv_substitute.h90 \ 
     15302   ldftra_substitute.h90 \ 
     15303   top_substitute.h90 \ 
     15304   vectopt_loop_substitute.h90 \ 
     15305   KEY_CPP \ 
     15306   trcrst.F90 
     15307$(MODEL_LIB)(trcrst_c14b.o) : \ 
     15308   $(MODEL_LIB)(dianam.o) \ 
     15309   $(MODEL_LIB)(dom_oce.o) \ 
     15310   $(MODEL_LIB)(domngb.o) \ 
     15311   $(MODEL_LIB)(in_out_manager.o) \ 
     15312   $(MODEL_LIB)(iom.o) \ 
     15313   $(MODEL_LIB)(iom_def.o) \ 
     15314   $(MODEL_LIB)(iom_ioipsl.o) \ 
     15315   $(MODEL_LIB)(iom_nf90.o) \ 
     15316   $(MODEL_LIB)(iom_rstdimg.o) \ 
     15317   $(MODEL_LIB)(lbclnk.o) \ 
     15318   $(MODEL_LIB)(ldfslp.o) \ 
     15319   $(MODEL_LIB)(ldftra_oce.o) \ 
     15320   $(MODEL_LIB)(lib_mpp.o) \ 
     15321   $(MODEL_LIB)(lib_print.o) \ 
     15322   $(MODEL_LIB)(oce.o) \ 
     15323   $(MODEL_LIB)(oce_trc.o) \ 
     15324   $(MODEL_LIB)(par_c14b.o) \ 
     15325   $(MODEL_LIB)(par_cfc.o) \ 
     15326   $(MODEL_LIB)(par_kind.o) \ 
     15327   $(MODEL_LIB)(par_lobster.o) \ 
     15328   $(MODEL_LIB)(par_my_trc.o) \ 
     15329   $(MODEL_LIB)(par_oce.o) \ 
     15330   $(MODEL_LIB)(par_pisces.o) \ 
     15331   $(MODEL_LIB)(par_trc.o) \ 
     15332   $(MODEL_LIB)(phycst.o) \ 
    1512215333   $(MODEL_LIB)(sbc_oce.o) \ 
    1512315334   $(MODEL_LIB)(sbcrnf.o) \ 
     
    1512715338   $(MODEL_LIB)(trdmld_trc.o) \ 
    1512815339   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
    15129    $(MODEL_LIB)(trp_trc.o) \ 
    1513015340   $(MODEL_LIB)(zdf_oce.o) \ 
    1513115341   $(MODEL_LIB)(zdfddm.o) \ 
     
    1514115351   iom_rstdimg.F90 \ 
    1514215352   lbclnk.F90 \ 
    15143    lbcnfd.F90 \ 
    1514415353   ldfslp.F90 \ 
    1514515354   ldftra_oce.F90 \ 
    1514615355   lib_mpp.F90 \ 
     15356   lib_print.f90 \ 
    1514715357   oce.F90 \ 
    1514815358   oce_trc.F90 \ 
    15149    par_oce.F90 \ 
     15359   par_c14b.F90 \ 
     15360   par_cfc.F90 \ 
     15361   par_kind.F90 \ 
     15362   par_lobster.F90 \ 
     15363   par_my_trc.F90 \ 
     15364   par_oce.F90 \ 
     15365   par_pisces.F90 \ 
    1515015366   par_trc.F90 \ 
    1515115367   phycst.F90 \ 
     
    1515715373   trdmld_trc.F90 \ 
    1515815374   trdmld_trc_oce.F90 \ 
    15159    trp_trc.F90 \ 
    1516015375   zdf_oce.F90 \ 
    1516115376   zdfddm.F90 \ 
    1516215377   zdfmxl.F90 \ 
    15163    $(MODEL_LIB)(iom.o) \ 
    15164    $(MODEL_LIB)(lib_mpp.o) \ 
     15378   $(MODEL_LIB)(in_out_manager.o) \ 
     15379   $(MODEL_LIB)(iom.o) \ 
    1516515380   $(MODEL_LIB)(oce_trc.o) \ 
     15381   $(MODEL_LIB)(par_trc.o) \ 
     15382   $(MODEL_LIB)(trc.o) \ 
     15383   $(MODEL_LIB)(trcsms_c14b.o) \ 
     15384   in_out_manager.F90 \ 
     15385   iom.F90 \ 
     15386   oce_trc.F90 \ 
     15387   par_trc.F90 \ 
     15388   trc.F90 \ 
     15389   trcsms_c14b.F90 \ 
     15390   KEY_CPP \ 
     15391   trcrst_c14b.F90 
     15392$(MODEL_LIB)(trcrst_cfc.o) :  \ 
     15393   $(MODEL_LIB)(dianam.o) \ 
     15394   $(MODEL_LIB)(dom_oce.o) \ 
     15395   $(MODEL_LIB)(domngb.o) \ 
     15396   $(MODEL_LIB)(in_out_manager.o) \ 
     15397   $(MODEL_LIB)(iom.o) \ 
     15398   $(MODEL_LIB)(iom_def.o) \ 
     15399   $(MODEL_LIB)(iom_ioipsl.o) \ 
     15400   $(MODEL_LIB)(iom_nf90.o) \ 
     15401   $(MODEL_LIB)(iom_rstdimg.o) \ 
     15402   $(MODEL_LIB)(lbclnk.o) \ 
     15403   $(MODEL_LIB)(ldfslp.o) \ 
     15404   $(MODEL_LIB)(ldftra_oce.o) \ 
     15405   $(MODEL_LIB)(lib_mpp.o) \ 
     15406   $(MODEL_LIB)(lib_print.o) \ 
     15407   $(MODEL_LIB)(oce.o) \ 
     15408   $(MODEL_LIB)(oce_trc.o) \ 
     15409   $(MODEL_LIB)(par_c14b.o) \ 
     15410   $(MODEL_LIB)(par_cfc.o) \ 
     15411   $(MODEL_LIB)(par_kind.o) \ 
     15412   $(MODEL_LIB)(par_lobster.o) \ 
     15413   $(MODEL_LIB)(par_my_trc.o) \ 
     15414   $(MODEL_LIB)(par_oce.o) \ 
     15415   $(MODEL_LIB)(par_pisces.o) \ 
     15416   $(MODEL_LIB)(par_trc.o) \ 
     15417   $(MODEL_LIB)(phycst.o) \ 
     15418   $(MODEL_LIB)(sbc_oce.o) \ 
     15419   $(MODEL_LIB)(sbcrnf.o) \ 
     15420   $(MODEL_LIB)(trabbl.o) \ 
     15421   $(MODEL_LIB)(traqsr.o) \ 
     15422   $(MODEL_LIB)(trc.o) \ 
     15423   $(MODEL_LIB)(trdmld_trc.o) \ 
     15424   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     15425   $(MODEL_LIB)(zdf_oce.o) \ 
     15426   $(MODEL_LIB)(zdfddm.o) \ 
     15427   $(MODEL_LIB)(zdfmxl.o) \ 
     15428   dianam.F90 \ 
     15429   dom_oce.F90 \ 
     15430   domngb.F90 \ 
     15431   in_out_manager.F90 \ 
     15432   iom.F90 \ 
     15433   iom_def.F90 \ 
     15434   iom_ioipsl.F90 \ 
     15435   iom_nf90.F90 \ 
     15436   iom_rstdimg.F90 \ 
     15437   lbclnk.F90 \ 
     15438   ldfslp.F90 \ 
     15439   ldftra_oce.F90 \ 
     15440   lib_mpp.F90 \ 
     15441   lib_print.f90 \ 
     15442   oce.F90 \ 
     15443   oce_trc.F90 \ 
     15444   par_c14b.F90 \ 
     15445   par_cfc.F90 \ 
     15446   par_kind.F90 \ 
     15447   par_lobster.F90 \ 
     15448   par_my_trc.F90 \ 
     15449   par_oce.F90 \ 
     15450   par_pisces.F90 \ 
     15451   par_trc.F90 \ 
     15452   phycst.F90 \ 
     15453   sbc_oce.F90 \ 
     15454   sbcrnf.F90 \ 
     15455   trabbl.F90 \ 
     15456   traqsr.F90 \ 
     15457   trc.F90 \ 
     15458   trdmld_trc.F90 \ 
     15459   trdmld_trc_oce.F90 \ 
     15460   zdf_oce.F90 \ 
     15461   zdfddm.F90 \ 
     15462   zdfmxl.F90 \ 
     15463   $(MODEL_LIB)(in_out_manager.o) \ 
     15464   $(MODEL_LIB)(iom.o) \ 
     15465   $(MODEL_LIB)(oce_trc.o) \ 
     15466   $(MODEL_LIB)(par_trc.o) \ 
     15467   $(MODEL_LIB)(trc.o) \ 
     15468   $(MODEL_LIB)(trcsms_cfc.o) \ 
     15469   in_out_manager.F90 \ 
     15470   iom.F90 \ 
     15471   oce_trc.F90 \ 
     15472   par_trc.F90 \ 
     15473   trc.F90 \ 
     15474   trcsms_cfc.F90 \ 
     15475   KEY_CPP \ 
     15476   trcrst_cfc.F90 
     15477$(MODEL_LIB)(trcrst_lobster.o) : \ 
     15478   $(MODEL_LIB)(dianam.o) \ 
     15479   $(MODEL_LIB)(dom_oce.o) \ 
     15480   $(MODEL_LIB)(domngb.o) \ 
     15481   $(MODEL_LIB)(in_out_manager.o) \ 
     15482   $(MODEL_LIB)(iom_def.o) \ 
     15483   $(MODEL_LIB)(iom_ioipsl.o) \ 
     15484   $(MODEL_LIB)(iom_nf90.o) \ 
     15485   $(MODEL_LIB)(iom_rstdimg.o) \ 
     15486   $(MODEL_LIB)(lbclnk.o) \ 
     15487   $(MODEL_LIB)(ldfslp.o) \ 
     15488   $(MODEL_LIB)(ldftra_oce.o) \ 
     15489   $(MODEL_LIB)(lib_mpp.o) \ 
     15490   $(MODEL_LIB)(lib_print.o) \ 
     15491   $(MODEL_LIB)(oce.o) \ 
     15492   $(MODEL_LIB)(oce_trc.o) \ 
     15493   $(MODEL_LIB)(par_c14b.o) \ 
     15494   $(MODEL_LIB)(par_cfc.o) \ 
     15495   $(MODEL_LIB)(par_kind.o) \ 
     15496   $(MODEL_LIB)(par_lobster.o) \ 
     15497   $(MODEL_LIB)(par_my_trc.o) \ 
     15498   $(MODEL_LIB)(par_oce.o) \ 
     15499   $(MODEL_LIB)(par_pisces.o) \ 
     15500   $(MODEL_LIB)(par_trc.o) \ 
     15501   $(MODEL_LIB)(phycst.o) \ 
     15502   $(MODEL_LIB)(sbc_oce.o) \ 
     15503   $(MODEL_LIB)(sbcrnf.o) \ 
     15504   $(MODEL_LIB)(trabbl.o) \ 
     15505   $(MODEL_LIB)(traqsr.o) \ 
     15506   $(MODEL_LIB)(trc.o) \ 
     15507   $(MODEL_LIB)(trcbio.o) \ 
     15508   $(MODEL_LIB)(trcexp.o) \ 
     15509   $(MODEL_LIB)(trcopt.o) \ 
     15510   $(MODEL_LIB)(trcsed.o) \ 
     15511   $(MODEL_LIB)(trdmld_trc.o) \ 
     15512   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     15513   $(MODEL_LIB)(zdf_oce.o) \ 
     15514   $(MODEL_LIB)(zdfddm.o) \ 
     15515   $(MODEL_LIB)(zdfmxl.o) \ 
     15516   dianam.F90 \ 
     15517   dom_oce.F90 \ 
     15518   domngb.F90 \ 
     15519   in_out_manager.F90 \ 
     15520   iom_def.F90 \ 
     15521   iom_ioipsl.F90 \ 
     15522   iom_nf90.F90 \ 
     15523   iom_rstdimg.F90 \ 
     15524   lbclnk.F90 \ 
     15525   ldfslp.F90 \ 
     15526   ldftra_oce.F90 \ 
     15527   lib_mpp.F90 \ 
     15528   lib_print.f90 \ 
     15529   oce.F90 \ 
     15530   oce_trc.F90 \ 
     15531   par_c14b.F90 \ 
     15532   par_cfc.F90 \ 
     15533   par_kind.F90 \ 
     15534   par_lobster.F90 \ 
     15535   par_my_trc.F90 \ 
     15536   par_oce.F90 \ 
     15537   par_pisces.F90 \ 
     15538   par_trc.F90 \ 
     15539   phycst.F90 \ 
     15540   sbc_oce.F90 \ 
     15541   sbcrnf.F90 \ 
     15542   trabbl.F90 \ 
     15543   traqsr.F90 \ 
     15544   trc.F90 \ 
     15545   trcbio.F90 \ 
     15546   trcexp.F90 \ 
     15547   trcopt.F90 \ 
     15548   trcsed.F90 \ 
     15549   trdmld_trc.F90 \ 
     15550   trdmld_trc_oce.F90 \ 
     15551   zdf_oce.F90 \ 
     15552   zdfddm.F90 \ 
     15553   zdfmxl.F90 \ 
     15554   $(MODEL_LIB)(in_out_manager.o) \ 
     15555   $(MODEL_LIB)(iom.o) \ 
     15556   $(MODEL_LIB)(oce_trc.o) \ 
     15557   $(MODEL_LIB)(par_trc.o) \ 
    1516615558   $(MODEL_LIB)(sms_lobster.o) \ 
     15559   $(MODEL_LIB)(trc.o) \ 
     15560   $(MODEL_LIB)(trcsms_lobster.o) \ 
     15561   in_out_manager.F90 \ 
     15562   iom.F90 \ 
     15563   oce_trc.F90 \ 
     15564   par_trc.F90 \ 
     15565   sms_lobster.F90 \ 
     15566   trc.F90 \ 
     15567   trcsms_lobster.F90 \ 
     15568   KEY_CPP \ 
     15569   trcrst_lobster.F90 
     15570$(MODEL_LIB)(trcrst_my_trc.o) :  \ 
     15571   KEY_CPP \ 
     15572   trcrst_my_trc.F90 
     15573$(MODEL_LIB)(trcrst_pisces.o) :  \ 
     15574   $(MODEL_LIB)(dianam.o) \ 
     15575   $(MODEL_LIB)(dom_oce.o) \ 
     15576   $(MODEL_LIB)(domngb.o) \ 
     15577   $(MODEL_LIB)(in_out_manager.o) \ 
     15578   $(MODEL_LIB)(iom.o) \ 
     15579   $(MODEL_LIB)(iom_def.o) \ 
     15580   $(MODEL_LIB)(iom_ioipsl.o) \ 
     15581   $(MODEL_LIB)(iom_nf90.o) \ 
     15582   $(MODEL_LIB)(iom_rstdimg.o) \ 
     15583   $(MODEL_LIB)(lbclnk.o) \ 
     15584   $(MODEL_LIB)(ldfslp.o) \ 
     15585   $(MODEL_LIB)(ldftra_oce.o) \ 
     15586   $(MODEL_LIB)(lib_mpp.o) \ 
     15587   $(MODEL_LIB)(lib_print.o) \ 
     15588   $(MODEL_LIB)(oce.o) \ 
     15589   $(MODEL_LIB)(oce_trc.o) \ 
     15590   $(MODEL_LIB)(p4zbio.o) \ 
     15591   $(MODEL_LIB)(p4zche.o) \ 
     15592   $(MODEL_LIB)(p4zflx.o) \ 
     15593   $(MODEL_LIB)(p4zint.o) \ 
     15594   $(MODEL_LIB)(p4zlys.o) \ 
     15595   $(MODEL_LIB)(p4zsed.o) \ 
     15596   $(MODEL_LIB)(par_c14b.o) \ 
     15597   $(MODEL_LIB)(par_cfc.o) \ 
     15598   $(MODEL_LIB)(par_kind.o) \ 
     15599   $(MODEL_LIB)(par_lobster.o) \ 
     15600   $(MODEL_LIB)(par_my_trc.o) \ 
     15601   $(MODEL_LIB)(par_oce.o) \ 
     15602   $(MODEL_LIB)(par_pisces.o) \ 
     15603   $(MODEL_LIB)(par_trc.o) \ 
     15604   $(MODEL_LIB)(phycst.o) \ 
     15605   $(MODEL_LIB)(sbc_oce.o) \ 
     15606   $(MODEL_LIB)(sbcrnf.o) \ 
     15607   $(MODEL_LIB)(sedmodel.o) \ 
     15608   $(MODEL_LIB)(sms_pisces.o) \ 
     15609   $(MODEL_LIB)(trabbl.o) \ 
     15610   $(MODEL_LIB)(traqsr.o) \ 
     15611   $(MODEL_LIB)(trc.o) \ 
     15612   $(MODEL_LIB)(trdmld_trc.o) \ 
     15613   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     15614   $(MODEL_LIB)(zdf_oce.o) \ 
     15615   $(MODEL_LIB)(zdfddm.o) \ 
     15616   $(MODEL_LIB)(zdfmxl.o) \ 
     15617   dianam.F90 \ 
     15618   dom_oce.F90 \ 
     15619   domngb.F90 \ 
     15620   in_out_manager.F90 \ 
     15621   iom.F90 \ 
     15622   iom_def.F90 \ 
     15623   iom_ioipsl.F90 \ 
     15624   iom_nf90.F90 \ 
     15625   iom_rstdimg.F90 \ 
     15626   lbclnk.F90 \ 
     15627   ldfslp.F90 \ 
     15628   ldftra_oce.F90 \ 
     15629   lib_mpp.F90 \ 
     15630   lib_print.f90 \ 
     15631   oce.F90 \ 
     15632   oce_trc.F90 \ 
     15633   p4zbio.F90 \ 
     15634   p4zche.F90 \ 
     15635   p4zflx.F90 \ 
     15636   p4zint.F90 \ 
     15637   p4zlys.F90 \ 
     15638   p4zsed.F90 \ 
     15639   par_c14b.F90 \ 
     15640   par_cfc.F90 \ 
     15641   par_kind.F90 \ 
     15642   par_lobster.F90 \ 
     15643   par_my_trc.F90 \ 
     15644   par_oce.F90 \ 
     15645   par_pisces.F90 \ 
     15646   par_trc.F90 \ 
     15647   phycst.F90 \ 
     15648   sbc_oce.F90 \ 
     15649   sbcrnf.F90 \ 
     15650   sedmodel.F90 \ 
     15651   sms_pisces.F90 \ 
     15652   trabbl.F90 \ 
     15653   traqsr.F90 \ 
     15654   trc.F90 \ 
     15655   trdmld_trc.F90 \ 
     15656   trdmld_trc_oce.F90 \ 
     15657   zdf_oce.F90 \ 
     15658   zdfddm.F90 \ 
     15659   zdfmxl.F90 \ 
     15660   $(MODEL_LIB)(in_out_manager.o) \ 
     15661   $(MODEL_LIB)(iom.o) \ 
     15662   $(MODEL_LIB)(oce_trc.o) \ 
     15663   $(MODEL_LIB)(par_trc.o) \ 
    1516715664   $(MODEL_LIB)(sms_pisces.o) \ 
    1516815665   $(MODEL_LIB)(trc.o) \ 
    15169    $(MODEL_LIB)(trcsms_c14b.o) \ 
    15170    $(MODEL_LIB)(trcsms_cfc.o) \ 
    15171    $(MODEL_LIB)(trcsms_my_trc.o) \ 
    15172    $(MODEL_LIB)(trctrp_lec.o) \ 
    15173    iom.F90 \ 
    15174    lib_mpp.F90 \ 
     15666   $(MODEL_LIB)(trcdta.o) \ 
     15667   $(MODEL_LIB)(trcsms_pisces.o) \ 
     15668   in_out_manager.F90 \ 
     15669   iom.F90 \ 
    1517515670   oce_trc.F90 \ 
    15176    sms_lobster.F90 \ 
     15671   par_trc.F90 \ 
    1517715672   sms_pisces.F90 \ 
    1517815673   trc.F90 \ 
    15179    trcsms_c14b.F90 \ 
    15180    trcsms_cfc.F90 \ 
    15181    trcsms_my_trc.F90 \ 
    15182    trctrp_lec.F90 \ 
    15183    domzgr_substitute.h90 \ 
    15184    ldfeiv_substitute.h90 \ 
    15185    ldftra_substitute.h90 \ 
    15186    top_substitute.h90 \ 
    15187    vectopt_loop_substitute.h90 \ 
    15188    KEY_CPP \ 
    15189    trcrst.F90 
     15674   trcdta.F90 \ 
     15675   trcsms_pisces.F90 \ 
     15676   KEY_CPP \ 
     15677   trcrst_pisces.F90 
    1519015678$(MODEL_LIB)(trcsbc.o) :   \ 
    1519115679   $(MODEL_LIB)(dianam.o) \ 
     
    1534415832   trdmld_trc_oce.F90 \ 
    1534515833   domzgr_substitute.h90 \ 
     15834   ldfeiv_substitute.h90 \ 
     15835   ldftra_substitute.h90 \ 
     15836   top_substitute.h90 \ 
     15837   vectopt_loop_substitute.h90 \ 
    1534615838   KEY_CPP \ 
    1534715839   trcsed.F90 
     
    1590416396$(MODEL_LIB)(trcstp.o) :   \ 
    1590516397   $(MODEL_LIB)(agrif_top_sponge.o) \ 
     16398   $(MODEL_LIB)(daymod.o) \ 
    1590616399   $(MODEL_LIB)(dianam.o) \ 
    1590716400   $(MODEL_LIB)(dom_oce.o) \ 
     
    1594716440   $(MODEL_LIB)(trcnxt.o) \ 
    1594816441   $(MODEL_LIB)(trcrad.o) \ 
     16442   $(MODEL_LIB)(trcrst_c14b.o) \ 
     16443   $(MODEL_LIB)(trcrst_cfc.o) \ 
     16444   $(MODEL_LIB)(trcrst_lobster.o) \ 
     16445   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     16446   $(MODEL_LIB)(trcrst_pisces.o) \ 
    1594916447   $(MODEL_LIB)(trcsbc.o) \ 
    1595016448   $(MODEL_LIB)(trcsms_c14b.o) \ 
     
    1596616464   $(MODEL_LIB)(zpshde_trc.o) \ 
    1596716465   agrif_top_sponge.F90 \ 
     16466   daymod.F90 \ 
    1596816467   dianam.F90 \ 
    1596916468   dom_oce.F90 \ 
     
    1600916508   trcnxt.F90 \ 
    1601016509   trcrad.F90 \ 
     16510   trcrst_c14b.F90 \ 
     16511   trcrst_cfc.F90 \ 
     16512   trcrst_lobster.F90 \ 
     16513   trcrst_my_trc.F90 \ 
     16514   trcrst_pisces.F90 \ 
    1601116515   trcsbc.F90 \ 
    1601216516   trcsms_c14b.F90 \ 
     
    1616916673   zpshde_trc.F90 \ 
    1617016674   domzgr_substitute.h90 \ 
     16675   ldfeiv_substitute.h90 \ 
     16676   ldftra_substitute.h90 \ 
     16677   top_substitute.h90 \ 
     16678   vectopt_loop_substitute.h90 \ 
    1617116679   $(AGRIF_LIB) \ 
    1617216680   KEY_CPP \ 
     
    1628116789   $(MODEL_LIB)(trabbl.o) \ 
    1628216790   $(MODEL_LIB)(traqsr.o) \ 
     16791   $(MODEL_LIB)(trc.o) \ 
    1628316792   $(MODEL_LIB)(zdf_oce.o) \ 
    1628416793   $(MODEL_LIB)(zdfddm.o) \ 
     
    1630416813   trabbl.F90 \ 
    1630516814   traqsr.F90 \ 
     16815   trc.F90 \ 
    1630616816   zdf_oce.F90 \ 
    1630716817   zdfddm.F90 \ 
    1630816818   zdfmxl.F90 \ 
    1630916819   $(MODEL_LIB)(dianam.o) \ 
     16820   $(MODEL_LIB)(dom_oce.o) \ 
    1631016821   $(MODEL_LIB)(iom.o) \ 
    1631116822   $(MODEL_LIB)(oce_trc.o) \ 
    1631216823   $(MODEL_LIB)(trc.o) \ 
     16824   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     16825   $(MODEL_LIB)(trp_trc.o) \ 
    1631316826   dianam.F90 \ 
     16827   dom_oce.F90 \ 
    1631416828   iom.F90 \ 
    1631516829   oce_trc.F90 \ 
    1631616830   trc.F90 \ 
     16831   trdmld_trc_oce.F90 \ 
     16832   trp_trc.F90 \ 
    1631716833   domzgr_substitute.h90 \ 
    1631816834   ldfeiv_substitute.h90 \ 
     
    1669317209$(MODEL_LIB)(trdmld.o) :   \ 
    1669417210   $(MODEL_LIB)(c1d.o) \ 
     17211   $(MODEL_LIB)(daymod.o) \ 
    1669517212   $(MODEL_LIB)(dom_oce.o) \ 
    1669617213   $(MODEL_LIB)(eosbn2.o) \ 
     
    1671817235   $(MODEL_LIB)(zpshde.o) \ 
    1671917236   c1d.F90 \ 
     17237   daymod.F90 \ 
    1672017238   dom_oce.F90 \ 
    1672117239   eosbn2.F90 \ 
  • branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM_PISCES/scripts/BB_make.ldef

    r1791 r2201  
    3434#- 
    3535#- Prefix for preprocessing --- 
     36prefix = -D 
    3637#-Q- sx8mercure prefix = -D 
    3738#-Q- sx9mercure prefix = -D 
  • branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_OFF_PISCES/scripts/BB_make

    r1791 r2201  
    77#          Check your compilers option in consequence when using real F95 compilers 
    88 
     9F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 
     10L_X = $(L_O) 
    911#-Q- platine # Compiler options NEMO (CCRT Itanium Bull)  
    1012#-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC)  
     
    101103 
    102104#check key compatibility 
    103 keycompat=$(if $(and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
     105keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
    104106 
    105107KEY_LIST = \ 
     
    298300      $(MODEL_LIB)(trcrad.o)\ 
    299301      $(MODEL_LIB)(trcrst.o)\ 
     302      $(MODEL_LIB)(trcrst_c14b.o)\ 
     303      $(MODEL_LIB)(trcrst_cfc.o)\ 
     304      $(MODEL_LIB)(trcrst_lobster.o)\ 
     305      $(MODEL_LIB)(trcrst_my_trc.o)\ 
     306      $(MODEL_LIB)(trcrst_pisces.o)\ 
    300307      $(MODEL_LIB)(trcsbc.o)\ 
    301308      $(MODEL_LIB)(trcsed.o)\ 
     
    364371 
    365372# Agrif library and conv 
    366 libagrif :  $(call keycompat,key_iomput,key_agrif) 
     373libagrif : 
    367374ifeq ($(AGRIF),use) 
    368375   @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) 
     
    15071514   trc.F90 \ 
    15081515   domzgr_substitute.h90 \ 
     1516   ldfeiv_substitute.h90 \ 
     1517   ldftra_substitute.h90 \ 
     1518   top_substitute.h90 \ 
     1519   vectopt_loop_substitute.h90 \ 
    15091520   KEY_CPP \ 
    15101521   p4zbio.F90 
     
    15491560   trc.F90 \ 
    15501561   domzgr_substitute.h90 \ 
     1562   ldfeiv_substitute.h90 \ 
     1563   ldftra_substitute.h90 \ 
     1564   top_substitute.h90 \ 
     1565   vectopt_loop_substitute.h90 \ 
    15511566   KEY_CPP \ 
    15521567   p4zche.F90 
     
    16211636   trc.F90 \ 
    16221637   domzgr_substitute.h90 \ 
     1638   ldfeiv_substitute.h90 \ 
     1639   ldftra_substitute.h90 \ 
     1640   top_substitute.h90 \ 
     1641   vectopt_loop_substitute.h90 \ 
    16231642   KEY_CPP \ 
    16241643   p4zflx.F90 
     
    17041723   trc.F90 \ 
    17051724   domzgr_substitute.h90 \ 
     1725   ldfeiv_substitute.h90 \ 
     1726   ldftra_substitute.h90 \ 
     1727   top_substitute.h90 \ 
     1728   vectopt_loop_substitute.h90 \ 
    17061729   KEY_CPP \ 
    17071730   p4zlim.F90 
     
    18391862   trc.F90 \ 
    18401863   domzgr_substitute.h90 \ 
     1864   ldfeiv_substitute.h90 \ 
     1865   ldftra_substitute.h90 \ 
     1866   top_substitute.h90 \ 
     1867   vectopt_loop_substitute.h90 \ 
    18411868   KEY_CPP \ 
    18421869   p4zmeso.F90 
     
    19131940   trc.F90 \ 
    19141941   domzgr_substitute.h90 \ 
     1942   ldfeiv_substitute.h90 \ 
     1943   ldftra_substitute.h90 \ 
     1944   top_substitute.h90 \ 
     1945   vectopt_loop_substitute.h90 \ 
    19151946   KEY_CPP \ 
    19161947   p4zmicro.F90 
     
    19692000   trc.F90 \ 
    19702001   domzgr_substitute.h90 \ 
     2002   ldfeiv_substitute.h90 \ 
     2003   ldftra_substitute.h90 \ 
     2004   top_substitute.h90 \ 
     2005   vectopt_loop_substitute.h90 \ 
    19712006   KEY_CPP \ 
    19722007   p4zmort.F90 
     
    20292064   trc_oce.F90 \ 
    20302065   domzgr_substitute.h90 \ 
     2066   ldfeiv_substitute.h90 \ 
     2067   ldftra_substitute.h90 \ 
     2068   top_substitute.h90 \ 
     2069   vectopt_loop_substitute.h90 \ 
    20312070   KEY_CPP \ 
    20322071   p4zopt.F90 
     
    21072146   trc.F90 \ 
    21082147   domzgr_substitute.h90 \ 
     2148   ldfeiv_substitute.h90 \ 
     2149   ldftra_substitute.h90 \ 
     2150   top_substitute.h90 \ 
     2151   vectopt_loop_substitute.h90 \ 
    21092152   KEY_CPP \ 
    21102153   p4zprod.F90 
     
    21812224   trc.F90 \ 
    21822225   domzgr_substitute.h90 \ 
     2226   ldfeiv_substitute.h90 \ 
     2227   ldftra_substitute.h90 \ 
     2228   top_substitute.h90 \ 
     2229   vectopt_loop_substitute.h90 \ 
    21832230   KEY_CPP \ 
    21842231   p4zrem.F90 
     
    23552402   trc.F90 \ 
    23562403   domzgr_substitute.h90 \ 
     2404   ldfeiv_substitute.h90 \ 
     2405   ldftra_substitute.h90 \ 
     2406   top_substitute.h90 \ 
     2407   vectopt_loop_substitute.h90 \ 
    23572408   KEY_CPP \ 
    23582409   p4zsink.F90 
     
    30973148   sol_oce.F90 
    30983149$(MODEL_LIB)(step.o) :  \ 
     3150   $(MODEL_LIB)(daymod.o) \ 
    30993151   $(MODEL_LIB)(dianam.o) \ 
    31003152   $(MODEL_LIB)(dom_oce.o) \ 
     
    31173169   $(MODEL_LIB)(par_kind.o) \ 
    31183170   $(MODEL_LIB)(par_oce.o) \ 
     3171   $(MODEL_LIB)(par_trc.o) \ 
    31193172   $(MODEL_LIB)(phycst.o) \ 
    31203173   $(MODEL_LIB)(prtctl.o) \ 
    31213174   $(MODEL_LIB)(prtctl_trc.o) \ 
    31223175   $(MODEL_LIB)(sbc_oce.o) \ 
    3123    $(MODEL_LIB)(sms_lobster.o) \ 
    3124    $(MODEL_LIB)(sms_pisces.o) \ 
    31253176   $(MODEL_LIB)(trabbl.o) \ 
    31263177   $(MODEL_LIB)(trc.o) \ 
    31273178   $(MODEL_LIB)(trcdia.o) \ 
    31283179   $(MODEL_LIB)(trcrst.o) \ 
     3180   $(MODEL_LIB)(trcrst_c14b.o) \ 
     3181   $(MODEL_LIB)(trcrst_cfc.o) \ 
     3182   $(MODEL_LIB)(trcrst_lobster.o) \ 
     3183   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     3184   $(MODEL_LIB)(trcrst_pisces.o) \ 
    31293185   $(MODEL_LIB)(trcsms.o) \ 
    3130    $(MODEL_LIB)(trcsms_c14b.o) \ 
    3131    $(MODEL_LIB)(trcsms_cfc.o) \ 
    3132    $(MODEL_LIB)(trcsms_my_trc.o) \ 
    31333186   $(MODEL_LIB)(trctrp.o) \ 
    31343187   $(MODEL_LIB)(trctrp_lec.o) \ 
     
    31413194   $(MODEL_LIB)(zdfmxl.o) \ 
    31423195   $(MODEL_LIB)(zpshde.o) \ 
     3196   daymod.F90 \ 
    31433197   dianam.F90 \ 
    31443198   dom_oce.F90 \ 
     
    31613215   par_kind.F90 \ 
    31623216   par_oce.F90 \ 
     3217   par_trc.F90 \ 
    31633218   phycst.F90 \ 
    31643219   prtctl.F90 \ 
    31653220   prtctl_trc.F90 \ 
    31663221   sbc_oce.F90 \ 
    3167    sms_lobster.F90 \ 
    3168    sms_pisces.F90 \ 
    31693222   trabbl.F90 \ 
    31703223   trc.F90 \ 
    31713224   trcdia.F90 \ 
    31723225   trcrst.F90 \ 
     3226   trcrst_c14b.F90 \ 
     3227   trcrst_cfc.F90 \ 
     3228   trcrst_lobster.F90 \ 
     3229   trcrst_my_trc.F90 \ 
     3230   trcrst_pisces.F90 \ 
    31733231   trcsms.F90 \ 
    3174    trcsms_c14b.F90 \ 
    3175    trcsms_cfc.F90 \ 
    3176    trcsms_my_trc.F90 \ 
    31773232   trctrp.F90 \ 
    31783233   trctrp_lec.F90 \ 
     
    42314286   $(MODEL_LIB)(lib_print.o) \ 
    42324287   $(MODEL_LIB)(oce.o) \ 
     4288   $(MODEL_LIB)(par_c14b.o) \ 
     4289   $(MODEL_LIB)(par_cfc.o) \ 
    42334290   $(MODEL_LIB)(par_kind.o) \ 
    4234    $(MODEL_LIB)(par_oce.o) \ 
     4291   $(MODEL_LIB)(par_lobster.o) \ 
     4292   $(MODEL_LIB)(par_my_trc.o) \ 
     4293   $(MODEL_LIB)(par_oce.o) \ 
     4294   $(MODEL_LIB)(par_pisces.o) \ 
    42354295   $(MODEL_LIB)(par_trc.o) \ 
    42364296   $(MODEL_LIB)(phycst.o) \ 
     
    42504310   lib_print.f90 \ 
    42514311   oce.F90 \ 
     4312   par_c14b.F90 \ 
     4313   par_cfc.F90 \ 
    42524314   par_kind.F90 \ 
    4253    par_oce.F90 \ 
     4315   par_lobster.F90 \ 
     4316   par_my_trc.F90 \ 
     4317   par_oce.F90 \ 
     4318   par_pisces.F90 \ 
    42544319   par_trc.F90 \ 
    42554320   phycst.F90 \ 
     
    42674332   $(MODEL_LIB)(lib_mpp.o) \ 
    42684333   $(MODEL_LIB)(oce_trc.o) \ 
     4334   $(MODEL_LIB)(par_trc.o) \ 
    42694335   $(MODEL_LIB)(trc.o) \ 
    42704336   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     
    42754341   lib_mpp.F90 \ 
    42764342   oce_trc.F90 \ 
     4343   par_trc.F90 \ 
    42774344   trc.F90 \ 
    42784345   trdmld_trc_oce.F90 \ 
     
    45484615   trcexp.F90 
    45494616$(MODEL_LIB)(trcini.o) :   \ 
     4617   $(MODEL_LIB)(daymod.o) \ 
    45504618   $(MODEL_LIB)(dom_oce.o) \ 
    45514619   $(MODEL_LIB)(in_out_manager.o) \ 
     
    45814649   $(MODEL_LIB)(trclsm_my_trc.o) \ 
    45824650   $(MODEL_LIB)(trclsm_pisces.o) \ 
     4651   $(MODEL_LIB)(trcrst_c14b.o) \ 
     4652   $(MODEL_LIB)(trcrst_cfc.o) \ 
     4653   $(MODEL_LIB)(trcrst_lobster.o) \ 
     4654   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     4655   $(MODEL_LIB)(trcrst_pisces.o) \ 
    45834656   $(MODEL_LIB)(trcsms_c14b.o) \ 
    45844657   $(MODEL_LIB)(trcsms_cfc.o) \ 
    4585    $(MODEL_LIB)(trcsms_my_trc.o) \ 
    45864658   $(MODEL_LIB)(trctrp_ctl.o) \ 
    45874659   $(MODEL_LIB)(trctrp_lec.o) \ 
     
    45914663   $(MODEL_LIB)(zdfddm.o) \ 
    45924664   $(MODEL_LIB)(zdfmxl.o) \ 
     4665   daymod.F90 \ 
    45934666   dom_oce.F90 \ 
    45944667   in_out_manager.F90 \ 
     
    46244697   trclsm_my_trc.F90 \ 
    46254698   trclsm_pisces.F90 \ 
     4699   trcrst_c14b.F90 \ 
     4700   trcrst_cfc.F90 \ 
     4701   trcrst_lobster.F90 \ 
     4702   trcrst_my_trc.F90 \ 
     4703   trcrst_pisces.F90 \ 
    46264704   trcsms_c14b.F90 \ 
    46274705   trcsms_cfc.F90 \ 
    4628    trcsms_my_trc.F90 \ 
    46294706   trctrp_ctl.F90 \ 
    46304707   trctrp_lec.F90 \ 
     
    58695946   trc.F90 \ 
    58705947   domzgr_substitute.h90 \ 
     5948   ldfeiv_substitute.h90 \ 
     5949   ldftra_substitute.h90 \ 
     5950   top_substitute.h90 \ 
     5951   vectopt_loop_substitute.h90 \ 
    58715952   KEY_CPP \ 
    58725953   trcopt.F90 
     
    59646045   $(MODEL_LIB)(par_trc.o) \ 
    59656046   $(MODEL_LIB)(phycst.o) \ 
     6047   $(MODEL_LIB)(prtctl.o) \ 
    59666048   $(MODEL_LIB)(sbc_oce.o) \ 
    59676049   $(MODEL_LIB)(sbcrnf.o) \ 
     6050   $(MODEL_LIB)(sms_lobster.o) \ 
     6051   $(MODEL_LIB)(sms_pisces.o) \ 
    59686052   $(MODEL_LIB)(trabbl.o) \ 
    59696053   $(MODEL_LIB)(traqsr.o) \ 
    59706054   $(MODEL_LIB)(trc.o) \ 
    5971    $(MODEL_LIB)(trdmld_trc.o) \ 
    5972    $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     6055   $(MODEL_LIB)(trcdta.o) \ 
     6056   $(MODEL_LIB)(trcsms_c14b.o) \ 
     6057   $(MODEL_LIB)(trcsms_cfc.o) \ 
     6058   $(MODEL_LIB)(trcsms_lobster.o) \ 
     6059   $(MODEL_LIB)(trcsms_pisces.o) \ 
    59736060   $(MODEL_LIB)(trp_trc.o) \ 
    59746061   $(MODEL_LIB)(zdf_oce.o) \ 
     
    59936080   par_trc.F90 \ 
    59946081   phycst.F90 \ 
     6082   prtctl.F90 \ 
    59956083   sbc_oce.F90 \ 
    59966084   sbcrnf.F90 \ 
     6085   sms_lobster.F90 \ 
     6086   sms_pisces.F90 \ 
    59976087   trabbl.F90 \ 
    59986088   traqsr.F90 \ 
    59996089   trc.F90 \ 
    6000    trdmld_trc.F90 \ 
    6001    trdmld_trc_oce.F90 \ 
    6002    trp_trc.F90 \ 
    6003    zdf_oce.F90 \ 
    6004    zdfddm.F90 \ 
    6005    zdfmxl.F90 \ 
    6006    $(MODEL_LIB)(iom.o) \ 
    6007    $(MODEL_LIB)(lib_mpp.o) \ 
    6008    $(MODEL_LIB)(oce_trc.o) \ 
    6009    $(MODEL_LIB)(sms_lobster.o) \ 
    6010    $(MODEL_LIB)(sms_pisces.o) \ 
    6011    $(MODEL_LIB)(trc.o) \ 
    6012    $(MODEL_LIB)(trcsms_c14b.o) \ 
    6013    $(MODEL_LIB)(trcsms_cfc.o) \ 
    6014    $(MODEL_LIB)(trcsms_my_trc.o) \ 
    6015    $(MODEL_LIB)(trctrp_lec.o) \ 
    6016    iom.F90 \ 
    6017    lib_mpp.F90 \ 
    6018    oce_trc.F90 \ 
    6019    sms_lobster.F90 \ 
    6020    sms_pisces.F90 \ 
    6021    trc.F90 \ 
     6090   trcdta.F90 \ 
    60226091   trcsms_c14b.F90 \ 
    60236092   trcsms_cfc.F90 \ 
    6024    trcsms_my_trc.F90 \ 
     6093   trcsms_lobster.F90 \ 
     6094   trcsms_pisces.F90 \ 
     6095   trp_trc.F90 \ 
     6096   zdf_oce.F90 \ 
     6097   zdfddm.F90 \ 
     6098   zdfmxl.F90 \ 
     6099   $(MODEL_LIB)(daymod.o) \ 
     6100   $(MODEL_LIB)(iom.o) \ 
     6101   $(MODEL_LIB)(lib_mpp.o) \ 
     6102   $(MODEL_LIB)(oce_trc.o) \ 
     6103   $(MODEL_LIB)(trc.o) \ 
     6104   $(MODEL_LIB)(trcrst_c14b.o) \ 
     6105   $(MODEL_LIB)(trcrst_cfc.o) \ 
     6106   $(MODEL_LIB)(trcrst_lobster.o) \ 
     6107   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     6108   $(MODEL_LIB)(trcrst_pisces.o) \ 
     6109   $(MODEL_LIB)(trctrp_lec.o) \ 
     6110   daymod.F90 \ 
     6111   iom.F90 \ 
     6112   lib_mpp.F90 \ 
     6113   oce_trc.F90 \ 
     6114   trc.F90 \ 
     6115   trcrst_c14b.F90 \ 
     6116   trcrst_cfc.F90 \ 
     6117   trcrst_lobster.F90 \ 
     6118   trcrst_my_trc.F90 \ 
     6119   trcrst_pisces.F90 \ 
    60256120   trctrp_lec.F90 \ 
    60266121   domzgr_substitute.h90 \ 
     
    60316126   KEY_CPP \ 
    60326127   trcrst.F90 
     6128$(MODEL_LIB)(trcrst_c14b.o) : \ 
     6129   $(MODEL_LIB)(dianam.o) \ 
     6130   $(MODEL_LIB)(dom_oce.o) \ 
     6131   $(MODEL_LIB)(domngb.o) \ 
     6132   $(MODEL_LIB)(in_out_manager.o) \ 
     6133   $(MODEL_LIB)(iom.o) \ 
     6134   $(MODEL_LIB)(iom_def.o) \ 
     6135   $(MODEL_LIB)(iom_ioipsl.o) \ 
     6136   $(MODEL_LIB)(iom_nf90.o) \ 
     6137   $(MODEL_LIB)(iom_rstdimg.o) \ 
     6138   $(MODEL_LIB)(lbclnk.o) \ 
     6139   $(MODEL_LIB)(ldfslp.o) \ 
     6140   $(MODEL_LIB)(ldftra_oce.o) \ 
     6141   $(MODEL_LIB)(lib_mpp.o) \ 
     6142   $(MODEL_LIB)(lib_print.o) \ 
     6143   $(MODEL_LIB)(oce.o) \ 
     6144   $(MODEL_LIB)(oce_trc.o) \ 
     6145   $(MODEL_LIB)(par_c14b.o) \ 
     6146   $(MODEL_LIB)(par_cfc.o) \ 
     6147   $(MODEL_LIB)(par_kind.o) \ 
     6148   $(MODEL_LIB)(par_lobster.o) \ 
     6149   $(MODEL_LIB)(par_my_trc.o) \ 
     6150   $(MODEL_LIB)(par_oce.o) \ 
     6151   $(MODEL_LIB)(par_pisces.o) \ 
     6152   $(MODEL_LIB)(par_trc.o) \ 
     6153   $(MODEL_LIB)(phycst.o) \ 
     6154   $(MODEL_LIB)(sbc_oce.o) \ 
     6155   $(MODEL_LIB)(sbcrnf.o) \ 
     6156   $(MODEL_LIB)(trabbl.o) \ 
     6157   $(MODEL_LIB)(traqsr.o) \ 
     6158   $(MODEL_LIB)(trc.o) \ 
     6159   $(MODEL_LIB)(trdmld_trc.o) \ 
     6160   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     6161   $(MODEL_LIB)(zdf_oce.o) \ 
     6162   $(MODEL_LIB)(zdfddm.o) \ 
     6163   $(MODEL_LIB)(zdfmxl.o) \ 
     6164   dianam.F90 \ 
     6165   dom_oce.F90 \ 
     6166   domngb.F90 \ 
     6167   in_out_manager.F90 \ 
     6168   iom.F90 \ 
     6169   iom_def.F90 \ 
     6170   iom_ioipsl.F90 \ 
     6171   iom_nf90.F90 \ 
     6172   iom_rstdimg.F90 \ 
     6173   lbclnk.F90 \ 
     6174   ldfslp.F90 \ 
     6175   ldftra_oce.F90 \ 
     6176   lib_mpp.F90 \ 
     6177   lib_print.f90 \ 
     6178   oce.F90 \ 
     6179   oce_trc.F90 \ 
     6180   par_c14b.F90 \ 
     6181   par_cfc.F90 \ 
     6182   par_kind.F90 \ 
     6183   par_lobster.F90 \ 
     6184   par_my_trc.F90 \ 
     6185   par_oce.F90 \ 
     6186   par_pisces.F90 \ 
     6187   par_trc.F90 \ 
     6188   phycst.F90 \ 
     6189   sbc_oce.F90 \ 
     6190   sbcrnf.F90 \ 
     6191   trabbl.F90 \ 
     6192   traqsr.F90 \ 
     6193   trc.F90 \ 
     6194   trdmld_trc.F90 \ 
     6195   trdmld_trc_oce.F90 \ 
     6196   zdf_oce.F90 \ 
     6197   zdfddm.F90 \ 
     6198   zdfmxl.F90 \ 
     6199   $(MODEL_LIB)(in_out_manager.o) \ 
     6200   $(MODEL_LIB)(iom.o) \ 
     6201   $(MODEL_LIB)(oce_trc.o) \ 
     6202   $(MODEL_LIB)(par_trc.o) \ 
     6203   $(MODEL_LIB)(trc.o) \ 
     6204   $(MODEL_LIB)(trcsms_c14b.o) \ 
     6205   in_out_manager.F90 \ 
     6206   iom.F90 \ 
     6207   oce_trc.F90 \ 
     6208   par_trc.F90 \ 
     6209   trc.F90 \ 
     6210   trcsms_c14b.F90 \ 
     6211   KEY_CPP \ 
     6212   trcrst_c14b.F90 
     6213$(MODEL_LIB)(trcrst_cfc.o) :  \ 
     6214   $(MODEL_LIB)(dianam.o) \ 
     6215   $(MODEL_LIB)(dom_oce.o) \ 
     6216   $(MODEL_LIB)(domngb.o) \ 
     6217   $(MODEL_LIB)(in_out_manager.o) \ 
     6218   $(MODEL_LIB)(iom.o) \ 
     6219   $(MODEL_LIB)(iom_def.o) \ 
     6220   $(MODEL_LIB)(iom_ioipsl.o) \ 
     6221   $(MODEL_LIB)(iom_nf90.o) \ 
     6222   $(MODEL_LIB)(iom_rstdimg.o) \ 
     6223   $(MODEL_LIB)(lbclnk.o) \ 
     6224   $(MODEL_LIB)(ldfslp.o) \ 
     6225   $(MODEL_LIB)(ldftra_oce.o) \ 
     6226   $(MODEL_LIB)(lib_mpp.o) \ 
     6227   $(MODEL_LIB)(lib_print.o) \ 
     6228   $(MODEL_LIB)(oce.o) \ 
     6229   $(MODEL_LIB)(oce_trc.o) \ 
     6230   $(MODEL_LIB)(par_c14b.o) \ 
     6231   $(MODEL_LIB)(par_cfc.o) \ 
     6232   $(MODEL_LIB)(par_kind.o) \ 
     6233   $(MODEL_LIB)(par_lobster.o) \ 
     6234   $(MODEL_LIB)(par_my_trc.o) \ 
     6235   $(MODEL_LIB)(par_oce.o) \ 
     6236   $(MODEL_LIB)(par_pisces.o) \ 
     6237   $(MODEL_LIB)(par_trc.o) \ 
     6238   $(MODEL_LIB)(phycst.o) \ 
     6239   $(MODEL_LIB)(sbc_oce.o) \ 
     6240   $(MODEL_LIB)(sbcrnf.o) \ 
     6241   $(MODEL_LIB)(trabbl.o) \ 
     6242   $(MODEL_LIB)(traqsr.o) \ 
     6243   $(MODEL_LIB)(trc.o) \ 
     6244   $(MODEL_LIB)(trdmld_trc.o) \ 
     6245   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     6246   $(MODEL_LIB)(zdf_oce.o) \ 
     6247   $(MODEL_LIB)(zdfddm.o) \ 
     6248   $(MODEL_LIB)(zdfmxl.o) \ 
     6249   dianam.F90 \ 
     6250   dom_oce.F90 \ 
     6251   domngb.F90 \ 
     6252   in_out_manager.F90 \ 
     6253   iom.F90 \ 
     6254   iom_def.F90 \ 
     6255   iom_ioipsl.F90 \ 
     6256   iom_nf90.F90 \ 
     6257   iom_rstdimg.F90 \ 
     6258   lbclnk.F90 \ 
     6259   ldfslp.F90 \ 
     6260   ldftra_oce.F90 \ 
     6261   lib_mpp.F90 \ 
     6262   lib_print.f90 \ 
     6263   oce.F90 \ 
     6264   oce_trc.F90 \ 
     6265   par_c14b.F90 \ 
     6266   par_cfc.F90 \ 
     6267   par_kind.F90 \ 
     6268   par_lobster.F90 \ 
     6269   par_my_trc.F90 \ 
     6270   par_oce.F90 \ 
     6271   par_pisces.F90 \ 
     6272   par_trc.F90 \ 
     6273   phycst.F90 \ 
     6274   sbc_oce.F90 \ 
     6275   sbcrnf.F90 \ 
     6276   trabbl.F90 \ 
     6277   traqsr.F90 \ 
     6278   trc.F90 \ 
     6279   trdmld_trc.F90 \ 
     6280   trdmld_trc_oce.F90 \ 
     6281   zdf_oce.F90 \ 
     6282   zdfddm.F90 \ 
     6283   zdfmxl.F90 \ 
     6284   $(MODEL_LIB)(in_out_manager.o) \ 
     6285   $(MODEL_LIB)(iom.o) \ 
     6286   $(MODEL_LIB)(oce_trc.o) \ 
     6287   $(MODEL_LIB)(par_trc.o) \ 
     6288   $(MODEL_LIB)(trc.o) \ 
     6289   $(MODEL_LIB)(trcsms_cfc.o) \ 
     6290   in_out_manager.F90 \ 
     6291   iom.F90 \ 
     6292   oce_trc.F90 \ 
     6293   par_trc.F90 \ 
     6294   trc.F90 \ 
     6295   trcsms_cfc.F90 \ 
     6296   KEY_CPP \ 
     6297   trcrst_cfc.F90 
     6298$(MODEL_LIB)(trcrst_lobster.o) : \ 
     6299   $(MODEL_LIB)(dianam.o) \ 
     6300   $(MODEL_LIB)(dom_oce.o) \ 
     6301   $(MODEL_LIB)(domngb.o) \ 
     6302   $(MODEL_LIB)(in_out_manager.o) \ 
     6303   $(MODEL_LIB)(iom_def.o) \ 
     6304   $(MODEL_LIB)(iom_ioipsl.o) \ 
     6305   $(MODEL_LIB)(iom_nf90.o) \ 
     6306   $(MODEL_LIB)(iom_rstdimg.o) \ 
     6307   $(MODEL_LIB)(lbclnk.o) \ 
     6308   $(MODEL_LIB)(ldfslp.o) \ 
     6309   $(MODEL_LIB)(ldftra_oce.o) \ 
     6310   $(MODEL_LIB)(lib_mpp.o) \ 
     6311   $(MODEL_LIB)(lib_print.o) \ 
     6312   $(MODEL_LIB)(oce.o) \ 
     6313   $(MODEL_LIB)(oce_trc.o) \ 
     6314   $(MODEL_LIB)(par_c14b.o) \ 
     6315   $(MODEL_LIB)(par_cfc.o) \ 
     6316   $(MODEL_LIB)(par_kind.o) \ 
     6317   $(MODEL_LIB)(par_lobster.o) \ 
     6318   $(MODEL_LIB)(par_my_trc.o) \ 
     6319   $(MODEL_LIB)(par_oce.o) \ 
     6320   $(MODEL_LIB)(par_pisces.o) \ 
     6321   $(MODEL_LIB)(par_trc.o) \ 
     6322   $(MODEL_LIB)(phycst.o) \ 
     6323   $(MODEL_LIB)(sbc_oce.o) \ 
     6324   $(MODEL_LIB)(sbcrnf.o) \ 
     6325   $(MODEL_LIB)(trabbl.o) \ 
     6326   $(MODEL_LIB)(traqsr.o) \ 
     6327   $(MODEL_LIB)(trc.o) \ 
     6328   $(MODEL_LIB)(trcbio.o) \ 
     6329   $(MODEL_LIB)(trcexp.o) \ 
     6330   $(MODEL_LIB)(trcopt.o) \ 
     6331   $(MODEL_LIB)(trcsed.o) \ 
     6332   $(MODEL_LIB)(trdmld_trc.o) \ 
     6333   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     6334   $(MODEL_LIB)(zdf_oce.o) \ 
     6335   $(MODEL_LIB)(zdfddm.o) \ 
     6336   $(MODEL_LIB)(zdfmxl.o) \ 
     6337   dianam.F90 \ 
     6338   dom_oce.F90 \ 
     6339   domngb.F90 \ 
     6340   in_out_manager.F90 \ 
     6341   iom_def.F90 \ 
     6342   iom_ioipsl.F90 \ 
     6343   iom_nf90.F90 \ 
     6344   iom_rstdimg.F90 \ 
     6345   lbclnk.F90 \ 
     6346   ldfslp.F90 \ 
     6347   ldftra_oce.F90 \ 
     6348   lib_mpp.F90 \ 
     6349   lib_print.f90 \ 
     6350   oce.F90 \ 
     6351   oce_trc.F90 \ 
     6352   par_c14b.F90 \ 
     6353   par_cfc.F90 \ 
     6354   par_kind.F90 \ 
     6355   par_lobster.F90 \ 
     6356   par_my_trc.F90 \ 
     6357   par_oce.F90 \ 
     6358   par_pisces.F90 \ 
     6359   par_trc.F90 \ 
     6360   phycst.F90 \ 
     6361   sbc_oce.F90 \ 
     6362   sbcrnf.F90 \ 
     6363   trabbl.F90 \ 
     6364   traqsr.F90 \ 
     6365   trc.F90 \ 
     6366   trcbio.F90 \ 
     6367   trcexp.F90 \ 
     6368   trcopt.F90 \ 
     6369   trcsed.F90 \ 
     6370   trdmld_trc.F90 \ 
     6371   trdmld_trc_oce.F90 \ 
     6372   zdf_oce.F90 \ 
     6373   zdfddm.F90 \ 
     6374   zdfmxl.F90 \ 
     6375   $(MODEL_LIB)(in_out_manager.o) \ 
     6376   $(MODEL_LIB)(iom.o) \ 
     6377   $(MODEL_LIB)(oce_trc.o) \ 
     6378   $(MODEL_LIB)(par_trc.o) \ 
     6379   $(MODEL_LIB)(sms_lobster.o) \ 
     6380   $(MODEL_LIB)(trc.o) \ 
     6381   $(MODEL_LIB)(trcsms_lobster.o) \ 
     6382   in_out_manager.F90 \ 
     6383   iom.F90 \ 
     6384   oce_trc.F90 \ 
     6385   par_trc.F90 \ 
     6386   sms_lobster.F90 \ 
     6387   trc.F90 \ 
     6388   trcsms_lobster.F90 \ 
     6389   KEY_CPP \ 
     6390   trcrst_lobster.F90 
     6391$(MODEL_LIB)(trcrst_my_trc.o) :  \ 
     6392   KEY_CPP \ 
     6393   trcrst_my_trc.F90 
     6394$(MODEL_LIB)(trcrst_pisces.o) :  \ 
     6395   $(MODEL_LIB)(dianam.o) \ 
     6396   $(MODEL_LIB)(dom_oce.o) \ 
     6397   $(MODEL_LIB)(domngb.o) \ 
     6398   $(MODEL_LIB)(in_out_manager.o) \ 
     6399   $(MODEL_LIB)(iom.o) \ 
     6400   $(MODEL_LIB)(iom_def.o) \ 
     6401   $(MODEL_LIB)(iom_ioipsl.o) \ 
     6402   $(MODEL_LIB)(iom_nf90.o) \ 
     6403   $(MODEL_LIB)(iom_rstdimg.o) \ 
     6404   $(MODEL_LIB)(lbclnk.o) \ 
     6405   $(MODEL_LIB)(ldfslp.o) \ 
     6406   $(MODEL_LIB)(ldftra_oce.o) \ 
     6407   $(MODEL_LIB)(lib_mpp.o) \ 
     6408   $(MODEL_LIB)(lib_print.o) \ 
     6409   $(MODEL_LIB)(oce.o) \ 
     6410   $(MODEL_LIB)(oce_trc.o) \ 
     6411   $(MODEL_LIB)(p4zbio.o) \ 
     6412   $(MODEL_LIB)(p4zche.o) \ 
     6413   $(MODEL_LIB)(p4zflx.o) \ 
     6414   $(MODEL_LIB)(p4zint.o) \ 
     6415   $(MODEL_LIB)(p4zlys.o) \ 
     6416   $(MODEL_LIB)(p4zsed.o) \ 
     6417   $(MODEL_LIB)(par_c14b.o) \ 
     6418   $(MODEL_LIB)(par_cfc.o) \ 
     6419   $(MODEL_LIB)(par_kind.o) \ 
     6420   $(MODEL_LIB)(par_lobster.o) \ 
     6421   $(MODEL_LIB)(par_my_trc.o) \ 
     6422   $(MODEL_LIB)(par_oce.o) \ 
     6423   $(MODEL_LIB)(par_pisces.o) \ 
     6424   $(MODEL_LIB)(par_trc.o) \ 
     6425   $(MODEL_LIB)(phycst.o) \ 
     6426   $(MODEL_LIB)(sbc_oce.o) \ 
     6427   $(MODEL_LIB)(sbcrnf.o) \ 
     6428   $(MODEL_LIB)(sedmodel.o) \ 
     6429   $(MODEL_LIB)(sms_pisces.o) \ 
     6430   $(MODEL_LIB)(trabbl.o) \ 
     6431   $(MODEL_LIB)(traqsr.o) \ 
     6432   $(MODEL_LIB)(trc.o) \ 
     6433   $(MODEL_LIB)(trdmld_trc.o) \ 
     6434   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     6435   $(MODEL_LIB)(zdf_oce.o) \ 
     6436   $(MODEL_LIB)(zdfddm.o) \ 
     6437   $(MODEL_LIB)(zdfmxl.o) \ 
     6438   dianam.F90 \ 
     6439   dom_oce.F90 \ 
     6440   domngb.F90 \ 
     6441   in_out_manager.F90 \ 
     6442   iom.F90 \ 
     6443   iom_def.F90 \ 
     6444   iom_ioipsl.F90 \ 
     6445   iom_nf90.F90 \ 
     6446   iom_rstdimg.F90 \ 
     6447   lbclnk.F90 \ 
     6448   ldfslp.F90 \ 
     6449   ldftra_oce.F90 \ 
     6450   lib_mpp.F90 \ 
     6451   lib_print.f90 \ 
     6452   oce.F90 \ 
     6453   oce_trc.F90 \ 
     6454   p4zbio.F90 \ 
     6455   p4zche.F90 \ 
     6456   p4zflx.F90 \ 
     6457   p4zint.F90 \ 
     6458   p4zlys.F90 \ 
     6459   p4zsed.F90 \ 
     6460   par_c14b.F90 \ 
     6461   par_cfc.F90 \ 
     6462   par_kind.F90 \ 
     6463   par_lobster.F90 \ 
     6464   par_my_trc.F90 \ 
     6465   par_oce.F90 \ 
     6466   par_pisces.F90 \ 
     6467   par_trc.F90 \ 
     6468   phycst.F90 \ 
     6469   sbc_oce.F90 \ 
     6470   sbcrnf.F90 \ 
     6471   sedmodel.F90 \ 
     6472   sms_pisces.F90 \ 
     6473   trabbl.F90 \ 
     6474   traqsr.F90 \ 
     6475   trc.F90 \ 
     6476   trdmld_trc.F90 \ 
     6477   trdmld_trc_oce.F90 \ 
     6478   zdf_oce.F90 \ 
     6479   zdfddm.F90 \ 
     6480   zdfmxl.F90 \ 
     6481   $(MODEL_LIB)(in_out_manager.o) \ 
     6482   $(MODEL_LIB)(iom.o) \ 
     6483   $(MODEL_LIB)(oce_trc.o) \ 
     6484   $(MODEL_LIB)(par_trc.o) \ 
     6485   $(MODEL_LIB)(sms_pisces.o) \ 
     6486   $(MODEL_LIB)(trc.o) \ 
     6487   $(MODEL_LIB)(trcdta.o) \ 
     6488   $(MODEL_LIB)(trcsms_pisces.o) \ 
     6489   in_out_manager.F90 \ 
     6490   iom.F90 \ 
     6491   oce_trc.F90 \ 
     6492   par_trc.F90 \ 
     6493   sms_pisces.F90 \ 
     6494   trc.F90 \ 
     6495   trcdta.F90 \ 
     6496   trcsms_pisces.F90 \ 
     6497   KEY_CPP \ 
     6498   trcrst_pisces.F90 
    60336499$(MODEL_LIB)(trcsbc.o) :   \ 
    60346500   $(MODEL_LIB)(dianam.o) \ 
     
    61856651   trdmld_trc_oce.F90 \ 
    61866652   domzgr_substitute.h90 \ 
     6653   ldfeiv_substitute.h90 \ 
     6654   ldftra_substitute.h90 \ 
     6655   top_substitute.h90 \ 
     6656   vectopt_loop_substitute.h90 \ 
    61876657   KEY_CPP \ 
    61886658   trcsed.F90 
     
    67437213$(MODEL_LIB)(trcstp.o) :   \ 
    67447214   $(MODEL_LIB)(agrif_top_sponge.o) \ 
     7215   $(MODEL_LIB)(daymod.o) \ 
    67457216   $(MODEL_LIB)(dianam.o) \ 
    67467217   $(MODEL_LIB)(dom_oce.o) \ 
     
    67867257   $(MODEL_LIB)(trcnxt.o) \ 
    67877258   $(MODEL_LIB)(trcrad.o) \ 
     7259   $(MODEL_LIB)(trcrst_c14b.o) \ 
     7260   $(MODEL_LIB)(trcrst_cfc.o) \ 
     7261   $(MODEL_LIB)(trcrst_lobster.o) \ 
     7262   $(MODEL_LIB)(trcrst_my_trc.o) \ 
     7263   $(MODEL_LIB)(trcrst_pisces.o) \ 
    67887264   $(MODEL_LIB)(trcsbc.o) \ 
    67897265   $(MODEL_LIB)(trcsms_c14b.o) \ 
     
    68057281   $(MODEL_LIB)(zpshde_trc.o) \ 
    68067282   agrif_top_sponge.F90 \ 
     7283   daymod.F90 \ 
    68077284   dianam.F90 \ 
    68087285   dom_oce.F90 \ 
     
    68487325   trcnxt.F90 \ 
    68497326   trcrad.F90 \ 
     7327   trcrst_c14b.F90 \ 
     7328   trcrst_cfc.F90 \ 
     7329   trcrst_lobster.F90 \ 
     7330   trcrst_my_trc.F90 \ 
     7331   trcrst_pisces.F90 \ 
    68507332   trcsbc.F90 \ 
    68517333   trcsms_c14b.F90 \ 
     
    70067488   zpshde_trc.F90 \ 
    70077489   domzgr_substitute.h90 \ 
     7490   ldfeiv_substitute.h90 \ 
     7491   ldftra_substitute.h90 \ 
     7492   top_substitute.h90 \ 
     7493   vectopt_loop_substitute.h90 \ 
    70087494   $(AGRIF_LIB) \ 
    70097495   KEY_CPP \ 
     
    71187604   $(MODEL_LIB)(trabbl.o) \ 
    71197605   $(MODEL_LIB)(traqsr.o) \ 
     7606   $(MODEL_LIB)(trc.o) \ 
    71207607   $(MODEL_LIB)(zdf_oce.o) \ 
    71217608   $(MODEL_LIB)(zdfddm.o) \ 
     
    71417628   trabbl.F90 \ 
    71427629   traqsr.F90 \ 
     7630   trc.F90 \ 
    71437631   zdf_oce.F90 \ 
    71447632   zdfddm.F90 \ 
    71457633   zdfmxl.F90 \ 
    71467634   $(MODEL_LIB)(dianam.o) \ 
     7635   $(MODEL_LIB)(dom_oce.o) \ 
    71477636   $(MODEL_LIB)(iom.o) \ 
    71487637   $(MODEL_LIB)(oce_trc.o) \ 
    71497638   $(MODEL_LIB)(trc.o) \ 
     7639   $(MODEL_LIB)(trdmld_trc_oce.o) \ 
     7640   $(MODEL_LIB)(trp_trc.o) \ 
    71507641   dianam.F90 \ 
     7642   dom_oce.F90 \ 
    71517643   iom.F90 \ 
    71527644   oce_trc.F90 \ 
    71537645   trc.F90 \ 
     7646   trdmld_trc_oce.F90 \ 
     7647   trp_trc.F90 \ 
    71547648   domzgr_substitute.h90 \ 
    71557649   ldfeiv_substitute.h90 \ 
  • branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_OFF_PISCES/scripts/BB_make.ldef

    r1791 r2201  
    3434#- 
    3535#- Prefix for preprocessing --- 
     36prefix = -D 
    3637#-Q- sx8mercure prefix = -D 
    3738#-Q- sx9mercure prefix = -D 
  • branches/DEV_r1924_nocs_latphys/CONFIG/POMME/EXP00/namelist

    r2190 r2201  
    178178   sn_prec     = 'precip_1988.nc' ,       -1          , 'precip'   ,    .true.      , .true. ,   'yearly' , '' 
    179179   sn_snow     = 'precip_1988.nc' ,       -1          , 'precip'   ,    .true.      , .true. ,   'yearly' , '' 
     180   sn_tdif     = 'taudif_core'    ,       24          , 'taudif'   ,    .true.      , .true.  ,   'yearly'  ,'' 
    180181! 
    181182   cn_dir      = './'      !  root directory for the location of the bulk files 
     
    312313    rn_dpsin   =    1.     !     -           -         -       south   -      - 
    313314    rn_dpeob   = 1500.     !  time relaxation (days) for the east  open boundary 
    314     rn_dpwob   =   15.     !     -           -         -     west    -      - 
     315    rn_dpwob   =  150.     !     -           -         -     west    -      - 
    315316    rn_dpnob   =  150.     !     -           -         -     north   -      - 
    316     rn_dpsob   =   15.     !     -           -         -     south   -      - 
     317    rn_dpsob   =  150.     !     -           -         -     south   -      - 
    317318    rn_volemp  =  1.       !  = 0 the total volume change with the surface flux (E-P-R) 
    318319                           !  = 1 the total volume remains constant 
  • branches/DEV_r1924_nocs_latphys/CONFIG/POMME/scripts/BB_make

    r1875 r2201  
    77#          Check your compilers option in consequence when using real F95 compilers 
    88 
     9F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 
     10L_X = $(L_O) 
    911#-Q- platine # Compiler options NEMO (CCRT Itanium Bull)  
    1012#-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC)  
     
    101103 
    102104#check key compatibility 
    103 keycompat=$(if $(and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
     105keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 
    104106 
    105107KEY_LIST = \ 
     
    153155     key_oasis4 \ 
    154156     key_obc \ 
    155      key_off_tra \ 
    156157     key_orca_lev10 \ 
    157158     key_orca_r025 \ 
     
    179180     key_vvl \ 
    180181     key_zco \ 
    181      key_zco \ 
    182182     key_zdfcst \ 
    183183     key_zdfddm \ 
     
    191191      $(MODEL_LIB)(lib_cray.o)\ 
    192192      $(MODEL_LIB)(lib_print.o)\ 
    193       $(MODEL_LIB)(agrif_oce.o)\ 
    194193      $(MODEL_LIB)(agrif_opa_interp.o)\ 
    195194      $(MODEL_LIB)(agrif_opa_sponge.o)\ 
    196195      $(MODEL_LIB)(agrif_opa_update.o)\ 
    197       $(MODEL_LIB)(agrif_top_interp.o)\ 
    198       $(MODEL_LIB)(agrif_top_sponge.o)\ 
    199       $(MODEL_LIB)(agrif_top_update.o)\ 
    200       $(MODEL_LIB)(agrif_user.o)\ 
    201196      $(MODEL_LIB)(albedo.o)\ 
    202197      $(MODEL_LIB)(bdy_oce.o)\ 
     
    437432 
    438433# Agrif library and conv 
    439 libagrif :  $(call keycompat,key_iomput,key_agrif) 
     434libagrif : 
    440435ifeq ($(AGRIF),use) 
    441436   @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) 
     
    568563      @if [ -f $(PREF)$*.L ] ; then mv $(PREF)$*.L $(TMP) ; fi 
    569564 
    570 $(MODEL_LIB)(agrif_oce.o) :   \ 
    571    $(MODEL_LIB)(par_kind.o) \ 
    572    $(MODEL_LIB)(par_oce.o) \ 
    573    par_kind.F90 \ 
    574    par_oce.F90 \ 
    575    $(MODEL_LIB)(dom_oce.o) \ 
    576    $(MODEL_LIB)(par_oce.o) \ 
    577    dom_oce.F90 \ 
    578    par_oce.F90 \ 
    579    KEY_CPP \ 
    580    agrif_oce.F90 
    581565$(MODEL_LIB)(agrif_opa_interp.o) :  \ 
    582    $(MODEL_LIB)(dom_oce.o) \ 
    583    $(MODEL_LIB)(in_out_manager.o) \ 
    584    $(MODEL_LIB)(lib_print.o) \ 
    585    $(MODEL_LIB)(par_kind.o) \ 
    586    $(MODEL_LIB)(par_oce.o) \ 
    587    dom_oce.F90 \ 
    588    in_out_manager.F90 \ 
    589    lib_print.f90 \ 
    590    par_kind.F90 \ 
    591    par_oce.F90 \ 
    592    $(MODEL_LIB)(agrif_oce.o) \ 
    593    $(MODEL_LIB)(dom_oce.o) \ 
    594    $(MODEL_LIB)(in_out_manager.o) \ 
    595    $(MODEL_LIB)(oce.o) \ 
    596    $(MODEL_LIB)(par_oce.o) \ 
    597    $(MODEL_LIB)(phycst.o) \ 
    598    $(MODEL_LIB)(sol_oce.o) \ 
    599    agrif_oce.F90 \ 
    600    dom_oce.F90 \ 
    601    in_out_manager.F90 \ 
    602    oce.F90 \ 
    603    par_oce.F90 \ 
    604    phycst.F90 \ 
    605    sol_oce.F90 \ 
    606    domzgr_substitute.h90 \ 
    607    vectopt_loop_substitute.h90 \ 
    608    $(AGRIF_LIB) \ 
    609    KEY_CPP \ 
    610566   agrif_opa_interp.F90 
    611567$(MODEL_LIB)(agrif_opa_sponge.o) :  \ 
    612    $(MODEL_LIB)(dom_oce.o) \ 
    613    $(MODEL_LIB)(lib_print.o) \ 
    614    $(MODEL_LIB)(par_kind.o) \ 
    615    $(MODEL_LIB)(par_oce.o) \ 
    616    dom_oce.F90 \ 
    617    lib_print.f90 \ 
    618    par_kind.F90 \ 
    619    par_oce.F90 \ 
    620    $(MODEL_LIB)(agrif_oce.o) \ 
    621    $(MODEL_LIB)(dom_oce.o) \ 
    622    $(MODEL_LIB)(in_out_manager.o) \ 
    623    $(MODEL_LIB)(oce.o) \ 
    624    $(MODEL_LIB)(par_oce.o) \ 
    625    agrif_oce.F90 \ 
    626    dom_oce.F90 \ 
    627    in_out_manager.F90 \ 
    628    oce.F90 \ 
    629    par_oce.F90 \ 
    630    domzgr_substitute.h90 \ 
    631    $(AGRIF_LIB) \ 
    632    KEY_CPP \ 
    633568   agrif_opa_sponge.F90 
    634569$(MODEL_LIB)(agrif_opa_update.o) :  \ 
    635    $(MODEL_LIB)(bdy_oce.o) \ 
    636    $(MODEL_LIB)(cla_div.o) \ 
    637    $(MODEL_LIB)(diaar5.o) \ 
    638    $(MODEL_LIB)(divcur.o) \ 
    639    $(MODEL_LIB)(dom_oce.o) \ 
    640    $(MODEL_LIB)(domvvl.o) \ 
    641    $(MODEL_LIB)(in_out_manager.o) \ 
    642    $(MODEL_LIB)(iom.o) \ 
    643    $(MODEL_LIB)(lbclnk.o) \ 
    644    $(MODEL_LIB)(lib_mpp.o) \ 
    645    $(MODEL_LIB)(obc_oce.o) \ 
    646    $(MODEL_LIB)(obc_par.o) \ 
    647    $(MODEL_LIB)(oce.o) \ 
    648    $(MODEL_LIB)(par_kind.o) \ 
    649    $(MODEL_LIB)(par_oce.o) \ 
    650    $(MODEL_LIB)(phycst.o) \ 
    651    $(MODEL_LIB)(prtctl.o) \ 
    652    $(MODEL_LIB)(restart.o) \ 
    653    $(MODEL_LIB)(sbc_oce.o) \ 
    654    bdy_oce.F90 \ 
    655    cla_div.F90 \ 
    656    diaar5.F90 \ 
    657    divcur.F90 \ 
    658    dom_oce.F90 \ 
    659    domvvl.F90 \ 
    660    in_out_manager.F90 \ 
    661    iom.F90 \ 
    662    lbclnk.F90 \ 
    663    lib_mpp.F90 \ 
    664    obc_oce.F90 \ 
    665    obc_par.F90 \ 
    666    oce.F90 \ 
    667    par_kind.F90 \ 
    668    par_oce.F90 \ 
    669    phycst.F90 \ 
    670    prtctl.F90 \ 
    671    restart.F90 \ 
    672    sbc_oce.F90 \ 
    673    $(MODEL_LIB)(agrif_oce.o) \ 
    674    $(MODEL_LIB)(cla_div.o) \ 
    675    $(MODEL_LIB)(divcur.o) \ 
    676    $(MODEL_LIB)(dom_oce.o) \ 
    677    $(MODEL_LIB)(oce.o) \ 
    678    $(MODEL_LIB)(par_oce.o) \ 
    679    $(MODEL_LIB)(sshwzv.o) \ 
    680    agrif_oce.F90 \ 
    681    cla_div.F90 \ 
    682    divcur.F90 \ 
    683    dom_oce.F90 \ 
    684    oce.F90 \ 
    685    par_oce.F90 \ 
    686    sshwzv.F90 \ 
    687    domzgr_substitute.h90 \ 
    688    $(AGRIF_LIB) \ 
    689    KEY_CPP \ 
    690570   agrif_opa_update.F90 
    691 $(MODEL_LIB)(agrif_top_interp.o) :  \ 
    692    $(MODEL_LIB)(dom_oce.o) \ 
    693    $(MODEL_LIB)(par_kind.o) \ 
    694    $(MODEL_LIB)(par_oce.o) \ 
    695    dom_oce.F90 \ 
    696    par_kind.F90 \ 
    697    par_oce.F90 \ 
    698    $(MODEL_LIB)(agrif_oce.o) \ 
    699    $(MODEL_LIB)(dom_oce.o) \ 
    700    $(MODEL_LIB)(oce.o) \ 
    701    $(MODEL_LIB)(par_oce.o) \ 
    702    $(MODEL_LIB)(sol_oce.o) \ 
    703    agrif_oce.F90 \ 
    704    dom_oce.F90 \ 
    705    oce.F90 \ 
    706    par_oce.F90 \ 
    707    sol_oce.F90 \ 
    708    domzgr_substitute.h90 \ 
    709    vectopt_loop_substitute.h90 \ 
    710    $(AGRIF_LIB) \ 
    711    KEY_CPP \ 
    712    agrif_top_interp.F90 
    713 $(MODEL_LIB)(agrif_top_sponge.o) :  \ 
    714    $(MODEL_LIB)(dom_oce.o) \ 
    715    $(MODEL_LIB)(lib_print.o) \ 
    716    $(MODEL_LIB)(par_kind.o) \ 
    717    $(MODEL_LIB)(par_oce.o) \ 
    718    dom_oce.F90 \ 
    719    lib_print.f90 \ 
    720    par_kind.F90 \ 
    721    par_oce.F90 \ 
    722    $(MODEL_LIB)(agrif_oce.o) \ 
    723    $(MODEL_LIB)(dom_oce.o) \ 
    724    $(MODEL_LIB)(in_out_manager.o) \ 
    725    $(MODEL_LIB)(oce.o) \ 
    726    $(MODEL_LIB)(par_oce.o) \ 
    727    agrif_oce.F90 \ 
    728    dom_oce.F90 \ 
    729    in_out_manager.F90 \ 
    730    oce.F90 \ 
    731    par_oce.F90 \ 
    732    domzgr_substitute.h90 \ 
    733    $(AGRIF_LIB) \ 
    734    KEY_CPP \ 
    735    agrif_top_sponge.F90 
    736 $(MODEL_LIB)(agrif_top_update.o) :  \ 
    737    $(MODEL_LIB)(dom_oce.o) \ 
    738    $(MODEL_LIB)(par_kind.o) \ 
    739    $(MODEL_LIB)(par_oce.o) \ 
    740    dom_oce.F90 \ 
    741    par_kind.F90 \ 
    742    par_oce.F90 \ 
    743    $(MODEL_LIB)(agrif_oce.o) \ 
    744    $(MODEL_LIB)(dom_oce.o) \ 
    745    $(MODEL_LIB)(oce.o) \ 
    746    $(MODEL_LIB)(par_oce.o) \ 
    747    agrif_oce.F90 \ 
    748    dom_oce.F90 \ 
    749    oce.F90 \ 
    750    par_oce.F90 \ 
    751    domzgr_substitute.h90 \ 
    752    $(AGRIF_LIB) \ 
    753    KEY_CPP \ 
    754    agrif_top_update.F90 
    755 $(MODEL_LIB)(agrif_user.o) :  \ 
    756    $(MODEL_LIB)(agrif_oce.o) \ 
    757    $(MODEL_LIB)(bdy_par.o) \ 
    758    $(MODEL_LIB)(bdyini.o) \ 
    759    $(MODEL_LIB)(c1d.o) \ 
    760    $(MODEL_LIB)(cla_div.o) \ 
    761    $(MODEL_LIB)(cpl_oasis3.o) \ 
    762    $(MODEL_LIB)(cpl_oasis4.o) \ 
    763    $(MODEL_LIB)(diaptr.o) \ 
    764    $(MODEL_LIB)(divcur.o) \ 
    765    $(MODEL_LIB)(dom_oce.o) \ 
    766    $(MODEL_LIB)(domain.o) \ 
    767    $(MODEL_LIB)(domcfg.o) \ 
    768    $(MODEL_LIB)(dtasal.o) \ 
    769    $(MODEL_LIB)(dtatem.o) \ 
    770    $(MODEL_LIB)(dyncor_c1d.o) \ 
    771    $(MODEL_LIB)(dynhpg.o) \ 
    772    $(MODEL_LIB)(dynspg_oce.o) \ 
    773    $(MODEL_LIB)(eosbn2.o) \ 
    774    $(MODEL_LIB)(in_out_manager.o) \ 
    775    $(MODEL_LIB)(iom.o) \ 
    776    $(MODEL_LIB)(istate.o) \ 
    777    $(MODEL_LIB)(ldfdyn.o) \ 
    778    $(MODEL_LIB)(ldftra.o) \ 
    779    $(MODEL_LIB)(lib_mpp.o) \ 
    780    $(MODEL_LIB)(lib_print.o) \ 
    781    $(MODEL_LIB)(mppini.o) \ 
    782    $(MODEL_LIB)(obc_par.o) \ 
    783    $(MODEL_LIB)(obcini.o) \ 
    784    $(MODEL_LIB)(oce.o) \ 
    785    $(MODEL_LIB)(par_kind.o) \ 
    786    $(MODEL_LIB)(par_oce.o) \ 
    787    $(MODEL_LIB)(phycst.o) \ 
    788    $(MODEL_LIB)(prtctl.o) \ 
    789    $(MODEL_LIB)(sbc_oce.o) \ 
    790    $(MODEL_LIB)(sbcmod.o) \ 
    791    $(MODEL_LIB)(sol_oce.o) \ 
    792    $(MODEL_LIB)(sshwzv.o) \ 
    793    $(MODEL_LIB)(step.o) \ 
    794    $(MODEL_LIB)(step_c1d.o) \ 
    795    $(MODEL_LIB)(trdmod.o) \ 
    796    $(MODEL_LIB)(trdmod_oce.o) \ 
    797    $(MODEL_LIB)(zdf_oce.o) \ 
    798    $(MODEL_LIB)(zdfini.o) \ 
    799    $(MODEL_LIB)(zdfmxl.o) \ 
    800    agrif_oce.F90 \ 
    801    bdy_par.F90 \ 
    802    bdyini.F90 \ 
    803    c1d.F90 \ 
    804    cla_div.F90 \ 
    805    cpl_oasis3.F90 \ 
    806    cpl_oasis4.F90 \ 
    807    diaptr.F90 \ 
    808    divcur.F90 \ 
    809    dom_oce.F90 \ 
    810    domain.F90 \ 
    811    domcfg.F90 \ 
    812    dtasal.F90 \ 
    813    dtatem.F90 \ 
    814    dyncor_c1d.F90 \ 
    815    dynhpg.F90 \ 
    816    dynspg_oce.F90 \ 
    817    eosbn2.F90 \ 
    818    in_out_manager.F90 \ 
    819    iom.F90 \ 
    820    istate.F90 \ 
    821    ldfdyn.F90 \ 
    822    ldftra.F90 \ 
    823    lib_mpp.F90 \ 
    824    lib_print.f90 \ 
    825    mppini.F90 \ 
    826    obc_par.F90 \ 
    827    obcini.F90 \ 
    828    oce.F90 \ 
    829    par_kind.F90 \ 
    830    par_oce.F90 \ 
    831    phycst.F90 \ 
    832    prtctl.F90 \ 
    833    sbc_oce.F90 \ 
    834    sbcmod.F90 \ 
    835    sol_oce.F90 \ 
    836    sshwzv.F90 \ 
    837    step.F90 \ 
    838    step_c1d.F90 \ 
    839    trdmod.F90 \ 
    840    trdmod_oce.F90 \ 
    841    zdf_oce.F90 \ 
    842    zdfini.F90 \ 
    843    zdfmxl.F90 \ 
    844    $(MODEL_LIB)(agrif_oce.o) \ 
    845    $(MODEL_LIB)(agrif_opa_interp.o) \ 
    846    $(MODEL_LIB)(agrif_opa_sponge.o) \ 
    847    $(MODEL_LIB)(agrif_opa_update.o) \ 
    848    $(MODEL_LIB)(agrif_top_interp.o) \ 
    849    $(MODEL_LIB)(agrif_top_sponge.o) \ 
    850    $(MODEL_LIB)(agrif_top_update.o) \ 
    851    $(MODEL_LIB)(dom_oce.o) \ 
    852    $(MODEL_LIB)(in_out_manager.o) \ 
    853    $(MODEL_LIB)(obc_par.o) \ 
    854    $(MODEL_LIB)(oce.o) \ 
    855    $(MODEL_LIB)(opa.o) \ 
    856    $(MODEL_LIB)(par_oce.o) \ 
    857    $(MODEL_LIB)(sol_oce.o) \ 
    858    $(MODEL_LIB)(tradmp.o) \ 
    859    agrif_oce.F90 \ 
    860    agrif_opa_interp.F90 \ 
    861    agrif_opa_sponge.F90 \ 
    862    agrif_opa_update.F90 \ 
    863    agrif_top_interp.F90 \ 
    864    agrif_top_sponge.F90 \ 
    865    agrif_top_update.F90 \ 
    866    dom_oce.F90 \ 
    867    in_out_manager.F90 \ 
    868    obc_par.F90 \ 
    869    oce.F90 \ 
    870    opa.F90 \ 
    871    par_oce.F90 \ 
    872    sol_oce.F90 \ 
    873    tradmp.F90 \ 
    874    $(AGRIF_LIB) \ 
    875    KEY_CPP \ 
    876    agrif_user.F90 
    877571$(MODEL_LIB)(albedo.o) :   \ 
    878572   $(MODEL_LIB)(in_out_manager.o) \ 
     
    31682862   dynldf_lap.F90 
    31692863$(MODEL_LIB)(dynnxt.o) :   \ 
    3170    $(MODEL_LIB)(agrif_oce.o) \ 
    31712864   $(MODEL_LIB)(bdy_oce.o) \ 
    31722865   $(MODEL_LIB)(bdy_par.o) \ 
    31732866   $(MODEL_LIB)(bdytides.o) \ 
    3174    $(MODEL_LIB)(cla_div.o) \ 
    3175    $(MODEL_LIB)(divcur.o) \ 
    31762867   $(MODEL_LIB)(dom_oce.o) \ 
    31772868   $(MODEL_LIB)(dynadv_cen2.o) \ 
     
    31932884   $(MODEL_LIB)(phycst.o) \ 
    31942885   $(MODEL_LIB)(sbc_oce.o) \ 
    3195    $(MODEL_LIB)(sol_oce.o) \ 
    3196    $(MODEL_LIB)(sshwzv.o) \ 
    3197    agrif_oce.F90 \ 
    31982886   bdy_oce.F90 \ 
    31992887   bdy_par.F90 \ 
    32002888   bdytides.F90 \ 
    3201    cla_div.F90 \ 
    3202    divcur.F90 \ 
    32032889   dom_oce.F90 \ 
    32042890   dynadv_cen2.F90 \ 
     
    32202906   phycst.F90 \ 
    32212907   sbc_oce.F90 \ 
    3222    sol_oce.F90 \ 
    3223    sshwzv.F90 \ 
    32242908   $(MODEL_LIB)(agrif_opa_interp.o) \ 
    32252909   $(MODEL_LIB)(agrif_opa_update.o) \ 
     
    34943178   dynspg_exp.F90 
    34953179$(MODEL_LIB)(dynspg_flt.o) :  \ 
    3496    $(MODEL_LIB)(agrif_oce.o) \ 
    34973180   $(MODEL_LIB)(bdy_oce.o) \ 
    34983181   $(MODEL_LIB)(bdy_par.o) \ 
     
    35363219   $(MODEL_LIB)(zdfmxl.o) \ 
    35373220   $(MODEL_LIB)(zpshde.o) \ 
    3538    agrif_oce.F90 \ 
    35393221   bdy_oce.F90 \ 
    35403222   bdy_par.F90 \ 
     
    56435325   $(MODEL_LIB)(limistate_2.o) \ 
    56445326   $(MODEL_LIB)(phycst.o) \ 
     5327   $(MODEL_LIB)(sbc_oce.o) \ 
    56455328   dom_ice_2.F90 \ 
    56465329   dom_oce.F90 \ 
     
    56535336   limistate_2.F90 \ 
    56545337   phycst.F90 \ 
     5338   sbc_oce.F90 \ 
    56555339   vectopt_loop_substitute.h90 \ 
    56565340   KEY_CPP \ 
     
    79037587   sshwzv.F90 
    79047588$(MODEL_LIB)(step.o) :  \ 
    7905    $(MODEL_LIB)(agrif_oce.o) \ 
    79067589   $(MODEL_LIB)(agrif_opa_interp.o) \ 
    79077590   $(MODEL_LIB)(agrif_opa_update.o) \ 
     
    80257708   $(MODEL_LIB)(zdftke_old.o) \ 
    80267709   $(MODEL_LIB)(zpshde.o) \ 
    8027    agrif_oce.F90 \ 
    80287710   agrif_opa_interp.F90 \ 
    80297711   agrif_opa_update.F90 \ 
     
    99499631   tranpc.F90 
    99509632$(MODEL_LIB)(tranxt.o) :   \ 
    9951    $(MODEL_LIB)(agrif_oce.o) \ 
    99529633   $(MODEL_LIB)(bdy_oce.o) \ 
    9953    $(MODEL_LIB)(cla_div.o) \ 
    9954    $(MODEL_LIB)(divcur.o) \ 
    99559634   $(MODEL_LIB)(dom_oce.o) \ 
    99569635   $(MODEL_LIB)(in_out_manager.o) \ 
     
    99689647   $(MODEL_LIB)(prtctl.o) \ 
    99699648   $(MODEL_LIB)(sbc_oce.o) \ 
    9970    $(MODEL_LIB)(sol_oce.o) \ 
    9971    $(MODEL_LIB)(sshwzv.o) \ 
    99729649   $(MODEL_LIB)(trdicp.o) \ 
    99739650   $(MODEL_LIB)(trdicp_oce.o) \ 
     
    99799656   $(MODEL_LIB)(trdvor_oce.o) \ 
    99809657   $(MODEL_LIB)(zdf_oce.o) \ 
    9981    agrif_oce.F90 \ 
    99829658   bdy_oce.F90 \ 
    9983    cla_div.F90 \ 
    9984    divcur.F90 \ 
    99859659   dom_oce.F90 \ 
    99869660   in_out_manager.F90 \ 
     
    99989672   prtctl.F90 \ 
    99999673   sbc_oce.F90 \ 
    10000    sol_oce.F90 \ 
    10001    sshwzv.F90 \ 
    100029674   trdicp.F90 \ 
    100039675   trdicp_oce.F90 \ 
  • branches/DEV_r1924_nocs_latphys/CONFIG/POMME/scripts/BB_make.ldef

    r1791 r2201  
    3434#- 
    3535#- Prefix for preprocessing --- 
     36prefix = -D 
    3637#-Q- sx8mercure prefix = -D 
    3738#-Q- sx9mercure prefix = -D 
  • branches/DEV_r1924_nocs_latphys/NEMO/LIM_SRC_2/limsbc_2.F90

    r1756 r2201  
    8080      INTEGER  ::   ifvt, i1mfr, idfr               ! some switches 
    8181      INTEGER  ::   iflt, ial, iadv, ifral, ifrdv 
    82       INTEGER  ::   ii0, ii1, ij0, ij1  ! temporary integers 
    8382      REAL(wp) ::   zrdtir           ! 1. / rdt_ice 
    8483      REAL(wp) ::   zqsr  , zqns     ! solar & non solar heat flux 
     
    109108         sice_r(:,:) = sice 
    110109         ! 
    111          IF( cp_cfg == "orca"  .AND. jp_cfg == 2 ) THEN 
    112             !                                        ! ======================= 
    113             !                                        !  ORCA_R2 configuration 
    114             !                                        ! ======================= 
    115             ii0 = 145   ;   ii1 = 180        ! Baltic Sea 
    116             ij0 = 113   ;   ij1 = 130   ;   soce_r(mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 4.e0 
    117                                             sice_r(mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 2.e0 
    118          ENDIF 
    119          ! 
    120       ENDIF 
     110         IF( cp_cfg == "orca" ) THEN 
     111           !   ocean/ice salinity in the Baltic sea  
     112           DO jj = 1, jpj 
     113              DO ji = 1, jpi 
     114                 IF( glamt(ji,jj) >= 14. .AND.  glamt(ji,jj) <= 32. .AND. gphit(ji,jj) >= 54. .AND. gphit(ji,jj) <= 66. ) THEN  
     115                   soce_r(ji,jj) = 4.e0  
     116                   sice_r(ji,jj) = 2.e0 
     117                 END IF 
     118              END DO 
     119           END DO 
     120           ! 
     121         END IF 
     122      END IF 
    121123 
    122124      !------------------------------------------! 
  • branches/DEV_r1924_nocs_latphys/NEMO/NST_SRC/agrif_user.F90

    r1876 r2201  
    101101#endif 
    102102 
    103       Call opa_init  ! Initializations of each fine grid 
    104       Call agrif_opa_init 
    105  
    106103      ! Specific fine grid Initializations 
    107104#if defined key_tradmp || defined key_esopa 
     
    113110      lk_obc = .FALSE. 
    114111#endif 
     112 
     113      Call opa_init  ! Initializations of each fine grid 
     114      Call agrif_opa_init 
     115 
    115116      ! 1. Declaration of the type of variable which have to be interpolated 
    116117      !--------------------------------------------------------------------- 
  • branches/DEV_r1924_nocs_latphys/NEMO/OFF_SRC/DOM/phycst.F90

    r1746 r2201  
    3737      rtt      = 273.16_wp  ,  &  !: triple point of temperature (Kelvin) 
    3838      rt0      = 273.15_wp  ,  &  !: freezing point of water (Kelvin) 
    39       rau0     = 1020._wp   ,  &  !: volumic mass of reference (kg/m3) 
    40       rauw     = 1000._wp   ,  &  !: density of pure water (kg/m3) 
     39      rau0     = 1035._wp   ,  &  !: volumic mass of reference (kg/m3) 
    4140      rcp      =    4.e+3_wp,  &  !: ocean specific heat 
    4241      ro0cpr                      !: = 1. / ( rau0 * rcp ) 
     
    127126      ro0cpr = 1. / ( rau0 * rcp ) 
    128127      IF(lwp) WRITE(numout,*) 
    129       IF(lwp) WRITE(numout,*) '          volumic mass of pure water         rauw   = ', rauw, ' kg/m^3' 
    130128      IF(lwp) WRITE(numout,*) '          volumic mass of reference          rau0   = ', rau0, ' kg/m^3' 
    131129      IF(lwp) WRITE(numout,*) '          ocean specific heat                rcp    = ', rcp 
  • branches/DEV_r1924_nocs_latphys/NEMO/OFF_SRC/IOM/iom_ioipsl.F90

    r1749 r2201  
    8181         iln = INDEX( cdname, '.nc' ) 
    8282         IF( ldwrt ) THEN  ! the file should be open in write mode so we create it... 
    83             IF( llclobber ) THEN   ;   clstatus = 'REPLACE'  
    84             ELSE                   ;   clstatus = 'NEW' 
     83            IF( llclobber ) THEN   ;   clstatus = 'REPLACE 64'  
     84            ELSE                   ;   clstatus = 'NEW 64' 
    8585            ENDIF 
    8686            IF( jpnij > 1 ) THEN 
  • branches/DEV_r1924_nocs_latphys/NEMO/OFF_SRC/IOM/iom_nf90.F90

    r1749 r2201  
    9494            IF(lwp) WRITE(numout,*) TRIM(clinfo)//' create new file: '//TRIM(cdname)//' in WRITE mode' 
    9595 
    96             IF( llclobber ) THEN   ;   imode = NF90_CLOBBER  
    97             ELSE                   ;   imode = NF90_NOCLOBBER  
     96            IF( llclobber ) THEN   ;   imode = IOR( NF90_64BIT_OFFSET, NF90_CLOBBER   ) 
     97            ELSE                   ;   imode = IOR( NF90_64BIT_OFFSET, NF90_NOCLOBBER )  
    9898            ENDIF 
    9999            CALL iom_nf90_check(NF90_CREATE( TRIM(cdname), imode, if90id, chunksize = ichunk ), clinfo) 
  • branches/DEV_r1924_nocs_latphys/NEMO/OFF_SRC/lib_mpp.F90

    r1324 r2201  
    105105   !! ========================= !! 
    106106!$AGRIF_DO_NOT_TREAT 
    107 #  include <mpif.h> 
     107   INCLUDE mpif.h 
    108108!$AGRIF_END_DO_NOT_TREAT 
    109109 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DIA/diaar5.F90

    r1756 r2201  
    175175      thick0(:,:) = 0.e0 
    176176      DO jk = 1, jpkm1 
    177          vol0        = vol0        + SUM( area (:,:) * tmask(:,:,jk) ) * e3t_0(jk)  
    178          thick0(:,:) = thick0(:,:) +    tmask_i(:,:) * tmask(:,:,jk)   * e3t_0(jk) 
    179       END DO 
     177         vol0        = vol0        + SUM( area (:,:) * tmask(:,:,jk) * fse3t_0(:,:,jk) ) 
     178         thick0(:,:) = thick0(:,:) +    tmask_i(:,:) * tmask(:,:,jk) * fse3t_0(:,:,jk) 
     179      END DO 
     180      IF( lk_mpp )   CALL mpp_sum( vol0 ) 
    180181       
    181182      CALL iom_open ( 'data_1m_salinity_nomask', inum ) 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DOM/daymod.F90

    r1730 r2201  
    239239      ENDIF 
    240240 
    241       IF( lrst_oce )   CALL day_rst( kt, 'WRITE' ) 
     241      CALL rst_opn( kt )                                ! Open the restart file if needed and control lrst_oce 
     242      IF( lrst_oce )   CALL day_rst( kt, 'WRITE' )      ! write day restart information 
    242243      ! 
    243244   END SUBROUTINE day 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DOM/domvvl.F90

    r1694 r2201  
    6262      IF( lk_zco )   CALL ctl_stop( 'dom_vvl : key_zco is incompatible with variable volume option key_vvl') 
    6363 
    64       fsdept(:,:,:) = gdept (:,:,:) 
    65       fsdepw(:,:,:) = gdepw (:,:,:) 
    66       fsde3w(:,:,:) = gdep3w(:,:,:) 
    67       fse3t (:,:,:) = e3t   (:,:,:) 
    68       fse3u (:,:,:) = e3u   (:,:,:) 
    69       fse3v (:,:,:) = e3v   (:,:,:) 
    70       fse3f (:,:,:) = e3f   (:,:,:) 
    71       fse3w (:,:,:) = e3w   (:,:,:) 
    72       fse3uw(:,:,:) = e3uw  (:,:,:) 
    73       fse3vw(:,:,:) = e3vw  (:,:,:) 
     64      IF( ln_zco) THEN 
     65         DO jk = 1, jpk 
     66            gdept(:,:,jk) = gdept_0(jk) 
     67            gdepw(:,:,jk) = gdepw_0(jk) 
     68            gdep3w(:,:,jk) = gdepw_0(jk) 
     69            e3t (:,:,jk) = e3t_0(jk) 
     70            e3u (:,:,jk) = e3t_0(jk) 
     71            e3v (:,:,jk) = e3t_0(jk) 
     72            e3f (:,:,jk) = e3t_0(jk) 
     73            e3w (:,:,jk) = e3w_0(jk) 
     74            e3uw(:,:,jk) = e3w_0(jk) 
     75            e3vw(:,:,jk) = e3w_0(jk) 
     76         END DO 
     77      ELSE 
     78         fsdept(:,:,:) = gdept (:,:,:) 
     79         fsdepw(:,:,:) = gdepw (:,:,:) 
     80         fsde3w(:,:,:) = gdep3w(:,:,:) 
     81         fse3t (:,:,:) = e3t   (:,:,:) 
     82         fse3u (:,:,:) = e3u   (:,:,:) 
     83         fse3v (:,:,:) = e3v   (:,:,:) 
     84         fse3f (:,:,:) = e3f   (:,:,:) 
     85         fse3w (:,:,:) = e3w   (:,:,:) 
     86         fse3uw(:,:,:) = e3uw  (:,:,:) 
     87         fse3vw(:,:,:) = e3vw  (:,:,:) 
     88      ENDIF 
    7489 
    7590      !                                 !==  mu computation  ==! 
     
    139154      CALL lbc_lnk( sshf_b, 'F', 1. )   ;   CALL lbc_lnk( sshf_n, 'F', 1. ) 
    140155      ! 
     156         DO jk = 1, jpkm1 
     157            fsdept(:,:,jk) = fsdept_n(:,:,jk)          ! now local depths stored in fsdep. arrays 
     158            fsdepw(:,:,jk) = fsdepw_n(:,:,jk) 
     159            fsde3w(:,:,jk) = fsde3w_n(:,:,jk) 
     160            ! 
     161            fse3t (:,:,jk) = fse3t_n (:,:,jk)          ! vertical scale factors stored in fse3. arrays 
     162            fse3u (:,:,jk) = fse3u_n (:,:,jk) 
     163            fse3v (:,:,jk) = fse3v_n (:,:,jk) 
     164            fse3f (:,:,jk) = fse3f_n (:,:,jk) 
     165            fse3w (:,:,jk) = fse3w_n (:,:,jk) 
     166            fse3uw(:,:,jk) = fse3uw_n(:,:,jk) 
     167            fse3vw(:,:,jk) = fse3vw_n(:,:,jk) 
     168         END DO 
     169 
     170 
     171 
    141172   END SUBROUTINE dom_vvl 
    142173 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DOM/domwri.F90

    r1590 r2201  
    4545      !!      domhgr, domzgr, and dommsk. Note: the file contain depends on 
    4646      !!      the vertical coord. used (z-coord, partial steps, s-coord) 
    47       !!                    nmsh = 1  :   'mesh_mask.nc' file 
     47      !!            MOD(nmsh, 3) = 1  :   'mesh_mask.nc' file 
    4848      !!                         = 2  :   'mesh.nc' and mask.nc' files 
    49       !!                         = 3  :   'mesh_hgr.nc', 'mesh_zgr.nc' and 
     49      !!                         = 0  :   'mesh_hgr.nc', 'mesh_zgr.nc' and 
    5050      !!                                  'mask.nc' files 
    5151      !!      For huge size domain, use option 2 or 3 depending on your  
    5252      !!      vertical coordinate. 
     53      !! 
     54      !!      if     nmsh <= 3: write full 3D arrays for e3[tuvw] and gdep[tuvw] 
     55      !!      if 3 < nmsh <= 6: write full 3D arrays for e3[tuvw] and 2D arrays  
     56      !!                        corresponding to the depth of the bottom points hdep[tw] 
     57      !!      if 6 < nmsh <= 9: write 2D arrays corresponding to the depth and the 
     58      !!                        thickness of the bottom points hdep[tw] and e3[tw]_ps 
    5359      !! 
    5460      !! ** output file :  
     
    241247      !                                     !        close the files  
    242248      !                                     ! ============================ 
    243       SELECT CASE ( nmsh ) 
     249      SELECT CASE ( MOD(nmsh, 3) ) 
    244250      CASE ( 1 )                 
    245251         CALL iom_close( inum0 ) 
     
    247253         CALL iom_close( inum1 ) 
    248254         CALL iom_close( inum2 ) 
    249       CASE ( 3 ) 
     255      CASE ( 0 ) 
    250256         CALL iom_close( inum2 ) 
    251257         CALL iom_close( inum3 ) 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DOM/phycst.F90

    r1860 r2201  
    44   !!     Definition of of both ocean and ice parameters used in the code 
    55   !!===================================================================== 
    6    !! History :   OPA  !  1990-10  (C. Levy, G. Madec)  Original code 
    7    !!                  !  1991-11  (G. Madec, M. Imbard) 
    8    !!  NEMO       1.0  !  2002-08  (G. Madec, C. Ethe)  F90, add ice constants 
     6   !! History :   OPA  !  1990-10  (C. Levy - G. Madec)  Original code 
     7   !!             8.1  !  1991-11  (G. Madec, M. Imbard)  cosmetic changes 
     8   !!   NEMO      1.0  !  2002-08  (G. Madec, C. Ethe)  F90, add ice constants 
    99   !!              -   !  2006-08  (G. Madec)  style  
     10   !!             3.2  !  2006-08  (S. Masson, G. Madec)  suppress useless variables + style  
    1011   !!---------------------------------------------------------------------- 
    1112 
     
    2324   REAL(wp), PUBLIC ::   rpi = 3.141592653589793_wp             !: pi 
    2425   REAL(wp), PUBLIC ::   rad = 3.141592653589793_wp / 180._wp   !: conversion from degre into radian 
    25    REAL(wp), PUBLIC ::   rsmall = 0.5 * EPSILON( 1. )           !: smallest real computer value 
     26   REAL(wp), PUBLIC ::   rsmall = 0.5 * EPSILON( 1.e0 )         !: smallest real computer value 
    2627    
    27    REAL(wp), PUBLIC ::          & !: 
    28       rday = 24.*60.*60.  ,     & !: day (s) 
    29       rsiyea              ,     & !: sideral year (s) 
    30       rsiday              ,     & !: sideral day (s) 
    31       raamo =  12._wp     ,     & !: number of months in one year 
    32       rjjhh =  24._wp     ,     & !: number of hours in one day 
    33       rhhmm =  60._wp     ,     & !: number of minutes in one hour 
    34       rmmss =  60._wp     ,     & !: number of seconds in one minute 
    35 !!!   omega = 7.292115083046061e-5_wp ,  &  !: change the last digit! 
    36       omega               ,    &  !: earth rotation parameter 
    37       ra    = 6371229._wp ,    &  !: earth radius (meter) 
    38       grav  = 9.80665_wp          !: gravity (m/s2) 
     28   REAL(wp), PUBLIC ::   rday = 24.*60.*60.       !: day (s) 
     29   REAL(wp), PUBLIC ::   rsiyea                   !: sideral year (s) 
     30   REAL(wp), PUBLIC ::   rsiday                   !: sideral day (s) 
     31   REAL(wp), PUBLIC ::   raamo =  12._wp          !: number of months in one year 
     32   REAL(wp), PUBLIC ::   rjjhh =  24._wp          !: number of hours in one day 
     33   REAL(wp), PUBLIC ::   rhhmm =  60._wp          !: number of minutes in one hour 
     34   REAL(wp), PUBLIC ::   rmmss =  60._wp          !: number of seconds in one minute 
     35!! REAL(wp), PUBLIC ::   omega = 7.292115083046061e-5_wp ,  &  !: change the last digit! 
     36   REAL(wp), PUBLIC ::   omega                    !: earth rotation parameter 
     37   REAL(wp), PUBLIC ::   ra    = 6371229._wp      !: earth radius (meter) 
     38   REAL(wp), PUBLIC ::   grav  = 9.80665_wp       !: gravity (m/s2) 
    3939    
    40    REAL(wp), PUBLIC ::         &  !: 
    41       rtt      = 273.16_wp  ,  &  !: triple point of temperature (Kelvin) 
    42       rt0      = 273.15_wp  ,  &  !: freezing point of water (Kelvin) 
     40   REAL(wp), PUBLIC ::   rtt      = 273.16_wp     !: triple point of temperature (Kelvin) 
     41   REAL(wp), PUBLIC ::   rt0      = 273.15_wp     !: freezing point of water (Kelvin) 
    4342#if defined key_lim3 
    44       rt0_snow = 273.16_wp  ,  &  !: melting point of snow  (Kelvin) 
    45       rt0_ice  = 273.16_wp  ,  &  !: melting point of ice   (Kelvin) 
     43   REAL(wp), PUBLIC ::   rt0_snow = 273.16_wp     !: melting point of snow  (Kelvin) 
     44   REAL(wp), PUBLIC ::   rt0_ice  = 273.16_wp     !: melting point of ice   (Kelvin) 
    4645#else 
    47       rt0_snow = 273.15_wp  ,  &  !: melting point of snow  (Kelvin) 
    48       rt0_ice  = 273.05_wp  ,  &  !: melting point of ice   (Kelvin) 
     46   REAL(wp), PUBLIC ::   rt0_snow = 273.15_wp     !: melting point of snow  (Kelvin) 
     47   REAL(wp), PUBLIC ::   rt0_ice  = 273.05_wp     !: melting point of ice   (Kelvin) 
    4948#endif 
    50       rau0     = 1035._wp   ,  &  !: volumic mass of reference (kg/m3) 
    51       rauw     = 1000._wp   ,  &  !: volumic mass of pure water (kg/m3) 
    52       rcp      =    4.e+3_wp,  &  !: ocean specific heat 
    53       ro0cpr                      !: = 1. / ( rau0 * rcp ) 
    5449 
    55    REAL(wp), PUBLIC ::            &  !: 
     50   REAL(wp), PUBLIC ::   rau0     = 1020._wp      !: reference volumic mass (density)  (kg/m3) 
     51   REAL(wp), PUBLIC ::   rau0r                    !: reference specific volume         (m3/kg) 
     52   REAL(wp), PUBLIC ::   rcp      =    4.e+3_wp   !: ocean specific heat 
     53   REAL(wp), PUBLIC ::   ro0cpr                   !: = 1. / ( rau0 * rcp ) 
     54 
    5655#if defined key_lim3 
    57       rcdsn   =   0.31_wp     ,   &  !: thermal conductivity of snow 
    58       rcdic   =   2.034396_wp ,   &  !: thermal conductivity of fresh ice 
    59       cpic    = 2067.0        ,   & 
    60       lsub    = 2.834e+6      ,   &  !: pure ice latent heat of sublimation (J.kg-1) 
    61       lfus    = 0.334e+6      ,   &  !: latent heat of fusion of fresh ice   (J.kg-1) 
    62       rhoic   = 917._wp       ,   &  !: volumic mass of sea ice (kg/m3) 
    63       tmut    =   0.054       ,   &  !: decrease of seawater meltpoint with salinity 
     56   REAL(wp), PUBLIC ::   rcdsn   =   0.31_wp      !: thermal conductivity of snow 
     57   REAL(wp), PUBLIC ::   rcdic   =   2.034396_wp  !: thermal conductivity of fresh ice 
     58   REAL(wp), PUBLIC ::   cpic    = 2067.0         !: specific heat of sea ice 
     59   REAL(wp), PUBLIC ::   lsub    = 2.834e+6       !: pure ice latent heat of sublimation (J.kg-1) 
     60   REAL(wp), PUBLIC ::   lfus    = 0.334e+6       !: latent heat of fusion of fresh ice   (J.kg-1) 
     61   REAL(wp), PUBLIC ::   rhoic   = 917._wp        !: volumic mass of sea ice (kg/m3) 
     62   REAL(wp), PUBLIC ::   tmut    =   0.054        !: decrease of seawater meltpoint with salinity 
    6463#else 
    65       rcdsn   =   0.22_wp     ,   &  !: conductivity of the snow 
    66       rcdic   =   2.034396_wp ,   &  !: conductivity of the ice 
    67       rcpsn   =   6.9069e+5_wp,   & !: density times specific heat for snow 
    68       rcpic   =   1.8837e+6_wp,   & !: volumetric latent heat fusion of sea ice 
    69       lfus    = 0.3337e+6     ,   &  !: latent heat of fusion of fresh ice   (J.kg-1) 
    70       xlsn    = 110.121e+6_wp ,   &  !: = lfus * rhosn, volumetric latent heat fusion of snow 
    71       xlic    = 300.33e+6_wp  ,   &  !: = lfus * rhosn, volumetric latent heat fusion of ice 
    72       xsn     =   2.8e+6      ,   &  !: latent heat of sublimation of snow 
    73       rhoic   = 900._wp       ,   &  !: volumic mass of sea ice (kg/m3) 
     64   REAL(wp), PUBLIC ::   rcdsn   =   0.22_wp      !: conductivity of the snow 
     65   REAL(wp), PUBLIC ::   rcdic   =   2.034396_wp  !: conductivity of the ice 
     66   REAL(wp), PUBLIC ::   rcpsn   =   6.9069e+5_wp !: density times specific heat for snow 
     67   REAL(wp), PUBLIC ::   rcpic   =   1.8837e+6_wp !: volumetric latent heat fusion of sea ice 
     68   REAL(wp), PUBLIC ::   lfus    =   0.3337e+6    !: latent heat of fusion of fresh ice   (J.kg-1)     
     69   REAL(wp), PUBLIC ::   xlsn    = 110.121e+6_wp  !: volumetric latent heat fusion of snow 
     70   REAL(wp), PUBLIC ::   xlic    = 300.33e+6_wp   !: volumetric latent heat fusion of ice 
     71   REAL(wp), PUBLIC ::   xsn     =   2.8e+6       !: latent heat of sublimation of snow 
     72   REAL(wp), PUBLIC ::   rhoic   = 900._wp        !: volumic mass of sea ice (kg/m3) 
    7473#endif 
    75       rhosn   = 330._wp       ,   &  !: volumic mass of snow (kg/m3) 
    76       emic    =   0.97_wp     ,   &  !: emissivity of snow or ice 
    77       sice    =   6.0_wp      ,   &  !: salinity of ice (psu) 
    78       soce    =  34.7_wp      ,   &  !: salinity of sea (psu) 
    79       cevap   =   2.5e+6_wp   ,   &  !: latent heat of evaporation (water) 
    80       srgamma =   0.9_wp      ,   &  !: correction factor for solar radiation (Oberhuber, 1974) 
    81       vkarmn  =   0.4_wp      ,   &  !: von Karman constant 
    82       stefan  =   5.67e-8_wp         !: Stefan-Boltzmann constant  
    83       !!---------------------------------------------------------------------- 
    84       !! NEMO/OPA 3.2 , LOCEAN-IPSL (2010)  
    85       !! $Id$  
    86       !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    87       !!---------------------------------------------------------------------- 
     74   REAL(wp), PUBLIC ::   rhosn   = 330._wp        !: volumic mass of snow (kg/m3) 
     75   REAL(wp), PUBLIC ::   emic    =   0.97_wp      !: emissivity of snow or ice 
     76   REAL(wp), PUBLIC ::   sice    =   6.0_wp       !: reference salinity of ice (psu) 
     77   REAL(wp), PUBLIC ::   soce    =  34.7_wp       !: reference salinity of sea (psu) 
     78   REAL(wp), PUBLIC ::   cevap   =   2.5e+6_wp    !: latent heat of evaporation (water) 
     79   REAL(wp), PUBLIC ::   srgamma =   0.9_wp       !: correction factor for solar radiation (Oberhuber, 1974) 
     80   REAL(wp), PUBLIC ::   vkarmn  =   0.4_wp       !: von Karman constant 
     81   REAL(wp), PUBLIC ::   stefan  =   5.67e-8_wp   !: Stefan-Boltzmann constant  
     82   !!---------------------------------------------------------------------- 
     83   !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)  
     84   !! $Id$  
     85   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     86   !!---------------------------------------------------------------------- 
    8887    
    8988CONTAINS 
     
    9897      !!---------------------------------------------------------------------- 
    9998 
    100       IF(lwp) WRITE(numout,*) 
    101       IF(lwp) WRITE(numout,*) ' phy_cst : initialization of ocean parameters and constants' 
    102       IF(lwp) WRITE(numout,*) ' ~~~~~~~' 
     99      !                                   ! Define additional parameters 
     100      rsiyea = 365.25 * rday * 2. * rpi / 6.283076 
     101      rsiday = rday / ( 1. + rday / rsiyea ) 
     102      omega  = 2. * rpi / rsiday  
    103103 
    104       ! Ocean Parameters 
    105       ! ---------------- 
    106       IF(lwp) THEN 
     104      rau0r  = 1. /   rau0   
     105      ro0cpr = 1. / ( rau0 * rcp ) 
     106 
     107 
     108      IF(lwp) THEN                        ! control print 
     109         WRITE(numout,*) 
     110         WRITE(numout,*) ' phy_cst : initialization of ocean parameters and constants' 
     111         WRITE(numout,*) ' ~~~~~~~' 
    107112         WRITE(numout,*) '       Domain info' 
    108113         WRITE(numout,*) '          dimension of model' 
     
    117122         WRITE(numout,*) '             jpnij   : ', jpnij 
    118123         WRITE(numout,*) '          lateral domain boundary condition type : jperio  = ', jperio 
    119       ENDIF 
    120  
    121       ! Define constants 
    122       ! ---------------- 
    123       IF(lwp) WRITE(numout,*) 
    124       IF(lwp) WRITE(numout,*) '       Constants' 
    125  
    126       IF(lwp) WRITE(numout,*) 
    127       IF(lwp) WRITE(numout,*) '          mathematical constant                 rpi = ', rpi 
    128  
    129       rsiyea = 365.25 * rday * 2. * rpi / 6.283076 
    130       rsiday = rday / ( 1. + rday / rsiyea ) 
    131       omega  = 2. * rpi / rsiday  
    132       IF(lwp) WRITE(numout,*) 
    133       IF(lwp) WRITE(numout,*) '          day                                rday   = ', rday,   ' s' 
    134       IF(lwp) WRITE(numout,*) '          sideral year                       rsiyea = ', rsiyea, ' s' 
    135       IF(lwp) WRITE(numout,*) '          sideral day                        rsiday = ', rsiday, ' s' 
    136       IF(lwp) WRITE(numout,*) '          omega                              omega  = ', omega,  ' s-1' 
    137  
    138       IF(lwp) WRITE(numout,*) 
    139       IF(lwp) WRITE(numout,*) '          nb of months per year               raamo = ', raamo, ' months' 
    140       IF(lwp) WRITE(numout,*) '          nb of hours per day                 rjjhh = ', rjjhh, ' hours' 
    141       IF(lwp) WRITE(numout,*) '          nb of minutes per hour              rhhmm = ', rhhmm, ' mn' 
    142       IF(lwp) WRITE(numout,*) '          nb of seconds per minute            rmmss = ', rmmss, ' s' 
    143  
    144       IF(lwp) WRITE(numout,*) 
    145       IF(lwp) WRITE(numout,*) '          earth radius                         ra   = ', ra, ' m' 
    146       IF(lwp) WRITE(numout,*) '          gravity                              grav = ', grav , ' m/s^2' 
    147  
    148       IF(lwp) WRITE(numout,*) 
    149       IF(lwp) WRITE(numout,*) '          triple point of temperature      rtt      = ', rtt     , ' K' 
    150       IF(lwp) WRITE(numout,*) '          freezing point of water          rt0      = ', rt0     , ' K' 
    151       IF(lwp) WRITE(numout,*) '          melting point of snow            rt0_snow = ', rt0_snow, ' K' 
    152       IF(lwp) WRITE(numout,*) '          melting point of ice             rt0_ice  = ', rt0_ice , ' K' 
    153  
    154       ro0cpr = 1. / ( rau0 * rcp ) 
    155       IF(lwp) WRITE(numout,*) 
    156       IF(lwp) WRITE(numout,*) '          volumic mass of pure water         rauw   = ', rauw, ' kg/m^3' 
    157       IF(lwp) WRITE(numout,*) '          volumic mass of reference          rau0   = ', rau0, ' kg/m^3' 
    158       IF(lwp) WRITE(numout,*) '          ocean specific heat                rcp    = ', rcp 
    159       IF(lwp) WRITE(numout,*) '                       1. / ( rau0 * rcp ) = ro0cpr = ', ro0cpr 
    160  
    161 #if defined key_lim3 
    162       xlsn = lfus * rhosn        ! volumetric latent heat fusion of snow [J/m3] 
    163 #else 
    164       lfus = xlsn / rhosn        ! latent heat of fusion of fresh ice 
    165 #endif 
    166  
    167       IF(lwp) THEN 
     124         WRITE(numout,*) 
     125         WRITE(numout,*) '       Constants' 
     126         WRITE(numout,*) 
     127         WRITE(numout,*) '          mathematical constant                 rpi = ', rpi 
     128         WRITE(numout,*) '          day                                rday   = ', rday,   ' s' 
     129         WRITE(numout,*) '          sideral year                       rsiyea = ', rsiyea, ' s' 
     130         WRITE(numout,*) '          sideral day                        rsiday = ', rsiday, ' s' 
     131         WRITE(numout,*) '          omega                              omega  = ', omega,  ' s-1' 
     132         WRITE(numout,*) 
     133         WRITE(numout,*) '          nb of months per year               raamo = ', raamo, ' months' 
     134         WRITE(numout,*) '          nb of hours per day                 rjjhh = ', rjjhh, ' hours' 
     135         WRITE(numout,*) '          nb of minutes per hour              rhhmm = ', rhhmm, ' mn' 
     136         WRITE(numout,*) '          nb of seconds per minute            rmmss = ', rmmss, ' s' 
     137         WRITE(numout,*) 
     138         WRITE(numout,*) '          earth radius                         ra   = ', ra, ' m' 
     139         WRITE(numout,*) '          gravity                              grav = ', grav , ' m/s^2' 
     140         WRITE(numout,*) 
     141         WRITE(numout,*) '          triple point of temperature      rtt      = ', rtt     , ' K' 
     142         WRITE(numout,*) '          freezing point of water          rt0      = ', rt0     , ' K' 
     143         WRITE(numout,*) '          melting point of snow            rt0_snow = ', rt0_snow, ' K' 
     144         WRITE(numout,*) '          melting point of ice             rt0_ice  = ', rt0_ice , ' K' 
     145         WRITE(numout,*) 
     146         WRITE(numout,*) '          ocean reference volumic mass       rau0   = ', rau0 , ' kg/m^3' 
     147         WRITE(numout,*) '          ocean reference specific volume    rau0r  = ', rau0r, ' m^3/Kg' 
     148         WRITE(numout,*) '          ocean specific heat                rcp    = ', rcp 
     149         WRITE(numout,*) '                       1. / ( rau0 * rcp ) = ro0cpr = ', ro0cpr 
    168150         WRITE(numout,*) 
    169151         WRITE(numout,*) '          thermal conductivity of the snow          = ', rcdsn   , ' J/s/m/K' 
     
    189171         WRITE(numout,*) '          von Karman constant                       = ', vkarmn  
    190172         WRITE(numout,*) '          Stefan-Boltzmann constant                 = ', stefan  , ' J/s/m^2/K^4' 
    191  
    192173         WRITE(numout,*) 
    193174         WRITE(numout,*) '          conversion: degre ==> radian          rad = ', rad 
    194  
    195175         WRITE(numout,*) 
    196176         WRITE(numout,*) '          smallest real computer value       rsmall = ', rsmall 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r1779 r2201  
    595595            vn_b (:,:) = vn_b(:,:) * hvr(:,:) 
    596596         ENDIF 
     597         IF( iom_varid( numror, 'sshn_b', ldstop = .FALSE. ) > 0 ) THEN 
     598            CALL iom_get( numror, jpdom_autoglo, 'sshn_b' , sshn_b (:,:) )   ! filtered extrenal ssh 
     599         ELSE 
     600            sshn_b(:,:)=sshb(:,:)   ! if not in restart set previous time mean to current baroclinic before value    
     601         ENDIF  
    597602      ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN 
    598          CALL iom_rstput( kt, nitrst, numrow, 'un_b'  , un_b  (:,:) )   ! external velocity issued 
    599          CALL iom_rstput( kt, nitrst, numrow, 'vn_b'  , vn_b  (:,:) )   ! from barotropic loop 
     603         CALL iom_rstput( kt, nitrst, numrow, 'un_b'   , un_b  (:,:) )   ! external velocity and ssh 
     604         CALL iom_rstput( kt, nitrst, numrow, 'vn_b'   , vn_b  (:,:) )   ! issued from barotropic loop 
     605         CALL iom_rstput( kt, nitrst, numrow, 'sshn_b' , sshn_b(:,:) )   !  
    600606      ENDIF 
    601607      ! 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/IOM/iom_ioipsl.F90

    r1488 r2201  
    8181         iln = INDEX( cdname, '.nc' ) 
    8282         IF( ldwrt ) THEN  ! the file should be open in write mode so we create it... 
    83             IF( llclobber ) THEN   ;   clstatus = 'REPLACE'  
    84             ELSE                   ;   clstatus = 'NEW' 
     83            IF( llclobber ) THEN   ;   clstatus = 'REPLACE 64'  
     84            ELSE                   ;   clstatus = 'NEW 64' 
    8585            ENDIF 
    8686            IF( jpnij > 1 ) THEN 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/IOM/iom_nf90.F90

    r1488 r2201  
    9494            IF(lwp) WRITE(numout,*) TRIM(clinfo)//' create new file: '//TRIM(cdname)//' in WRITE mode' 
    9595 
    96             IF( llclobber ) THEN   ;   imode = NF90_CLOBBER  
    97             ELSE                   ;   imode = NF90_NOCLOBBER  
     96            IF( llclobber ) THEN   ;   imode = IOR( NF90_64BIT_OFFSET, NF90_CLOBBER   ) 
     97            ELSE                   ;   imode = IOR( NF90_64BIT_OFFSET, NF90_NOCLOBBER )  
    9898            ENDIF 
    9999            CALL iom_nf90_check(NF90_CREATE( TRIM(cdname), imode, if90id, chunksize = ichunk ), clinfo) 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/IOM/prtctl.F90

    r1613 r2201  
    120120      IF( PRESENT(tab2d_1) )  ztab2d_1(:,:)  = tab2d_1(:,:) 
    121121      IF( PRESENT(tab2d_2) )  ztab2d_2(:,:)  = tab2d_2(:,:) 
    122       IF( PRESENT(tab3d_1) )  ztab3d_1(:,:,:)= tab3d_1(:,:,:) 
    123       IF( PRESENT(tab3d_2) )  ztab3d_2(:,:,:)= tab3d_2(:,:,:) 
     122      IF( PRESENT(tab3d_1) )  ztab3d_1(:,:,1:kdir)= tab3d_1(:,:,:) 
     123      IF( PRESENT(tab3d_2) )  ztab3d_2(:,:,1:kdir)= tab3d_2(:,:,:) 
    124124      IF( PRESENT(mask1)   )  zmask1  (:,:,:)= mask1  (:,:,:) 
    125125      IF( PRESENT(mask2)   )  zmask2  (:,:,:)= mask2  (:,:,:) 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/LDF/ldfdyn_c1d.h90

    r1152 r2201  
    2727 
    2828      !! * Local variables 
     29      INTEGER :: jk   ! dummy loop indice 
    2930      REAL(wp) ::   zdam, zwam, zm00, zm01, zmhf, zmhs 
    3031      REAL(wp) ::   zahmf, zahms 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obc_oce.F90

    r1818 r2201  
    8787   INTEGER ::   nje1m2, nje0m1    !: do loop index in mpp case for jpjefm1-1,jpjed 
    8888 
    89    REAL(wp), DIMENSION(jpjed:jpjef) ::   &  !: 
     89   REAL(wp), DIMENSION(jpj) ::   &  !: 
    9090      sshfoe,           & !: now climatology of the east boundary sea surface height 
    9191      ubtfoe,vbtfoe       !: now climatology of the east boundary barotropic transport 
     
    9797      !                   ! in the obcdyn.F90 routine 
    9898 
    99    REAL(wp), DIMENSION(jpjed:jpjef,jpj) ::   sshfoe_b      !: east boundary ssh correction averaged over the barotropic loop 
    100       !                                                    !  (if Flather's algoritm applied at open boundary) 
     99   REAL(wp), DIMENSION(jpi,jpj) ::   sshfoe_b      !: east boundary ssh correction averaged over the barotropic loop 
     100      !                                            !  (if Flather's algoritm applied at open boundary) 
    101101 
    102102   !!------------------------------- 
     
    124124   INTEGER ::   njw1m2, njw0m1     !: do loop index in mpp case for jpjwfm2,jpjwd 
    125125 
    126    REAL(wp), DIMENSION(jpjwd:jpjwf) ::   &  !: 
     126   REAL(wp), DIMENSION(jpj) ::   &  !: 
    127127      sshfow,           & !: now climatology of the west boundary sea surface height 
    128128      ubtfow,vbtfow       !: now climatology of the west boundary barotropic transport 
     
    134134      !                   !  in the obcdyn.F90 routine 
    135135 
    136    REAL(wp), DIMENSION(jpjwd:jpjwf,jpj) ::   sshfow_b    !: west boundary ssh correction averaged over the barotropic loop 
    137       !                                                  !  (if Flather's algoritm applied at open boundary) 
     136   REAL(wp), DIMENSION(jpi,jpj) ::   sshfow_b    !: west boundary ssh correction averaged over the barotropic loop 
     137      !                                          !  (if Flather's algoritm applied at open boundary) 
    138138 
    139139   !!------------------------------- 
     
    162162   INTEGER ::   njn0m1, njn1m1     !: do loop index in mpp case for jpnob-1 
    163163 
    164    REAL(wp), DIMENSION(jpind:jpinf) ::   &  !: 
     164   REAL(wp), DIMENSION(jpi) ::   &  !: 
    165165      sshfon,           & !: now climatology of the north boundary sea surface height 
    166166      ubtfon,vbtfon       !: now climatology of the north boundary barotropic transport 
     
    172172      !                   !  in yhe obcdyn.F90 routine 
    173173 
    174    REAL(wp), DIMENSION(jpind:jpinf,jpj) ::   sshfon_b      !: north boundary ssh correction averaged over the barotropic loop 
    175       !                                                    !  (if Flather's algoritm applied at open boundary) 
     174   REAL(wp), DIMENSION(jpi,jpj) ::   sshfon_b      !: north boundary ssh correction averaged over the barotropic loop 
     175      !                                            !  (if Flather's algoritm applied at open boundary) 
    176176 
    177177   !!-------------------------------- 
     
    199199   INTEGER ::   njs0p1, njs1p1     !: do loop index in mpp case for jpsob+1 
    200200 
    201    REAL(wp), DIMENSION(jpisd:jpisf) ::    &   !: 
     201   REAL(wp), DIMENSION(jpi) ::    &   !: 
    202202      sshfos,           & !: now climatology of the south boundary sea surface height 
    203203      ubtfos,vbtfos       !: now climatology of the south boundary barotropic transport 
     
    209209      !                   !  in the obcdyn.F90 routine 
    210210 
    211    REAL(wp), DIMENSION(jpisd:jpisf,jpj) ::   sshfos_b     !: south boundary ssh correction averaged over the barotropic loop 
    212       !                                                   !  (if Flather's algoritm applied at open boundary) 
     211   REAL(wp), DIMENSION(jpi,jpj) ::   sshfos_b     !: south boundary ssh correction averaged over the barotropic loop 
     212      !                                           !  (if Flather's algoritm applied at open boundary) 
    213213 
    214214   !!-------------------------------- 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obc_par.F90

    r1876 r2201  
    4747   !! open boundary parameter 
    4848   !!--------------------------------------------------------------------- 
    49    INTEGER ::     &  !: time dimension of the BCS fields on input 
     49   INTEGER, PARAMETER ::     &  !: time dimension of the BCS fields on input 
    5050      jptobc  =         2  
    5151   !! * EAST open boundary 
    52    LOGICAL ::     &  !: 
     52   LOGICAL, PARAMETER ::     &  !: 
    5353      lp_obc_east = .FALSE.     !: to active or not the East open boundary 
    54    INTEGER ::     &  
     54     INTEGER   & 
     55#if !defined key_agrif 
     56     , PARAMETER   &  
     57#endif 
     58    ::     &  
    5559      jpieob  = jpiglo-2,    &  !: i-localization of the East open boundary (must be ocean U-point) 
    5660      jpjed   =        2,    &  !: j-starting indice of the East open boundary (must be land T-point) 
     
    6064 
    6165   !! * WEST open boundary 
    62    LOGICAL ::     &  !: 
     66   LOGICAL, PARAMETER ::     &  !: 
    6367      lp_obc_west = .FALSE.     !: to active or not the West open boundary 
    64    INTEGER ::     &  !: 
     68     INTEGER   & 
     69#if !defined key_agrif 
     70     , PARAMETER   &  
     71#endif 
     72    ::     &  
    6573      jpiwob  =          2,    &  !: i-localization of the West open boundary (must be ocean U-point) 
    6674      jpjwd   =          2,    &  !: j-starting indice of the West open boundary (must be land T-point) 
     
    7078 
    7179   !! * NORTH open boundary 
    72    LOGICAL ::     &  !: 
     80   LOGICAL, PARAMETER ::     &  !: 
    7381      lp_obc_north = .FALSE.    !: to active or not the North open boundary 
    74    INTEGER ::     &  !: 
     82     INTEGER   & 
     83#if !defined key_agrif 
     84     , PARAMETER   &  
     85#endif 
     86    ::     &  
    7587      jpjnob  = jpjglo-2,    &  !: j-localization of the North open boundary (must be ocean V-point) 
    7688      jpind   =        2,    &  !: i-starting indice of the North open boundary (must be land T-point) 
     
    8092 
    8193   !! * SOUTH open boundary 
    82    LOGICAL ::     &  !: 
     94   LOGICAL, PARAMETER ::     &  !: 
    8395      lp_obc_south = .FALSE.    !: to active or not the South open boundary 
    84    INTEGER ::     &  !: 
     96     INTEGER   & 
     97#if !defined key_agrif 
     98     , PARAMETER   &  
     99#endif 
     100    ::     &  
    85101      jpjsob  =        2,    &  !: j-localization of the South open boundary (must be ocean V-point) 
    86102      jpisd   =        2,    &  !: i-starting indice of the South open boundary (must be land T-point) 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcdta.F90

    r1876 r2201  
    11MODULE obcdta 
    2   !!============================================================================== 
    3   !!                            ***  MODULE obcdta  *** 
    4   !! Open boundary data : read the data for the open boundaries. 
    5   !!============================================================================== 
     2   !!============================================================================== 
     3   !!                            ***  MODULE obcdta  *** 
     4   !! Open boundary data : read the data for the open boundaries. 
     5   !!============================================================================== 
    66#if defined key_obc 
    7   !!------------------------------------------------------------------------------ 
    8   !!   'key_obc'         :                                Open Boundary Conditions 
    9   !!------------------------------------------------------------------------------ 
    10   !!   obc_dta           : read u, v, t, s data along each open boundary 
    11   !!------------------------------------------------------------------------------ 
    12   !! * Modules used 
    13   USE oce             ! ocean dynamics and tracers  
    14   USE dom_oce         ! ocean space and time domain 
    15   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    16   USE phycst          ! physical constants 
    17   USE obc_oce         ! ocean open boundary conditions 
    18   USE in_out_manager  ! I/O logical units 
    19   USE lib_mpp         ! distributed memory computing 
    20   USE dynspg_oce 
    21   USE ioipsl          ! now only for  ymds2ju function  
    22   USE iom             !  
    23  
    24   IMPLICIT NONE 
    25   PRIVATE 
    26  
    27   !! * Accessibility 
    28   PUBLIC obc_dta      ! routines called by step.F90 
    29   PUBLIC obc_dta_bt   ! routines called by dynspg_ts.F90 
    30  
    31   !! * Shared module variables 
    32   REAL(wp),  DIMENSION(2)              ::  zjcnes_obc   !  
    33   REAL(wp),  DIMENSION(:), ALLOCATABLE :: ztcobc 
    34   REAL(wp) :: rdt_obc 
    35   REAL(wp) :: zjcnes 
    36   INTEGER :: imm0, iyy0, idd0, iyy, imm, idd 
    37   INTEGER :: nt_a=2, nt_b=1, itobc, ndate0_cnes, nday_year0 
    38   INTEGER ::  itobce, itobcw, itobcs, itobcn, itobc_b  ! number of time steps in OBC files 
    39  
    40   INTEGER ::   & 
    41        ntobc      , &     !:  where we are in the obc file 
    42        ntobc_b    , &     !:  first record used 
    43        ntobc_a            !:  second record used 
    44  
    45   CHARACTER (len=40) :: &    ! name of data files 
    46        cl_obc_eTS   , cl_obc_eU,  & 
    47        cl_obc_wTS   , cl_obc_wU,  & 
    48        cl_obc_nTS   , cl_obc_nV,  & 
    49        cl_obc_sTS   , cl_obc_sV 
    50  
    51   ! arrays used for interpolating time dependent data on the boundaries 
    52   REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uedta, vedta, tedta, sedta    ! East 
    53   REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uwdta, vwdta, twdta, swdta    ! West 
    54   REAL(wp), DIMENSION(jpi,jpk,jptobc) :: undta, vndta, tndta, sndta    ! North 
    55   REAL(wp), DIMENSION(jpi,jpk,jptobc) :: usdta, vsdta, tsdta, ssdta    ! South 
    56  
    57   LOGICAL, DIMENSION (jpj,jpk ) :: ltemsk=.TRUE., luemsk=.TRUE., lvemsk=.TRUE.  ! boolean msks 
    58   LOGICAL, DIMENSION (jpj,jpk ) :: ltwmsk=.TRUE., luwmsk=.TRUE., lvwmsk=.TRUE.  ! used for outliers 
    59   LOGICAL, DIMENSION (jpi,jpk ) :: ltnmsk=.TRUE., lunmsk=.TRUE., lvnmsk=.TRUE.  ! checks 
    60   LOGICAL, DIMENSION (jpi,jpk ) :: ltsmsk=.TRUE., lusmsk=.TRUE., lvsmsk=.TRUE. 
    61  
    62   !! * Substitutions 
     7   !!------------------------------------------------------------------------------ 
     8   !!   'key_obc'         :                                Open Boundary Conditions 
     9   !!------------------------------------------------------------------------------ 
     10   !!   obc_dta           : read u, v, t, s data along each open boundary 
     11   !!------------------------------------------------------------------------------ 
     12   !! * Modules used 
     13   USE oce             ! ocean dynamics and tracers  
     14   USE dom_oce         ! ocean space and time domain 
     15   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
     16   USE phycst          ! physical constants 
     17   USE obc_par         ! ocean open boundary conditions 
     18   USE obc_oce         ! ocean open boundary conditions 
     19   USE in_out_manager  ! I/O logical units 
     20   USE lib_mpp         ! distributed memory computing 
     21   USE dynspg_oce 
     22   USE ioipsl          ! now only for  ymds2ju function  
     23   USE iom             !  
     24 
     25   IMPLICIT NONE 
     26   PRIVATE 
     27 
     28   !! * Accessibility 
     29   PUBLIC obc_dta      ! routines called by step.F90 
     30   PUBLIC obc_dta_bt   ! routines called by dynspg_ts.F90 
     31 
     32   !! * Shared module variables 
     33   REAL(wp),  DIMENSION(2)              ::  zjcnes_obc   !  
     34   REAL(wp),  DIMENSION(:), ALLOCATABLE :: ztcobc 
     35   REAL(wp) :: rdt_obc 
     36   REAL(wp) :: zjcnes 
     37   INTEGER :: imm0, iyy0, idd0, iyy, imm, idd 
     38   INTEGER :: nt_a=2, nt_b=1, itobc, ndate0_cnes, nday_year0 
     39   INTEGER ::  itobce, itobcw, itobcs, itobcn, itobc_b  ! number of time steps in OBC files 
     40 
     41   INTEGER ::   & 
     42      ntobc      , &     !:  where we are in the obc file 
     43      ntobc_b    , &     !:  first record used 
     44      ntobc_a            !:  second record used 
     45 
     46   CHARACTER (len=40) :: &    ! name of data files 
     47      cl_obc_eTS   , cl_obc_eU,  & 
     48      cl_obc_wTS   , cl_obc_wU,  & 
     49      cl_obc_nTS   , cl_obc_nV,  & 
     50      cl_obc_sTS   , cl_obc_sV 
     51 
     52# if defined key_dynspg_ts 
     53   ! bt arrays for interpolating time dependent data on the boundaries 
     54   INTEGER :: nt_m=0, ntobc_m 
     55   REAL(wp), DIMENSION(jpj,0:jptobc) :: ubtedta, vbtedta, sshedta  ! East 
     56   REAL(wp), DIMENSION(jpj,0:jptobc) :: ubtwdta, vbtwdta, sshwdta ! West 
     57   REAL(wp), DIMENSION(jpi,0:jptobc) :: ubtndta, vbtndta, sshndta ! North 
     58   REAL(wp), DIMENSION(jpi,0:jptobc) :: ubtsdta, vbtsdta, sshsdta ! South 
     59   ! arrays used for interpolating time dependent data on the boundaries 
     60   REAL(wp), DIMENSION(jpj,jpk,0:jptobc) :: uedta, vedta, tedta, sedta    ! East 
     61   REAL(wp), DIMENSION(jpj,jpk,0:jptobc) :: uwdta, vwdta, twdta, swdta    ! West 
     62   REAL(wp), DIMENSION(jpi,jpk,0:jptobc) :: undta, vndta, tndta, sndta    ! North 
     63   REAL(wp), DIMENSION(jpi,jpk,0:jptobc) :: usdta, vsdta, tsdta, ssdta    ! South 
     64# else 
     65   ! bt arrays for interpolating time dependent data on the boundaries 
     66   REAL(wp), DIMENSION(jpj,jptobc) :: ubtedta, vbtedta, sshedta  ! East 
     67   REAL(wp), DIMENSION(jpj,jptobc) :: ubtwdta, vbtwdta, sshwdta        ! West 
     68   REAL(wp), DIMENSION(jpi,jptobc) :: ubtndta, vbtndta, sshndta        ! North 
     69   REAL(wp), DIMENSION(jpi,jptobc) :: ubtsdta, vbtsdta, sshsdta        ! South 
     70   ! arrays used for interpolating time dependent data on the boundaries 
     71   REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uedta, vedta, tedta, sedta    ! East 
     72   REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uwdta, vwdta, twdta, swdta    ! West 
     73   REAL(wp), DIMENSION(jpi,jpk,jptobc) :: undta, vndta, tndta, sndta    ! North 
     74   REAL(wp), DIMENSION(jpi,jpk,jptobc) :: usdta, vsdta, tsdta, ssdta    ! South 
     75# endif 
     76   LOGICAL, DIMENSION (jpj,jpk ) :: ltemsk=.TRUE., luemsk=.TRUE., lvemsk=.TRUE.  ! boolean msks 
     77   LOGICAL, DIMENSION (jpj,jpk ) :: ltwmsk=.TRUE., luwmsk=.TRUE., lvwmsk=.TRUE.  ! used for outliers 
     78   LOGICAL, DIMENSION (jpi,jpk ) :: ltnmsk=.TRUE., lunmsk=.TRUE., lvnmsk=.TRUE.  ! checks 
     79   LOGICAL, DIMENSION (jpi,jpk ) :: ltsmsk=.TRUE., lusmsk=.TRUE., lvsmsk=.TRUE. 
     80 
     81   !! * Substitutions 
    6382#  include "obc_vectopt_loop_substitute.h90" 
     83#  include "domzgr_substitute.h90" 
    6484   !!---------------------------------------------------------------------- 
    6585   !!   OPA 9.0 , LOCEAN-IPSL (2006) 
     
    7090CONTAINS 
    7191 
    72   SUBROUTINE obc_dta( kt ) 
    73     !!--------------------------------------------------------------------------- 
    74     !!                      ***  SUBROUTINE obc_dta  *** 
    75     !!                     
    76     !! ** Purpose :   Find the climatological  boundary arrays for the specified date,  
    77     !!                The boundary arrays are netcdf files. Three possible cases:  
    78     !!                - one time frame only in the file (time dimension = 1). 
    79     !!                in that case the boundary data does not change in time. 
    80     !!                - many time frames. In that case,  if we have 12 frames 
    81     !!                we assume monthly fields.  
    82     !!                Else, we assume that time_counter is in seconds  
    83     !!                since the beginning of either the current year or a reference 
    84     !!                year given in the namelist. 
    85     !!                (no check is done so far but one would have to check the "unit" 
    86     !!                 attribute of variable time_counter). 
    87     !! 
    88     !! 
    89     !! History : 
    90     !!        !  98-05 (J.M. Molines) Original code 
    91     !!   8.5  !  02-10 (C. Talandier, A-M. Treguier) Free surface, F90 
    92     !! 
    93     !!   9.0  !  04-06 (F. Durand, A-M. Treguier) Netcdf BC files on input 
    94     !!        !  2007-2008 (C. Langlais, P. Mathiot, J.M. Molines) high frequency boundaries data 
    95     !!--------------------------------------------------------------------------- 
    96     !! * Arguments 
    97     INTEGER, INTENT( in ) ::   kt          ! ocean time-step index 
    98  
    99     !! * Local declarations 
    100     INTEGER ::   ji, jj, jk, ii, ij ,it  ! dummy loop indices 
    101     INTEGER ::  ikprint                                ! frequency for printouts. 
    102     INTEGER, SAVE :: immfile, iyyfile                     ! 
    103     INTEGER :: nt              !  record indices (incrementation) 
    104     INTEGER :: istop           ! local error check 
    105  
    106     REAL(wp) ::   zxy, znum, zden ! time interpolation weight 
    107  
    108     ! variables for the julian day calculation 
    109     INTEGER :: iyear, imonth, iday 
    110     REAL(wp) :: zsec , zjulian, zjuliancnes    
    111  
    112     ! IOM STUFF 
    113     INTEGER ::  idvar, id_e, id_w, id_n, id_s, id_x       ! file identifiers 
    114     INTEGER, DIMENSION(1)  :: itmp 
    115     CHARACTER(LEN=25) :: cl_vname 
    116  
    117     !!--------------------------------------------------------------------------- 
    118  
    119     ! 0.  initialisation : 
    120     ! -------------------- 
    121     IF ( kt == nit000  )  CALL obc_dta_ini ( kt ) 
    122     IF ( nobc_dta == 0 )  RETURN   ! already done in obc_dta_ini 
    123     IF ( itobc == 1    )  RETURN   ! case of only one time frame in file done in obc_dta_ini 
    124  
    125     ! in the following code, we assume that obc data are read from files, with more than 1 time frame in it 
    126  
    127     iyyfile=iyy ; immfile = 00  ! set component of the current file name 
    128     IF ( cffile /= 'annual') immfile = imm   !  
    129     IF ( ln_obc_clim       ) iyyfile = 0000  ! assume that climatological files are labeled y0000 
    130  
    131     ! 1. Synchronize time of run with time of data files 
    132     !--------------------------------------------------- 
    133     ! nday_year is the day number in the current year ( 1 for 01/01 ) 
    134     zsec=MOD( (kt-nit000)*rdt - (nday_year - nday_year0 )*rday, rday ) ! number of seconds in the current day 
    135     IF (ln_obc_clim)  THEN  
    136       zjcnes = nday_year - 1  + zsec/rday 
    137     ELSE 
    138       zjcnes = zjcnes + rdt/rday 
    139     ENDIF 
    140  
    141     ! look for 'before' record number in the current file 
    142     ntobc = nrecbef ()  ! this function return the record number for 'before', relative to zjcnes 
    143  
    144     IF (MOD(kt-1,10)==0) THEN 
    145        IF (lwp) WRITE(numout,*) 'kt= ',kt,' zjcnes =', zjcnes,' ndastp =',ndastp, 'mm =',imm  
    146     END IF 
    147  
    148     ! 2. read a new data if necessary  
    149     !-------------------------------- 
    150     IF ( ntobc /= ntobc_b ) THEN 
    151     ! we need to read the 'after' record 
    152     ! swap working index: 
    153     nt=nt_b ; nt_b=nt_a ; nt_a=nt 
    154     ntobc_b = ntobc 
    155  
    156     ! new record number : 
    157     ntobc_a = ntobc_a + 1  
    158  
    159     ! all tricky things related to record number, changing files etc... are managed by obc_read 
    160       
    161     CALL obc_read (kt, nt_a, ntobc_a, iyyfile, immfile ) 
    162  
    163     ! update zjcnes_obc 
    164     zjcnes_obc(nt_b)= ztcobc(ntobc_b) 
    165     zjcnes_obc(nt_a)= ztcobc(ntobc_a) 
    166     ENDIF 
    167  
    168     ! 3.   interpolation at each time step 
    169     ! ------------------------------------ 
    170     IF ( ln_obc_clim) THEN 
    171       znum= MOD(zjcnes           - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) ) ; IF ( znum < 0 ) znum = znum + REAL(nyear_len(1),wp) 
    172       zden= MOD(zjcnes_obc(nt_a) - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) ) ; IF ( zden < 0 ) zden = zden + REAL(nyear_len(1),wp) 
    173     ELSE 
    174       znum= zjcnes           - zjcnes_obc(nt_b) 
    175       zden= zjcnes_obc(nt_a) - zjcnes_obc(nt_b) 
    176     ENDIF 
    177     zxy = znum / zden 
    178  
    179     IF( lp_obc_east ) THEN 
    180        !  fills sfoe, tfoe, ufoe ,vfoe 
    181        sfoe(:,:) = zxy * sedta (:,:,nt_a) + (1. - zxy)*sedta(:,:,nt_b) 
    182        tfoe(:,:) = zxy * tedta (:,:,nt_a) + (1. - zxy)*tedta(:,:,nt_b) 
    183        ufoe(:,:) = zxy * uedta (:,:,nt_a) + (1. - zxy)*uedta(:,:,nt_b) 
    184        vfoe(:,:) = zxy * vedta (:,:,nt_a) + (1. - zxy)*vedta(:,:,nt_b) 
    185     ENDIF 
    186  
    187     IF( lp_obc_west) THEN 
    188        !  fills sfow, tfow, ufow ,vfow 
    189        sfow(:,:) = zxy * swdta (:,:,nt_a) + (1. - zxy)*swdta(:,:,nt_b) 
    190        tfow(:,:) = zxy * twdta (:,:,nt_a) + (1. - zxy)*twdta(:,:,nt_b) 
    191        ufow(:,:) = zxy * uwdta (:,:,nt_a) + (1. - zxy)*uwdta(:,:,nt_b) 
    192        vfow(:,:) = zxy * vwdta (:,:,nt_a) + (1. - zxy)*vwdta(:,:,nt_b) 
    193     ENDIF 
    194  
    195     IF( lp_obc_north) THEN 
    196        !  fills sfon, tfon, ufon ,vfon 
    197        sfon(:,:) = zxy * sndta (:,:,nt_a) + (1. - zxy)*sndta(:,:,nt_b) 
    198        tfon(:,:) = zxy * tndta (:,:,nt_a) + (1. - zxy)*tndta(:,:,nt_b) 
    199        ufon(:,:) = zxy * undta (:,:,nt_a) + (1. - zxy)*undta(:,:,nt_b) 
    200        vfon(:,:) = zxy * vndta (:,:,nt_a) + (1. - zxy)*vndta(:,:,nt_b) 
    201     ENDIF 
    202  
    203     IF( lp_obc_south) THEN 
    204        !  fills sfos, tfos, ufos ,vfos 
    205        sfos(:,:) = zxy * ssdta (:,:,nt_a) + (1. - zxy)*ssdta(:,:,nt_b) 
    206        tfos(:,:) = zxy * tsdta (:,:,nt_a) + (1. - zxy)*tsdta(:,:,nt_b) 
    207        ufos(:,:) = zxy * usdta (:,:,nt_a) + (1. - zxy)*usdta(:,:,nt_b) 
    208        vfos(:,:) = zxy * vsdta (:,:,nt_a) + (1. - zxy)*vsdta(:,:,nt_b) 
    209     ENDIF 
    210   END SUBROUTINE obc_dta 
    211  
    212  
    213   SUBROUTINE obc_dta_ini (kt) 
    214     !!----------------------------------------------------------------------------- 
    215     !!                       ***  SUBROUTINE obc_dta_ini  *** 
    216     !! 
    217     !! ** Purpose : 
    218     !!      When obc_dta first call, realize some data initialization 
    219     !! 
    220     !! ** Method : 
    221     !! 
    222     !! History : 
    223     !!   9.0  ! 07-10 (J.M. Molines ) 
    224     !!---------------------------------------------------------------------------- 
    225     !! * Argument 
    226     INTEGER, INTENT(in)  :: kt      ! ocean time-step index 
    227  
    228     !! * Local declarations 
    229     INTEGER ::   ji,jj, it   ! dummy loop indices 
    230  
    231     REAL(wp) ::   zxy                                    ! time interpolation weight 
    232  
    233     INTEGER ::  ikprint                                ! frequency for printouts. 
    234  
    235     INTEGER, SAVE :: immfile, iyyfile                     ! 
    236     INTEGER :: nt              !  record indices (incrementation) 
    237     INTEGER :: istop           ! local error check 
    238  
    239     ! variables for the julian day calculation 
    240     INTEGER :: iyear, imonth, iday 
    241     REAL(wp) :: zsec , zjulian, zjuliancnes    
    242  
    243     ! IOM STUFF 
    244     INTEGER ::  idvar, id_e, id_w, id_n, id_s, id_x       ! file identifiers 
    245     INTEGER, DIMENSION(1)  :: itmp 
    246     CHARACTER(LEN=25) :: cl_vname 
    247  
    248     IF(lwp) WRITE(numout,*) 
    249     IF(lwp) WRITE(numout,*)  'obc_dta : find boundary data' 
    250     IF(lwp) WRITE(numout,*)  '~~~~~~~' 
    251     IF (lwp) THEN 
    252        IF ( nobc_dta == 0 ) THEN  
    253           WRITE(numout,*)  '          OBC data taken from initial conditions.' 
    254        ELSE       
    255           WRITE(numout,*)  '          OBC data taken from netcdf files.' 
    256        ENDIF 
    257     ENDIF 
    258     nday_year0 = nday_year  ! to remember the day when kt=nit000 
    259  
    260     sedta(:,:,:) = 0.e0 ; tedta(:,:,:) = 0.e0 ; uedta(:,:,:) = 0.e0 ; vedta(:,:,:) = 0.e0 ! East 
    261     swdta(:,:,:) = 0.e0 ; twdta(:,:,:) = 0.e0 ; uwdta(:,:,:) = 0.e0 ; vwdta(:,:,:) = 0.e0 ! West 
    262     sndta(:,:,:) = 0.e0 ; tndta(:,:,:) = 0.e0 ; undta(:,:,:) = 0.e0 ; vndta(:,:,:) = 0.e0 ! North 
    263     ssdta(:,:,:) = 0.e0 ; tsdta(:,:,:) = 0.e0 ; usdta(:,:,:) = 0.e0 ; vsdta(:,:,:) = 0.e0 ! South 
    264  
    265     sfoe(:,:) = 0.e0  ; tfoe(:,:) = 0.e0 ; ufoe(:,:) = 0.e0 ; vfoe(:,:) = 0.e0   ! East 
    266     sfow(:,:) = 0.e0  ; tfow(:,:) = 0.e0 ; ufow(:,:) = 0.e0 ; vfow(:,:) = 0.e0   ! West 
    267     sfon(:,:) = 0.e0  ; tfon(:,:) = 0.e0 ; ufon(:,:) = 0.e0 ; vfon(:,:) = 0.e0   ! North 
    268     sfos(:,:) = 0.e0  ; tfos(:,:) = 0.e0 ; ufos(:,:) = 0.e0 ; vfos(:,:) = 0.e0   ! South 
    269  
    270     IF (nobc_dta == 0 ) THEN   ! boundary data are the initial data of this run (set only at nit000) 
    271        IF (lp_obc_east) THEN  ! East 
    272           DO ji = nie0 , nie1     
    273              sfoe(nje0p1:nje1m1,:) = temsk(nje0p1:nje1m1,:) * sn (ji+1 , nje0p1:nje1m1 , :) 
    274              tfoe(nje0p1:nje1m1,:) = temsk(nje0p1:nje1m1,:) * tn (ji+1 , nje0p1:nje1m1 , :) 
    275              ufoe(nje0p1:nje1m1,:) = uemsk(nje0p1:nje1m1,:) * un (ji   , nje0p1:nje1m1 , :) 
    276              vfoe(nje0p1:nje1m1,:) = vemsk(nje0p1:nje1m1,:) * vn (ji+1 , nje0p1:nje1m1 , :) 
    277           END DO 
    278        ENDIF 
    279  
    280        IF (lp_obc_west) THEN  ! West 
    281           DO ji = niw0 , niw1     
    282              sfow(njw0p1:njw1m1,:) = twmsk(njw0p1:njw1m1,:) * sn (ji , njw0p1:njw1m1 , :) 
    283              tfow(njw0p1:njw1m1,:) = twmsk(njw0p1:njw1m1,:) * tn (ji , njw0p1:njw1m1 , :) 
    284              ufow(njw0p1:njw1m1,:) = uwmsk(njw0p1:njw1m1,:) * un (ji , njw0p1:njw1m1 , :) 
    285              vfow(njw0p1:njw1m1,:) = vwmsk(njw0p1:njw1m1,:) * vn (ji , njw0p1:njw1m1 , :) 
    286           END DO 
    287        ENDIF 
    288  
    289        IF (lp_obc_north) THEN ! North 
    290           DO jj = njn0 , njn1 
    291              sfon(nin0p1:nin1m1,:) = tnmsk(nin0p1:nin1m1,:) * sn (nin0p1:nin1m1 , jj+1 , :) 
    292              tfon(nin0p1:nin1m1,:) = tnmsk(nin0p1:nin1m1,:) * tn (nin0p1:nin1m1 , jj+1 , :) 
    293              ufon(nin0p1:nin1m1,:) = unmsk(nin0p1:nin1m1,:) * un (nin0p1:nin1m1 , jj+1 , :) 
    294              vfon(nin0p1:nin1m1,:) = vnmsk(nin0p1:nin1m1,:) * vn (nin0p1:nin1m1 , jj   , :) 
    295           END DO 
    296        ENDIF 
    297  
    298        IF (lp_obc_south) THEN ! South 
    299           DO jj = njs0 , njs1 
    300              sfos(nis0p1:nis1m1,:) = tsmsk(nis0p1:nis1m1,:) * sn (nis0p1:nis1m1 , jj , :) 
    301              tfos(nis0p1:nis1m1,:) = tsmsk(nis0p1:nis1m1,:) * tn (nis0p1:nis1m1 , jj , :) 
    302              ufos(nis0p1:nis1m1,:) = usmsk(nis0p1:nis1m1,:) * un (nis0p1:nis1m1 , jj , :) 
    303              vfos(nis0p1:nis1m1,:) = vsmsk(nis0p1:nis1m1,:) * vn (nis0p1:nis1m1 , jj , :) 
    304           END DO 
    305        ENDIF 
    306        RETURN  ! exit the routine all is done 
    307     ENDIF  ! nobc_dta = 0  
     92   SUBROUTINE obc_dta( kt ) 
     93      !!--------------------------------------------------------------------------- 
     94      !!                      ***  SUBROUTINE obc_dta  *** 
     95      !!                     
     96      !! ** Purpose :   Find the climatological  boundary arrays for the specified date,  
     97      !!                The boundary arrays are netcdf files. Three possible cases:  
     98      !!                - one time frame only in the file (time dimension = 1). 
     99      !!                in that case the boundary data does not change in time. 
     100      !!                - many time frames. In that case,  if we have 12 frames 
     101      !!                we assume monthly fields.  
     102      !!                Else, we assume that time_counter is in seconds  
     103      !!                since the beginning of either the current year or a reference 
     104      !!                year given in the namelist. 
     105      !!                (no check is done so far but one would have to check the "unit" 
     106      !!                 attribute of variable time_counter). 
     107      !! 
     108      !! 
     109      !! History : 
     110      !!        !  98-05 (J.M. Molines) Original code 
     111      !!   8.5  !  02-10 (C. Talandier, A-M. Treguier) Free surface, F90 
     112      !! 
     113      !!   9.0  !  04-06 (F. Durand, A-M. Treguier) Netcdf BC files on input 
     114      !!        !  2007-2008 (C. Langlais, P. Mathiot, J.M. Molines) high frequency boundaries data 
     115      !!--------------------------------------------------------------------------- 
     116      !! * Arguments 
     117      INTEGER, INTENT( in ) ::   kt          ! ocean time-step index 
     118 
     119      !! * Local declarations 
     120      INTEGER, SAVE :: immfile, iyyfile                     ! 
     121      INTEGER :: nt              !  record indices (incrementation) 
     122      REAL(wp) ::   zsec, zxy, znum, zden ! time interpolation weight 
     123 
     124      !!--------------------------------------------------------------------------- 
     125 
     126      ! 0.  initialisation : 
     127      ! -------------------- 
     128      IF ( kt == nit000  )  CALL obc_dta_ini ( kt ) 
     129      IF ( nobc_dta == 0 )  RETURN   ! already done in obc_dta_ini 
     130      IF ( itobc == 1    )  RETURN   ! case of only one time frame in file done in obc_dta_ini 
     131 
     132      ! in the following code, we assume that obc data are read from files, with more than 1 time frame in it 
     133 
     134      iyyfile=iyy ; immfile = 00  ! set component of the current file name 
     135      IF ( cffile /= 'annual') immfile = imm   !  
     136      IF ( ln_obc_clim       ) iyyfile = 0000  ! assume that climatological files are labeled y0000 
     137 
     138      ! 1. Synchronize time of run with time of data files 
     139      !--------------------------------------------------- 
     140      ! nday_year is the day number in the current year ( 1 for 01/01 ) 
     141      zsec=MOD( (kt-nit000)*rdt - (nday_year - nday_year0 )*rday, rday ) ! number of seconds in the current day 
     142      IF (ln_obc_clim)  THEN  
     143         zjcnes = nday_year - 1  + zsec/rday 
     144      ELSE 
     145         zjcnes = zjcnes + rdt/rday 
     146      ENDIF 
     147 
     148      ! look for 'before' record number in the current file 
     149      ntobc = nrecbef ()  ! this function return the record number for 'before', relative to zjcnes 
     150 
     151      IF (MOD(kt-1,10)==0) THEN 
     152         IF (lwp) WRITE(numout,*) 'kt= ',kt,' zjcnes =', zjcnes,' ndastp =',ndastp, 'mm =',imm  
     153      END IF 
     154 
     155      ! 2. read a new data if necessary  
     156      !-------------------------------- 
     157      IF ( ntobc /= ntobc_b ) THEN 
     158         ! we need to read the 'after' record 
     159         ! swap working index: 
     160# if defined key_dynspg_ts 
     161         nt=nt_m ; nt_m=nt_b ; nt_b=nt 
     162# endif 
     163         nt=nt_b ; nt_b=nt_a ; nt_a=nt 
     164         ntobc_b = ntobc 
     165 
     166         ! new record number : 
     167         ntobc_a = ntobc_a + 1  
     168 
     169         ! all tricky things related to record number, changing files etc... are managed by obc_read 
     170 
     171         CALL obc_read (kt, nt_a, ntobc_a, iyyfile, immfile ) 
     172 
     173         ! update zjcnes_obc 
     174# if defined key_dynspg_ts 
     175         ntobc_m=mod(ntobc_b-2+itobc,itobc)+1 
     176         zjcnes_obc(nt_m)= ztcobc(ntobc_m) 
     177# endif 
     178         zjcnes_obc(nt_b)= ztcobc(ntobc_b) 
     179         zjcnes_obc(nt_a)= ztcobc(ntobc_a) 
     180      ENDIF 
     181 
     182      ! 3.   interpolation at each time step 
     183      ! ------------------------------------ 
     184      IF( ln_obc_clim) THEN 
     185         znum= MOD(zjcnes           - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) ) 
     186         IF( znum < 0 ) znum = znum + REAL(nyear_len(1),wp) 
     187         zden= MOD(zjcnes_obc(nt_a) - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) )  
     188         IF( zden < 0 ) zden = zden + REAL(nyear_len(1),wp) 
     189      ELSE 
     190         znum= zjcnes           - zjcnes_obc(nt_b) 
     191         zden= zjcnes_obc(nt_a) - zjcnes_obc(nt_b) 
     192      ENDIF 
     193      zxy = znum / zden 
     194 
     195      IF( lp_obc_east ) THEN 
     196         !  fills sfoe, tfoe, ufoe ,vfoe 
     197         sfoe(:,:) = zxy * sedta (:,:,nt_a) + (1. - zxy)*sedta(:,:,nt_b) 
     198         tfoe(:,:) = zxy * tedta (:,:,nt_a) + (1. - zxy)*tedta(:,:,nt_b) 
     199         ufoe(:,:) = zxy * uedta (:,:,nt_a) + (1. - zxy)*uedta(:,:,nt_b) 
     200         vfoe(:,:) = zxy * vedta (:,:,nt_a) + (1. - zxy)*vedta(:,:,nt_b) 
     201      ENDIF 
     202 
     203      IF( lp_obc_west) THEN 
     204         !  fills sfow, tfow, ufow ,vfow 
     205         sfow(:,:) = zxy * swdta (:,:,nt_a) + (1. - zxy)*swdta(:,:,nt_b) 
     206         tfow(:,:) = zxy * twdta (:,:,nt_a) + (1. - zxy)*twdta(:,:,nt_b) 
     207         ufow(:,:) = zxy * uwdta (:,:,nt_a) + (1. - zxy)*uwdta(:,:,nt_b) 
     208         vfow(:,:) = zxy * vwdta (:,:,nt_a) + (1. - zxy)*vwdta(:,:,nt_b) 
     209      ENDIF 
     210 
     211      IF( lp_obc_north) THEN 
     212         !  fills sfon, tfon, ufon ,vfon 
     213         sfon(:,:) = zxy * sndta (:,:,nt_a) + (1. - zxy)*sndta(:,:,nt_b) 
     214         tfon(:,:) = zxy * tndta (:,:,nt_a) + (1. - zxy)*tndta(:,:,nt_b) 
     215         ufon(:,:) = zxy * undta (:,:,nt_a) + (1. - zxy)*undta(:,:,nt_b) 
     216         vfon(:,:) = zxy * vndta (:,:,nt_a) + (1. - zxy)*vndta(:,:,nt_b) 
     217      ENDIF 
     218 
     219      IF( lp_obc_south) THEN 
     220         !  fills sfos, tfos, ufos ,vfos 
     221         sfos(:,:) = zxy * ssdta (:,:,nt_a) + (1. - zxy)*ssdta(:,:,nt_b) 
     222         tfos(:,:) = zxy * tsdta (:,:,nt_a) + (1. - zxy)*tsdta(:,:,nt_b) 
     223         ufos(:,:) = zxy * usdta (:,:,nt_a) + (1. - zxy)*usdta(:,:,nt_b) 
     224         vfos(:,:) = zxy * vsdta (:,:,nt_a) + (1. - zxy)*vsdta(:,:,nt_b) 
     225      ENDIF 
     226   END SUBROUTINE obc_dta 
     227 
     228 
     229   SUBROUTINE obc_dta_ini (kt) 
     230      !!----------------------------------------------------------------------------- 
     231      !!                       ***  SUBROUTINE obc_dta_ini  *** 
     232      !! 
     233      !! ** Purpose : 
     234      !!      When obc_dta first call, realize some data initialization 
     235      !! 
     236      !! ** Method : 
     237      !! 
     238      !! History : 
     239      !!   9.0  ! 07-10 (J.M. Molines ) 
     240      !!---------------------------------------------------------------------------- 
     241      !! * Argument 
     242      INTEGER, INTENT(in)  :: kt      ! ocean time-step index 
     243 
     244      !! * Local declarations 
     245      INTEGER ::   ji, jj   ! dummy loop indices 
     246      INTEGER, SAVE :: immfile, iyyfile                     ! 
     247 
     248      ! variables for the julian day calculation 
     249      INTEGER :: iyear, imonth, iday 
     250      REAL(wp) :: zsec , zjulian, zjuliancnes    
     251 
     252      IF(lwp) WRITE(numout,*) 
     253      IF(lwp) WRITE(numout,*)  'obc_dta : find boundary data' 
     254      IF(lwp) WRITE(numout,*)  '~~~~~~~' 
     255      IF (lwp) THEN 
     256         IF ( nobc_dta == 0 ) THEN  
     257            WRITE(numout,*)  '          OBC data taken from initial conditions.' 
     258         ELSE       
     259            WRITE(numout,*)  '          OBC data taken from netcdf files.' 
     260         ENDIF 
     261      ENDIF 
     262      nday_year0 = nday_year  ! to remember the day when kt=nit000 
     263 
     264      sedta(:,:,:) = 0.e0 ; tedta(:,:,:) = 0.e0 ; uedta(:,:,:) = 0.e0 ; vedta(:,:,:) = 0.e0 ! East 
     265      swdta(:,:,:) = 0.e0 ; twdta(:,:,:) = 0.e0 ; uwdta(:,:,:) = 0.e0 ; vwdta(:,:,:) = 0.e0 ! West 
     266      sndta(:,:,:) = 0.e0 ; tndta(:,:,:) = 0.e0 ; undta(:,:,:) = 0.e0 ; vndta(:,:,:) = 0.e0 ! North 
     267      ssdta(:,:,:) = 0.e0 ; tsdta(:,:,:) = 0.e0 ; usdta(:,:,:) = 0.e0 ; vsdta(:,:,:) = 0.e0 ! South 
     268 
     269      sfoe(:,:) = 0.e0  ; tfoe(:,:) = 0.e0 ; ufoe(:,:) = 0.e0 ; vfoe(:,:) = 0.e0   ! East 
     270      sfow(:,:) = 0.e0  ; tfow(:,:) = 0.e0 ; ufow(:,:) = 0.e0 ; vfow(:,:) = 0.e0   ! West 
     271      sfon(:,:) = 0.e0  ; tfon(:,:) = 0.e0 ; ufon(:,:) = 0.e0 ; vfon(:,:) = 0.e0   ! North 
     272      sfos(:,:) = 0.e0  ; tfos(:,:) = 0.e0 ; ufos(:,:) = 0.e0 ; vfos(:,:) = 0.e0   ! South 
     273 
     274      IF (nobc_dta == 0 ) THEN   ! boundary data are the initial data of this run (set only at nit000) 
     275         IF (lp_obc_east) THEN  ! East 
     276            DO ji = nie0 , nie1     
     277               sfoe(nje0:nje1,:) = temsk(nje0:nje1,:) * sn (ji+1 , nje0:nje1 , :) * tmask(ji+1,nje0:nje1 , :) 
     278               tfoe(nje0:nje1,:) = temsk(nje0:nje1,:) * tn (ji+1 , nje0:nje1 , :) * tmask(ji+1,nje0:nje1 , :) 
     279               ufoe(nje0:nje1,:) = uemsk(nje0:nje1,:) * un (ji   , nje0:nje1 , :) * umask(ji,  nje0:nje1 , :) 
     280               vfoe(nje0:nje1,:) = vemsk(nje0:nje1,:) * vn (ji+1 , nje0:nje1 , :) * vmask(ji+1,nje0:nje1 , :) 
     281            END DO 
     282         ENDIF 
     283 
     284         IF (lp_obc_west) THEN  ! West 
     285            DO ji = niw0 , niw1     
     286               sfow(njw0:njw1,:) = twmsk(njw0:njw1,:) * sn (ji , njw0:njw1 , :) * tmask(ji , njw0:njw1 , :) 
     287               tfow(njw0:njw1,:) = twmsk(njw0:njw1,:) * tn (ji , njw0:njw1 , :) * tmask(ji , njw0:njw1 , :) 
     288               ufow(njw0:njw1,:) = uwmsk(njw0:njw1,:) * un (ji , njw0:njw1 , :) * umask(ji , njw0:njw1 , :) 
     289               vfow(njw0:njw1,:) = vwmsk(njw0:njw1,:) * vn (ji , njw0:njw1 , :) * vmask(ji , njw0:njw1 , :) 
     290            END DO 
     291         ENDIF 
     292 
     293         IF (lp_obc_north) THEN ! North 
     294            DO jj = njn0 , njn1 
     295               sfon(nin0:nin1,:) = tnmsk(nin0:nin1,:) * sn (nin0:nin1 , jj+1 , :) * tmask(nin0:nin1 , jj+1 , :) 
     296               tfon(nin0:nin1,:) = tnmsk(nin0:nin1,:) * tn (nin0:nin1 , jj+1 , :) * tmask(nin0:nin1 , jj+1 , :) 
     297               ufon(nin0:nin1,:) = unmsk(nin0:nin1,:) * un (nin0:nin1 , jj+1 , :) * umask(nin0:nin1 , jj+1 , :) 
     298               vfon(nin0:nin1,:) = vnmsk(nin0:nin1,:) * vn (nin0:nin1 , jj   , :) * vmask(nin0:nin1 , jj   , :) 
     299            END DO 
     300         ENDIF 
     301 
     302         IF (lp_obc_south) THEN ! South 
     303            DO jj = njs0 , njs1 
     304               sfos(nis0:nis1,:) = tsmsk(nis0:nis1,:) * sn (nis0:nis1 , jj , :) * tmask(nis0:nis1 , jj , :) 
     305               tfos(nis0:nis1,:) = tsmsk(nis0:nis1,:) * tn (nis0:nis1 , jj , :) * tmask(nis0:nis1 , jj , :) 
     306               ufos(nis0:nis1,:) = usmsk(nis0:nis1,:) * un (nis0:nis1 , jj , :) * umask(nis0:nis1 , jj , :) 
     307               vfos(nis0:nis1,:) = vsmsk(nis0:nis1,:) * vn (nis0:nis1 , jj , :) * vmask(nis0:nis1 , jj , :) 
     308            END DO 
     309         ENDIF 
     310         RETURN  ! exit the routine all is done 
     311      ENDIF  ! nobc_dta = 0  
    308312 
    309313!!!! In the following OBC data are read from files. 
    310     ! all logical-mask are initialzed to true when declared 
    311     WHERE ( temsk == 0 ) ltemsk=.FALSE.  
    312     WHERE ( uemsk == 0 ) luemsk=.FALSE.  
    313     WHERE ( vemsk == 0 ) lvemsk=.FALSE.  
    314  
    315     WHERE ( twmsk == 0 ) ltwmsk=.FALSE.  
    316     WHERE ( uwmsk == 0 ) luwmsk=.FALSE.  
    317     WHERE ( vwmsk == 0 ) lvwmsk=.FALSE.  
    318  
    319     WHERE ( tnmsk == 0 ) ltnmsk=.FALSE.  
    320     WHERE ( unmsk == 0 ) lunmsk=.FALSE.  
    321     WHERE ( vnmsk == 0 ) lvnmsk=.FALSE.  
    322  
    323     WHERE ( tsmsk == 0 ) ltsmsk=.FALSE.  
    324     WHERE ( usmsk == 0 ) lusmsk=.FALSE.  
    325     WHERE ( vsmsk == 0 ) lvsmsk=.FALSE.  
    326  
    327     iyear=1950;  imonth=01; iday=01;  zsec=0.  
    328     ! zjuliancnes : julian day corresonding  to  01/01/1950 
    329     CALL ymds2ju(iyear, imonth, iday,zsec , zjuliancnes) 
    330  
    331     !current year and curent month  
    332     iyy=INT(ndastp/10000) ; imm=INT((ndastp -iyy*10000)/100) ; idd=(ndastp-iyy*10000-imm*100) 
    333     IF (iyy <  1900)  iyy = iyy+1900  ! always assume that years are on 4 digits. 
    334     CALL ymds2ju(iyy, imm, idd ,zsec , zjulian) 
    335     ndate0_cnes = zjulian - zjuliancnes   ! jcnes day when call to obc_dta_ini 
    336  
    337     iyyfile=iyy ; immfile=0  ! set component of the current file name 
    338     IF ( cffile /= 'annual') immfile=imm 
    339     IF ( ln_obc_clim) iyyfile = 0  ! assume that climatological files are labeled y0000 
    340  
    341     CALL obc_dta_chktime ( iyyfile, immfile ) 
    342  
    343     IF ( itobc == 1 ) THEN  
    344        ! in this case we will provide boundary data only once. 
    345        nt_a=1 ; ntobc_a=1 
    346        CALL obc_read (nit000, nt_a, ntobc_a, iyyfile, immfile)  
    347        IF( lp_obc_east ) THEN 
    348           !  fills sfoe, tfoe, ufoe ,vfoe 
    349           sfoe(:,:) =  sedta (:,:,1) ; tfoe(:,:) =  tedta (:,:,1) 
    350           ufoe(:,:) =  uedta (:,:,1) ; vfoe(:,:) =  vedta (:,:,1) 
    351        ENDIF 
    352  
    353        IF( lp_obc_west) THEN 
    354           !  fills sfow, tfow, ufow ,vfow 
    355           sfow(:,:) =  swdta (:,:,1) ; tfow(:,:) =  twdta (:,:,1) 
    356           ufow(:,:) =  uwdta (:,:,1) ; vfow(:,:) =  vwdta (:,:,1) 
    357        ENDIF 
    358  
    359        IF( lp_obc_north) THEN 
    360           !  fills sfon, tfon, ufon ,vfon 
    361           sfon(:,:) =  sndta (:,:,1) ; tfon(:,:) =  tndta (:,:,1) 
    362           ufon(:,:) =  undta (:,:,1) ; vfon(:,:) =  vndta (:,:,1) 
    363        ENDIF 
    364  
    365        IF( lp_obc_south) THEN 
    366           !  fills sfos, tfos, ufos ,vfos 
    367           sfos(:,:) =  ssdta (:,:,1) ; tfos(:,:) =  tsdta (:,:,1) 
    368           ufos(:,:) =  usdta (:,:,1) ; vfos(:,:) =  vsdta (:,:,1) 
    369        ENDIF 
    370        RETURN  ! we go out of obc_dta_ini -------------------------------------->>>>> 
    371     ENDIF 
    372  
    373     ! nday_year is the day number in the current year ( 1 for 01/01 ) 
    374     ! we suppose that we always start from the begining of a day 
    375     !    zsec=MOD( (kt-nit000)*rdt - (nday_year - nday_year0 )*rday, rday ) ! number of seconds in the current day 
    376     zsec=0.e0  ! here, kt=nit000, nday_year = ndat_year0  
    377  
    378     IF (ln_obc_clim)  THEN  
    379       zjcnes = nday_year - 1  + zsec/rday  ! for clim file time is in days in a year 
    380     ELSE 
    381       zjcnes = ndate0_cnes + (nday_year - nday_year0 ) + zsec/rday 
    382     ENDIF 
    383  
    384     ! look for 'before' record number in the current file 
    385     ntobc = nrecbef () 
    386  
    387     IF (lwp) WRITE(numout,*) 'obc files frequency :',cffile 
    388     IF (lwp) WRITE(numout,*) ' zjcnes0 =',zjcnes,' ndastp0 =',ndastp 
    389     IF (lwp) WRITE(numout,*) ' annee0 ',iyy,' month0 ', imm,' day0 ', idd 
    390     IF (lwp) WRITE(numout,*) 'first file open :',cl_obc_nTS 
    391  
    392     ! record initialisation 
    393     !-------------------- 
    394     nt_b = 1 ; nt_a = 2 
    395  
    396     ntobc_a = ntobc + 1 
    397     ntobc_b = ntobc 
    398  
    399     CALL obc_read (kt, nt_b, ntobc_b, iyyfile, immfile)  ! read 'before' fields 
    400     CALL obc_read (kt, nt_a, ntobc_a, iyyfile, immfile)  ! read 'after' fields 
    401  
    402     zjcnes_obc(nt_b)= ztcobc(ntobc_b) 
    403     zjcnes_obc(nt_a)= ztcobc(ntobc_a) 
    404     !  
    405   END SUBROUTINE obc_dta_ini 
    406  
    407  
    408   SUBROUTINE obc_dta_chktime (kyyfile, kmmfile) 
    409    ! 
    410    ! check the number of time steps in the files and read ztcobc  
    411    ! 
    412    ! * Arguments 
    413    INTEGER, INTENT(in) :: kyyfile, kmmfile 
    414    ! * local variables 
    415    INTEGER :: istop       ! error control 
    416    INTEGER :: ji          ! dummy loop index 
    417  
    418     INTEGER ::  idvar, id_e, id_w, id_n, id_s, id_x       ! file identifiers 
    419     INTEGER, DIMENSION(1)  :: itmp 
    420     CHARACTER(LEN=25) :: cl_vname 
    421  
    422     ntobc_a = 0; itobce =0 ; itobcw = 0; itobcn = 0; itobcs = 0 
    423     ! build file name 
    424     WRITE(cl_obc_eTS ,'("obc_east_TS_y",i4.4,"m",i2.2,".nc")'  ) kyyfile,kmmfile 
    425     WRITE(cl_obc_wTS ,'("obc_west_TS_y",i4.4,"m",i2.2,".nc")'  ) kyyfile,kmmfile 
    426     WRITE(cl_obc_nTS ,'("obc_north_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 
    427     WRITE(cl_obc_sTS ,'("obc_south_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 
    428  
    429     cl_vname = 'time_counter' 
    430     IF ( lp_obc_east ) THEN 
    431        CALL iom_open ( cl_obc_eTS , id_e ) 
    432        idvar = iom_varid( id_e, cl_vname, kdimsz = itmp ); itobce=itmp(1) 
    433     ENDIF 
    434     IF ( lp_obc_west ) THEN 
    435        CALL iom_open ( cl_obc_wTS , id_w ) 
    436        idvar = iom_varid( id_w, cl_vname, kdimsz = itmp ) ; itobcw=itmp(1) 
    437     ENDIF 
    438     IF ( lp_obc_north ) THEN 
    439        CALL iom_open ( cl_obc_nTS , id_n ) 
    440        idvar = iom_varid( id_n, cl_vname, kdimsz = itmp ) ; itobcn=itmp(1) 
    441     ENDIF 
    442     IF ( lp_obc_south ) THEN 
    443        CALL iom_open ( cl_obc_sTS , id_s ) 
    444        idvar = iom_varid( id_s, cl_vname, kdimsz = itmp ) ; itobcs=itmp(1) 
    445     ENDIF 
    446  
    447     itobc = MAX( itobce, itobcw, itobcn, itobcs ) 
    448     istop = 0 
    449     IF ( lp_obc_east  .AND. itobce /= itobc ) istop = istop+1  
    450     IF ( lp_obc_west  .AND. itobcw /= itobc ) istop = istop+1       
    451     IF ( lp_obc_north .AND. itobcn /= itobc ) istop = istop+1 
    452     IF ( lp_obc_south .AND. itobcs /= itobc ) istop = istop+1  
    453     nstop = nstop + istop 
    454  
    455     IF ( istop /=  0 )  THEN 
    456        WRITE(ctmp1,*) ' east, west, north, south: ', itobce, itobcw, itobcn, itobcs 
    457        CALL ctl_stop( 'obcdta : all files must have the same number of time steps', ctmp1 ) 
    458     ENDIF 
    459  
    460     IF ( itobc == 1 ) THEN  
    461        IF (lwp) THEN 
    462           WRITE(numout,*) ' obcdta found one time step only in the OBC files' 
    463           IF (ln_obc_clim) THEN 
    464              ! OK no problem 
    465           ELSE 
    466              ln_obc_clim=.true. 
    467              WRITE(numout,*) ' we force ln_obc_clim to T' 
    468           ENDIF 
    469        ENDIF 
    470     ELSE 
    471 #if defined key_agrif 
    472        IF ( ASSOCIATED(ztcobc) ) DEALLOCATE ( ztcobc ) 
    473 #else 
    474        IF ( ALLOCATED(ztcobc) ) DEALLOCATE ( ztcobc ) 
    475 #endif 
    476        ALLOCATE (ztcobc(itobc)) 
    477        DO ji=1,1   ! use a dummy loop to read ztcobc only once 
    478           IF ( lp_obc_east ) THEN 
    479              CALL iom_gettime ( id_e, ztcobc, cl_vname ) ; CALL iom_close (id_e) ; EXIT 
    480           ENDIF 
    481           IF ( lp_obc_west ) THEN 
    482              CALL iom_gettime ( id_w, ztcobc, cl_vname ) ; CALL iom_close (id_w) ; EXIT 
    483           ENDIF 
    484           IF ( lp_obc_north ) THEN 
    485              CALL iom_gettime ( id_n, ztcobc, cl_vname ) ; CALL iom_close (id_n) ; EXIT 
    486           ENDIF 
    487           IF ( lp_obc_south ) THEN 
    488              CALL iom_gettime ( id_s, ztcobc, cl_vname ) ; CALL iom_close (id_s) ; EXIT 
    489           ENDIF 
    490        END DO 
    491        rdt_obc = ztcobc(2)-ztcobc(1)  !  just an information, not used for any computation 
    492        IF (lwp) WRITE(numout,*) ' obcdta found', itobc,' time steps in the OBC files' 
    493        IF (lwp) WRITE(numout,*) ' time step of obc data :', rdt_obc,' days'             
    494      ENDIF 
    495      zjcnes = zjcnes - rdt/rday  ! trick : zcnes is always incremented by rdt/rday in obc_dta! 
    496   END SUBROUTINE obc_dta_chktime 
    497  
    498  
    499 #if defined key_dynspg_ts || defined key_dynspg_exp 
    500   SUBROUTINE obc_dta_bt( kt, kbt ) 
    501     !!--------------------------------------------------------------------------- 
    502     !!                      ***  SUBROUTINE obc_dta  *** 
    503     !! 
    504     !! ** Purpose :   time interpolation of barotropic data for time-splitting scheme 
    505     !!                Data at the boundary must be in m2/s  
    506     !! 
    507     !! History : 
    508     !!   9.0  !  05-11 (V. garnier) Original code 
    509     !!--------------------------------------------------------------------------- 
    510     !! * Arguments 
    511     INTEGER, INTENT( in ) ::   kt          ! ocean time-step index 
    512     INTEGER, INTENT( in ) ::   kbt         ! barotropic ocean time-step index 
    513  
    514     !! * Local declarations 
    515     INTEGER ::   ji, jj, jk, ii, ij   ! dummy loop indices 
    516     INTEGER ::   id_e, id_w, id_n, id_s, fid  ! file identifiers 
    517     INTEGER ::   itimo, iman, imois, i15 
    518     INTEGER ::   itobcm, itobcp, itimom, itimop 
    519     REAL(wp) ::  zxy 
    520     INTEGER ::   isrel, ikt           ! number of seconds since 1/1/1992 
    521     INTEGER ::   iprint              ! frequency for printouts. 
    522  
    523     !!--------------------------------------------------------------------------- 
    524  
    525     ! 1.   First call: check time frames available in files. 
    526     ! ------------------------------------------------------- 
    527  
    528     IF( kt == nit000 ) THEN 
    529  
    530        ! 1.1  Barotropic tangential velocities set to zero 
    531        ! ------------------------------------------------- 
    532        IF( lp_obc_east  ) vbtfoe(:) = 0.e0 
    533        IF( lp_obc_west  ) vbtfow(:) = 0.e0 
    534        IF( lp_obc_south ) ubtfos(:) = 0.e0 
    535        IF( lp_obc_north ) ubtfon(:) = 0.e0 
    536  
    537        ! 1.2  Sea surface height and normal barotropic velocities set to zero 
    538        !                               or initial conditions if nobc_dta == 0 
    539        ! -------------------------------------------------------------------- 
    540  
    541        IF( lp_obc_east ) THEN 
    542           ! initialisation to zero 
    543           sshedta(:,:) = 0.e0 
    544           ubtedta(:,:) = 0.e0 
    545           !                                        ! ================== ! 
    546           IF( nobc_dta == 0 )   THEN               ! initial state used ! 
    547              !                                     ! ================== ! 
    548              !  Fills sedta, tedta, uedta (global arrays) 
    549              !  Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 
    550              DO ji = nie0, nie1 
    551                 DO jj = nje0p1, nje1m1 
    552                    ij = jj -1 + njmpp 
    553                    sshedta(ij,1) = sshn(ji+1,jj) * tmask(ji+1,jj,1) 
    554                 END DO 
    555              END DO 
    556           ENDIF 
    557        ENDIF 
    558  
    559        IF( lp_obc_west) THEN 
    560           ! initialisation to zero 
    561           sshwdta(:,:) = 0.e0 
    562           ubtwdta(:,:) = 0.e0 
    563           !                                        ! ================== ! 
    564           IF( nobc_dta == 0 )   THEN               ! initial state used ! 
    565              !                                     ! ================== ! 
    566              !  Fills swdta, twdta, uwdta (global arrays) 
    567              !  Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 
    568              DO ji = niw0, niw1 
    569                 DO jj = njw0p1, njw1m1 
    570                    ij = jj -1 + njmpp 
    571                    sshwdta(ij,1) = sshn(ji,jj) * tmask(ji,jj,1) 
    572                 END DO 
    573              END DO 
    574           ENDIF 
    575        ENDIF 
    576  
    577        IF( lp_obc_north) THEN 
    578           ! initialisation to zero 
    579           sshndta(:,:) = 0.e0 
    580           vbtndta(:,:) = 0.e0 
    581           !                                        ! ================== ! 
    582           IF( nobc_dta == 0 )   THEN               ! initial state used ! 
    583              !                                     ! ================== ! 
    584              !  Fills sndta, tndta, vndta (global arrays) 
    585              !  Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 
    586              DO jj = njn0, njn1 
    587                 DO ji = nin0p1, nin1m1 
    588                    DO jk = 1, jpkm1 
    589                       ii = ji -1 + nimpp 
    590                       vbtndta(ii,1) = vbtndta(ii,1) + vndta(ii,jk,1)*fse3v(ji,jj,jk) 
    591                    END DO 
    592                    sshndta(ii,1) = sshn(ii,jj+1) * tmask(ji,jj+1,1) 
    593                 END DO 
    594              END DO 
    595           ENDIF 
    596        ENDIF 
    597  
    598        IF( lp_obc_south) THEN 
    599           ! initialisation to zero 
    600           ssdta(:,:,:) = 0.e0 
    601           tsdta(:,:,:) = 0.e0 
    602           vsdta(:,:,:) = 0.e0 
    603           sshsdta(:,:) = 0.e0 
    604           vbtsdta(:,:) = 0.e0 
    605           !                                        ! ================== ! 
    606           IF( nobc_dta == 0 )   THEN               ! initial state used ! 
    607              !                                     ! ================== ! 
    608              !  Fills ssdta, tsdta, vsdta (global arrays) 
    609              !  Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 
    610              DO jj = njs0, njs1 
    611                 DO ji = nis0p1, nis1m1 
    612                    DO jk = 1, jpkm1 
    613                       ii = ji -1 + nimpp 
    614                       vbtsdta(ii,1) = vbtsdta(ii,1) + vsdta(ii,jk,1)*fse3v(ji,jj,jk) 
    615                    END DO 
    616                    sshsdta(ii,1) = sshn(ji,jj) * tmask(ii,jj,1) 
    617                 END DO 
    618              END DO 
    619           ENDIF 
    620        ENDIF 
    621  
    622     ENDIF        !       END IF kt == nit000 
    623  
    624     !!------------------------------------------------------------------------------------ 
    625     ! 2.      Initialize the time we are at. Does this every time the routine is called, 
    626     !         excepted when nobc_dta = 0 
    627     ! 
    628     IF( nobc_dta == 0) THEN 
    629        itimo = 1 
    630        zxy   = 0 
    631     ELSE 
    632        IF(ntobc == 1) THEN 
    633           itimo = 1 
    634        ELSE IF (ntobc == 12) THEN      !   BC are monthly 
    635           ! we assume we have climatology in that case 
    636           iman  = 12 
    637           i15   = nday / 16 
    638           imois = nmonth + i15 - 1 
    639           IF( imois == 0 )   imois = iman 
    640           itimo = imois 
    641        ELSE 
    642           IF(lwp) WRITE(numout,*) 'data other than constant or monthly',kt 
    643           iman  = ntobc 
    644           itimo = FLOOR( kt*rdt / tcobc(1)) 
    645           isrel=kt*rdt 
    646        ENDIF 
    647     ENDIF 
    648  
    649     ! 2. Read two records in the file if necessary 
    650     ! --------------------------------------------- 
    651  
    652     IF( nobc_dta == 1 .AND. nlecto == 1 ) THEN 
    653  
    654        IF( lp_obc_east ) THEN 
    655           ! ... Read datafile and set sea surface height and barotropic velocity 
    656           ! ... initialise the sshedta, ubtedta arrays 
    657           sshedta(:,0) = sshedta(:,1) 
    658           ubtedta(:,0) = ubtedta(:,1) 
    659           CALL iom_open ( 'obceast_TS.nc', id_e ) 
    660           CALL iom_get ( id_e, jpdom_unknown, 'vossurfh', sshedta(:,1), ktime=ntobc1 ) 
    661           CALL iom_get ( id_e, jpdom_unknown, 'vossurfh', sshedta(:,2), ktime=ntobc2 ) 
    662           IF( lk_dynspg_ts ) THEN 
    663              CALL iom_get (id_e, jpdom_unknown, 'vossurfh', sshedta(:,3), ktime=ntobc2+1 ) 
    664           ENDIF 
    665           CALL iom_close ( id_e ) 
    666           ! 
    667           CALL iom_open ( 'obceast_U.nc', id_e ) 
    668           CALL iom_get ( id_e, jpdom_unknown, 'vozoubt', ubtedta(:,1), ktime=ntobc1 ) 
    669           CALL iom_get ( id_e, jpdom_unknown, 'vozoubt', ubtedta(:,2), ktime=ntobc2 ) 
    670           IF( lk_dynspg_ts ) THEN 
    671              CALL iom_get ( id_e, jpdom_unknown, 'vozoubt', ubtedta(:,3), ktime=ntobc2+1 ) 
    672           ENDIF 
    673           CALL iom_close ( id_e ) 
    674           ! ... Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 
    675           IF( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
    676              WRITE(numout,*) 
    677              WRITE(numout,*) ' Read East OBC barotropic data records ', ntobc1, ntobc2 
    678              iprint = (jpjef-jpjed+1)/20 +1 
    679              WRITE(numout,*) 
    680              WRITE(numout,*) ' Sea surface height record 1' 
    681              CALL prihre( sshedta(:,1), jpjef-jpjed+1, 1, 1, jpjef-jpjed+1, iprint, 1, 1, -3, 1., numout ) 
    682              WRITE(numout,*) 
    683              WRITE(numout,*) ' Normal transport (m2/s) record 1',iprint 
    684              CALL prihre( ubtedta(:,1), jpjef-jpjed+1, 1, 1, jpjef-jpjed+1, iprint, 1, 1, -3, 1., numout ) 
    685           ENDIF 
    686        ENDIF 
    687  
    688        IF( lp_obc_west ) THEN 
    689           ! ... Read datafile and set temperature, salinity and normal velocity 
    690           ! ... initialise the swdta, twdta, uwdta arrays 
    691           sshwdta(:,0) = sshwdta(:,1) 
    692           ubtwdta(:,0) = ubtwdta(:,1) 
    693           CALL iom_open ( 'obcwest_TS.nc', id_w ) 
    694           CALL iom_get ( id_w, jpdom_unknown, 'vossurfh', sshwdta(:,1), ktime=ntobc1 ) 
    695           CALL iom_get ( id_w, jpdom_unknown, 'vossurfh', sshwdta(:,2), ktime=ntobc2 ) 
    696           IF( lk_dynspg_ts ) THEN 
    697              CALL  ( id_w, jpdom_unknown, 'vossurfh', sshwdta(:,3), ktime=ntobc2+1 ) 
    698           ENDIF 
    699           CALL iom_close ( id_w ) 
    700           ! 
    701           CALL iom_open ( 'obcwest_U.nc', id_w ) 
    702           CALL iom_get ( id_w, jpdom_unknown, 'vozoubt', ubtwdta(:,1), ktime=ntobc1 ) 
    703           CALL iom_get ( id_w, jpdom_unknown, 'vozoubt', ubtwdta(:,2), ktime=ntobc2 ) 
    704           IF( lk_dynspg_ts ) THEN 
    705              CALL iom_get ( id_w, jpdom_unknown, 'vozoubt', ubtwdta(:,3), ktime=ntobc2+1 ) 
    706           ENDIF 
    707           CALL iom_close ( id_w ) 
    708           ! ... Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 
    709           IF( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
    710              WRITE(numout,*) 
    711              WRITE(numout,*) ' Read West OBC barotropic data records ', ntobc1, ntobc2 
    712              iprint = (jpjwf-jpjwd+1)/20 +1 
    713              WRITE(numout,*) 
    714              WRITE(numout,*) ' Sea surface height record 1  - printout surface level' 
    715              CALL prihre( sshwdta(:,1), jpjwf-jpjwd+1, 1, 1, jpjwf-jpjwd+1, iprint, 1, 1, -3, 1., numout ) 
    716              WRITE(numout,*) 
    717              WRITE(numout,*) ' Normal transport (m2/s) record 1' 
    718              CALL prihre( ubtwdta(:,1), jpjwf-jpjwd+1, 1, 1, jpjwf-jpjwd+1, iprint, 1, 1, -3, 1., numout ) 
    719           ENDIF 
    720        ENDIF 
    721  
    722        IF( lp_obc_north) THEN 
    723           ! ... Read datafile and set sea surface height and barotropic velocity 
    724           ! ... initialise the sshndta, ubtndta arrays 
    725           sshndta(:,0) = sshndta(:,1) 
    726           vbtndta(:,0) = vbtndta(:,1) 
    727           CALL iom_open ( 'obcnorth_TS.nc', id_n ) 
    728           CALL iom_get (id_n, jpdom_unknown, 'vossurfh', sshndta(:,1), ktime=ntobc1 ) 
    729           CALL iom_get (id_n, jpdom_unknown, 'vossurfh', sshndta(:,2), ktime=ntobc2 ) 
    730           IF( lk_dynspg_ts ) THEN 
    731              CALL iom_get (id_n, jpdom_unknown, 'vossurfh', sshndta(:,3), ktime=ntobc2+1 ) 
    732           ENDIF 
    733           CALL iom_close ( id_n ) 
    734  
    735           CALL iom_open ( 'obcnorth_V.nc', id_n ) 
    736           CALL iom_get (id_n, jpdom_unknown, 'vomevbt', vbtndta(:,1), ktime=ntobc1 ) 
    737           CALL iom_get (id_n, jpdom_unknown, 'vomevbt', vbtndta(:,2), ktime=ntobc2 ) 
    738           IF( lk_dynspg_ts ) THEN 
    739              CALL iom_get (id_n, jpdom_unknown, 'vomevbt', vbtndta(:,3), ktime=ntobc2+1 ) 
    740           ENDIF 
    741           CALL iom_close ( id_n ) 
    742  
    743           ! ... Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 
    744           IF( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
    745              WRITE(numout,*) 
    746              WRITE(numout,*) ' Read North OBC barotropic data records ', ntobc1, ntobc2 
    747              iprint = (jpinf-jpind+1)/20 +1 
    748              WRITE(numout,*) 
    749              WRITE(numout,*) ' Sea surface height record 1  - printout surface level' 
    750              CALL prihre( sshndta(:,1), jpinf-jpind+1, 1, 1, jpinf-jpind+1, iprint, 1, 1, -3, 1., numout ) 
    751              WRITE(numout,*) 
    752              WRITE(numout,*) ' Normal transport (m2/s) record 1' 
    753              CALL prihre( vbtndta(:,1), jpinf-jpind+1, 1, 1, jpinf-jpind+1, iprint, 1, 1, -3, 1., numout ) 
    754           ENDIF 
    755        ENDIF 
    756  
    757        IF( lp_obc_south) THEN 
    758           ! ... Read datafile and set sea surface height and barotropic velocity 
    759           ! ... initialise the sshsdta, ubtsdta arrays 
    760           sshsdta(:,0) = sshsdta(:,1) 
    761           vbtsdta(:,0) = vbtsdta(:,1) 
    762           CALL iom_open ( 'obcsouth_TS.nc', id_s ) 
    763           CALL iom_get ( id_s, jpdom_unknown, 'vossurfh', sshsdta(:,1), ktime=ntobc1 ) 
    764           CALL iom_get ( id_s, jpdom_unknown, 'vossurfh', sshsdta(:,2), ktime=ntobc2 ) 
    765           IF( lk_dynspg_ts ) THEN 
    766              CALL iom_get ( id_s, jpdom_unknown, 'vossurfh', sshsdta(:,3), ktime=ntobc2+1 ) 
    767           ENDIF 
    768           CALL iom_close ( id_s ) 
    769  
    770           CALL iom_open ( 'obcsouth_V.nc', id_s ) 
    771           CALL iom_get ( id_s, jpdom_unknown, 'vomevbt', vbtsdta(:,1), ktime=ntobc1 ) 
    772           CALL iom_get ( id_s, jpdom_unknown, 'vomevbt', vbtsdta(:,2), ktime=ntobc2 ) 
    773           IF( lk_dynspg_ts ) THEN 
    774              CALL iom_get ( id_s, jpdom_unknown, 'vomevbt', vbtsdta(:,3), ktime=ntobc2+1 ) 
    775           ENDIF 
    776           CALL iom_close ( id_s ) 
    777  
    778           ! ... Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 
    779           IF( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
    780              WRITE(numout,*) 
    781              WRITE(numout,*) ' Read South OBC barotropic data records ', ntobc1, ntobc2 
    782              iprint = (jpisf-jpisd+1)/20 +1 
    783              WRITE(numout,*) 
    784              WRITE(numout,*) ' Sea surface height record 1  - printout surface level' 
    785              CALL prihre( sshsdta(:,1), jpisf-jpisd+1, 1, 1, jpisf-jpisd+1, iprint, 1, 1, -3, 1., numout ) 
    786              WRITE(numout,*) 
    787              WRITE(numout,*) ' Normal transport (m2/s) record 1' 
    788              CALL prihre( vbtsdta(:,1), jpisf-jpisd+1, 1, 1, jpisf-jpisd+1, iprint, 1, 1, -3, 1., numout ) 
    789           ENDIF 
    790        ENDIF 
    791  
    792     ENDIF        !      end of the test on the condition to read or not the files 
    793  
    794     ! 3.  Call at every time step : Linear interpolation of BCs to current time step 
    795     ! ---------------------------------------------------------------------- 
    796  
    797     IF( lk_dynspg_ts ) THEN 
    798        isrel = (kt-1)*rdt + kbt*(rdt/REAL(nn_baro,wp)) 
    799  
    800        IF( nobc_dta == 1 ) THEN 
    801           isrel = (kt-1)*rdt + kbt*(rdt/REAL(nn_baro,wp)) 
    802           itimo  = FLOOR(  kt*rdt    / (tcobc(2)-tcobc(1)) ) 
    803           itimom = FLOOR( (kt-1)*rdt / (tcobc(2)-tcobc(1)) ) 
    804           itimop = FLOOR( (kt+1)*rdt / (tcobc(2)-tcobc(1)) ) 
    805           IF( itimom == itimo .AND. itimop == itimo ) THEN 
    806              itobcm = ntobc1 
    807              itobcp = ntobc2 
    808  
    809           ELSEIF ( itimom <= itimo .AND. itimop == itimo ) THEN 
    810              IF(  FLOOR( isrel / (tcobc(2)-tcobc(1)) ) < itimo ) THEN 
    811                 itobcm = ntobc1-1 
    812                 itobcp = ntobc2-1 
    813              ELSE 
    814                 itobcm = ntobc1 
    815                 itobcp = ntobc2 
    816              ENDIF 
    817  
    818           ELSEIF ( itimom == itimo .AND. itimop >= itimo ) THEN 
    819              IF(  FLOOR( isrel / (tcobc(2)-tcobc(1)) ) < itimop ) THEN 
    820                 itobcm = ntobc1 
    821                 itobcp = ntobc2 
    822              ELSE 
    823                 itobcm = ntobc1+1 
    824                 itobcp = ntobc2+1 
    825              ENDIF 
    826  
    827           ELSEIF ( itimom == itimo-1 .AND. itimop == itimo+1 ) THEN 
    828              IF(  FLOOR( isrel / (tcobc(2)-tcobc(1)) ) < itimo ) THEN 
    829                 itobcm = ntobc1-1 
    830                 itobcp = ntobc2-1 
    831              ELSEIF (  FLOOR( isrel / (tcobc(2)-tcobc(1)) ) < itimop ) THEN 
    832                 itobcm = ntobc1 
    833                 itobcp = ntobc2 
    834              ELSEIF (  FLOOR( isrel / (tcobc(2)-tcobc(1)) ) == itimop ) THEN 
    835                 itobcm = ntobc1+1 
    836                 itobcp = ntobc2+2 
    837              ELSE 
    838                 IF(lwp) WRITE(numout, *) 'obc_dta_bt: You should not have seen this print! error 1?' 
    839              ENDIF 
    840           ELSE 
    841              IF(lwp) WRITE(numout, *) 'obc_dta_bt: You should not have seen this print! error 2?' 
    842           ENDIF 
    843  
    844        ENDIF 
    845  
    846     ELSE IF( lk_dynspg_exp ) THEN 
    847        isrel=kt*rdt 
    848        itobcm = ntobc1 
    849        itobcp = ntobc2 
    850     ENDIF 
    851  
    852     IF( ntobc == 1 .OR. nobc_dta == 0 ) THEN 
    853        zxy = 0.e0 
    854     ELSE IF( ntobc == 12 ) THEN 
    855        zxy = FLOAT( nday + 15 - 30 * i15 ) / 30. 
    856     ELSE 
    857        zxy = (tcobc(itobcm)-FLOAT(isrel)) / (tcobc(itobcm)-tcobc(itobcp)) 
    858     ENDIF 
    859  
    860     IF( lp_obc_east ) THEN           !  fills sshfoe, ubtfoe (local to each processor) 
    861        DO jj = nje0p1, nje1m1 
    862           ij = jj -1 + njmpp 
    863           sshfoe(jj) = ( zxy * sshedta(ij,2) + (1.-zxy) * sshedta(ij,1) ) * temsk(jj,1) 
    864           ubtfoe(jj) = ( zxy * ubtedta(ij,2) + (1.-zxy) * ubtedta(ij,1) ) * uemsk(jj,1) 
    865        END DO 
    866     ENDIF 
    867  
    868     IF( lp_obc_west) THEN            !  fills sshfow, ubtfow (local to each processor) 
    869        DO jj = njw0p1, njw1m1 
    870           ij = jj -1 + njmpp 
    871           sshfow(jj) = ( zxy * sshwdta(ij,2) + (1.-zxy) * sshwdta(ij,1) ) * twmsk(jj,1) 
    872           ubtfow(jj) = ( zxy * ubtwdta(ij,2) + (1.-zxy) * ubtwdta(ij,1) ) * uwmsk(jj,1) 
    873        END DO 
    874     ENDIF 
    875  
    876     IF( lp_obc_north) THEN           !  fills sshfon, vbtfon (local to each processor) 
    877        DO ji = nin0p1, nin1m1 
    878           ii = ji -1 + nimpp 
    879           sshfon(ji) = ( zxy * sshndta(ii,2) + (1.-zxy) * sshndta(ii,1) ) * tnmsk(ji,1) 
    880           vbtfon(ji) = ( zxy * vbtndta(ii,2) + (1.-zxy) * vbtndta(ii,1) ) * vnmsk(ji,1) 
    881        END DO 
    882     ENDIF 
    883  
    884     IF( lp_obc_south) THEN           !  fills sshfos, vbtfos (local to each processor) 
    885        DO ji = nis0p1, nis1m1 
    886           ii = ji -1 + nimpp 
    887           sshfos(ji) = ( zxy * sshsdta(ii,2) + (1.-zxy) * sshsdta(ii,1) ) * tsmsk(ji,1) 
    888           vbtfos(ji) = ( zxy * vbtsdta(ii,2) + (1.-zxy) * vbtsdta(ii,1) ) * vsmsk(ji,1) 
    889        END DO 
    890     ENDIF 
    891  
    892   END SUBROUTINE obc_dta_bt 
    893  
    894 #else 
    895   !!----------------------------------------------------------------------------- 
    896   !!   Default option 
    897   !!----------------------------------------------------------------------------- 
    898   SUBROUTINE obc_dta_bt ( kt, kbt )       ! Empty routine 
    899     !! * Arguments 
    900     INTEGER,INTENT(in) :: kt 
    901     INTEGER, INTENT( in ) ::   kbt         ! barotropic ocean time-step index 
    902     WRITE(*,*) 'obc_dta_bt: You should not have seen this print! error?', kt 
    903     WRITE(*,*) 'obc_dta_bt: You should not have seen this print! error?', kbt 
    904   END SUBROUTINE obc_dta_bt 
    905 #endif 
    906  
    907  
    908   !!============================================================================== 
    909   SUBROUTINE obc_read (kt, nt_x, ntobc_x, iyy, imm) 
    910      !!------------------------------------------------------------------------- 
    911      !!                      ***  ROUTINE obc_read  *** 
    912      !! 
    913      !! ** Purpose :  Read the boundary data in files identified by iyy and imm 
    914      !!               According to the validated open boundaries, return the  
    915      !!               following arrays : 
    916      !!                sedta, tedta : East OBC salinity and temperature 
    917      !!                uedta, vedta :   "   "  u and v velocity component       
    918      !! 
    919      !!                swdta, twdta : West OBC salinity and temperature 
    920      !!                uwdta, vwdta :   "   "  u and v velocity component       
    921      !! 
    922      !!                sndta, tndta : North OBC salinity and temperature 
    923      !!                undta, vndta :   "   "  u and v velocity component       
    924      !! 
    925      !!                ssdta, tsdta : South OBC salinity and temperature 
    926      !!                usdta, vsdta :   "   "  u and v velocity component       
    927      !! 
    928      !! ** Method  :  These fields are read in the record ntobc_x of the files. 
    929      !!               The number of records is already known. If  ntobc_x is greater 
    930      !!               than the number of record, this routine will look for next file, 
    931      !!               updating the indices (case of inter-annual obcs) or loop at the 
    932      !!               begining in case of climatological file (ln_obc_clim = true ). 
    933      !! ------------------------------------------------------------------------- 
    934      !! History:     !  2005  ( P. Mathiot, C. Langlais ) Original code 
    935      !!              !  2008  ( J,M, Molines ) Use IOM and cleaning 
    936      !!-------------------------------------------------------------------------- 
    937  
    938     ! * Arguments 
    939     INTEGER, INTENT( in ) :: kt, nt_x 
    940     INTEGER, INTENT( inout ) :: ntobc_x , iyy, imm      ! yes ! inout ! 
    941  
    942     ! * Local variables 
    943     CHARACTER (len=40) :: &    ! file names 
     314      ! all logical-mask are initialzed to true when declared 
     315      WHERE ( temsk == 0 ) ltemsk=.FALSE.  
     316      WHERE ( uemsk == 0 ) luemsk=.FALSE.  
     317      WHERE ( vemsk == 0 ) lvemsk=.FALSE.  
     318 
     319      WHERE ( twmsk == 0 ) ltwmsk=.FALSE.  
     320      WHERE ( uwmsk == 0 ) luwmsk=.FALSE.  
     321      WHERE ( vwmsk == 0 ) lvwmsk=.FALSE.  
     322 
     323      WHERE ( tnmsk == 0 ) ltnmsk=.FALSE.  
     324      WHERE ( unmsk == 0 ) lunmsk=.FALSE.  
     325      WHERE ( vnmsk == 0 ) lvnmsk=.FALSE.  
     326 
     327      WHERE ( tsmsk == 0 ) ltsmsk=.FALSE.  
     328      WHERE ( usmsk == 0 ) lusmsk=.FALSE.  
     329      WHERE ( vsmsk == 0 ) lvsmsk=.FALSE.  
     330 
     331      iyear=1950;  imonth=01; iday=01;  zsec=0.  
     332      ! zjuliancnes : julian day corresonding  to  01/01/1950 
     333      CALL ymds2ju(iyear, imonth, iday,zsec , zjuliancnes) 
     334 
     335      !current year and curent month  
     336      iyy=INT(ndastp/10000) ; imm=INT((ndastp -iyy*10000)/100) ; idd=(ndastp-iyy*10000-imm*100) 
     337      IF (iyy <  1900)  iyy = iyy+1900  ! always assume that years are on 4 digits. 
     338      CALL ymds2ju(iyy, imm, idd ,zsec , zjulian) 
     339      ndate0_cnes = zjulian - zjuliancnes   ! jcnes day when call to obc_dta_ini 
     340 
     341      iyyfile=iyy ; immfile=0  ! set component of the current file name 
     342      IF ( cffile /= 'annual') immfile=imm 
     343      IF ( ln_obc_clim) iyyfile = 0  ! assume that climatological files are labeled y0000 
     344 
     345      CALL obc_dta_chktime ( iyyfile, immfile ) 
     346 
     347      IF ( itobc == 1 ) THEN  
     348         ! in this case we will provide boundary data only once. 
     349         nt_a=1 ; ntobc_a=1 
     350         CALL obc_read (nit000, nt_a, ntobc_a, iyyfile, immfile)  
     351         IF( lp_obc_east ) THEN 
     352            !  fills sfoe, tfoe, ufoe ,vfoe 
     353            sfoe(:,:) =  sedta (:,:,1) ; tfoe(:,:) =  tedta (:,:,1) 
     354            ufoe(:,:) =  uedta (:,:,1) ; vfoe(:,:) =  vedta (:,:,1) 
     355         ENDIF 
     356 
     357         IF( lp_obc_west) THEN 
     358            !  fills sfow, tfow, ufow ,vfow 
     359            sfow(:,:) =  swdta (:,:,1) ; tfow(:,:) =  twdta (:,:,1) 
     360            ufow(:,:) =  uwdta (:,:,1) ; vfow(:,:) =  vwdta (:,:,1) 
     361         ENDIF 
     362 
     363         IF( lp_obc_north) THEN 
     364            !  fills sfon, tfon, ufon ,vfon 
     365            sfon(:,:) =  sndta (:,:,1) ; tfon(:,:) =  tndta (:,:,1) 
     366            ufon(:,:) =  undta (:,:,1) ; vfon(:,:) =  vndta (:,:,1) 
     367         ENDIF 
     368 
     369         IF( lp_obc_south) THEN 
     370            !  fills sfos, tfos, ufos ,vfos 
     371            sfos(:,:) =  ssdta (:,:,1) ; tfos(:,:) =  tsdta (:,:,1) 
     372            ufos(:,:) =  usdta (:,:,1) ; vfos(:,:) =  vsdta (:,:,1) 
     373         ENDIF 
     374         RETURN  ! we go out of obc_dta_ini -------------------------------------->>>>> 
     375      ENDIF 
     376 
     377      ! nday_year is the day number in the current year ( 1 for 01/01 ) 
     378      ! we suppose that we always start from the begining of a day 
     379      !    zsec=MOD( (kt-nit000)*rdt - (nday_year - nday_year0 )*rday, rday ) ! number of seconds in the current day 
     380      zsec=0.e0  ! here, kt=nit000, nday_year = ndat_year0  
     381 
     382      IF (ln_obc_clim)  THEN  
     383         zjcnes = nday_year - 1  + zsec/rday  ! for clim file time is in days in a year 
     384      ELSE 
     385         zjcnes = ndate0_cnes + (nday_year - nday_year0 ) + zsec/rday 
     386      ENDIF 
     387 
     388      ! look for 'before' record number in the current file 
     389      ntobc = nrecbef () 
     390 
     391      IF (lwp) WRITE(numout,*) 'obc files frequency :',cffile 
     392      IF (lwp) WRITE(numout,*) ' zjcnes0 =',zjcnes,' ndastp0 =',ndastp 
     393      IF (lwp) WRITE(numout,*) ' annee0 ',iyy,' month0 ', imm,' day0 ', idd 
     394      IF (lwp) WRITE(numout,*) 'first file open :',cl_obc_nTS 
     395 
     396      ! record initialisation 
     397      !-------------------- 
     398      nt_b = 1 ; nt_a = 2 
     399 
     400      ntobc_a = ntobc + 1 
     401      ntobc_b = ntobc 
     402 
     403      CALL obc_read (kt, nt_b, ntobc_b, iyyfile, immfile)  ! read 'before' fields 
     404      CALL obc_read (kt, nt_a, ntobc_a, iyyfile, immfile)  ! read 'after' fields 
     405 
     406      ! additional frame in case of time-splitting 
     407# if defined key_dynspg_ts 
     408      nt_m = 0 
     409      ntobc_m=mod(ntobc_b-2+itobc,itobc)+1 
     410      zjcnes_obc(nt_m)= ztcobc(ntobc_m) ! FDbug has not checked that this is correct!! 
     411      IF (ln_rstart) THEN 
     412         CALL obc_read (kt, nt_m, ntobc_m, iyyfile, immfile)  ! read 'after' fields 
     413      ENDIF 
     414# endif 
     415 
     416      zjcnes_obc(nt_b)= ztcobc(ntobc_b) 
     417      zjcnes_obc(nt_a)= ztcobc(ntobc_a) 
     418      !  
     419   END SUBROUTINE obc_dta_ini 
     420 
     421 
     422   SUBROUTINE obc_dta_chktime (kyyfile, kmmfile) 
     423      ! 
     424      ! check the number of time steps in the files and read ztcobc  
     425      ! 
     426      ! * Arguments 
     427      INTEGER, INTENT(in) :: kyyfile, kmmfile 
     428      ! * local variables 
     429      INTEGER :: istop       ! error control 
     430      INTEGER :: ji          ! dummy loop index 
     431 
     432      INTEGER ::  idvar, id_e, id_w, id_n, id_s       ! file identifiers 
     433      INTEGER, DIMENSION(1)  :: itmp 
     434      CHARACTER(LEN=25) :: cl_vname 
     435 
     436      ntobc_a = 0; itobce =0 ; itobcw = 0; itobcn = 0; itobcs = 0 
     437      ! build file name 
     438      IF(ln_obc_clim) THEN   ! revert to old convention for climatological OBC forcing 
     439         cl_obc_eTS='obceast_TS.nc' 
     440         cl_obc_wTS='obcwest_TS.nc' 
     441         cl_obc_nTS='obcnorth_TS.nc' 
     442         cl_obc_sTS='obcsouth_TS.nc' 
     443      ELSE                   ! convention for climatological OBC 
     444         WRITE(cl_obc_eTS ,'("obc_east_TS_y",i4.4,"m",i2.2,".nc")'  ) kyyfile,kmmfile 
     445         WRITE(cl_obc_wTS ,'("obc_west_TS_y",i4.4,"m",i2.2,".nc")'  ) kyyfile,kmmfile 
     446         WRITE(cl_obc_nTS ,'("obc_north_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 
     447         WRITE(cl_obc_sTS ,'("obc_south_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 
     448      ENDIF 
     449 
     450      cl_vname = 'time_counter' 
     451      IF ( lp_obc_east ) THEN 
     452         CALL iom_open ( cl_obc_eTS , id_e ) 
     453         idvar = iom_varid( id_e, cl_vname, kdimsz = itmp ); itobce=itmp(1) 
     454      ENDIF 
     455      IF ( lp_obc_west ) THEN 
     456         CALL iom_open ( cl_obc_wTS , id_w ) 
     457         idvar = iom_varid( id_w, cl_vname, kdimsz = itmp ) ; itobcw=itmp(1) 
     458      ENDIF 
     459      IF ( lp_obc_north ) THEN 
     460         CALL iom_open ( cl_obc_nTS , id_n ) 
     461         idvar = iom_varid( id_n, cl_vname, kdimsz = itmp ) ; itobcn=itmp(1) 
     462      ENDIF 
     463      IF ( lp_obc_south ) THEN 
     464         CALL iom_open ( cl_obc_sTS , id_s ) 
     465         idvar = iom_varid( id_s, cl_vname, kdimsz = itmp ) ; itobcs=itmp(1) 
     466      ENDIF 
     467 
     468      itobc = MAX( itobce, itobcw, itobcn, itobcs ) 
     469      istop = 0 
     470      IF ( lp_obc_east  .AND. itobce /= itobc ) istop = istop+1  
     471      IF ( lp_obc_west  .AND. itobcw /= itobc ) istop = istop+1       
     472      IF ( lp_obc_north .AND. itobcn /= itobc ) istop = istop+1 
     473      IF ( lp_obc_south .AND. itobcs /= itobc ) istop = istop+1  
     474      nstop = nstop + istop 
     475 
     476      IF ( istop /=  0 )  THEN 
     477         WRITE(ctmp1,*) ' east, west, north, south: ', itobce, itobcw, itobcn, itobcs 
     478         CALL ctl_stop( 'obcdta : all files must have the same number of time steps', ctmp1 ) 
     479      ENDIF 
     480 
     481      IF ( itobc == 1 ) THEN  
     482         IF (lwp) THEN 
     483            WRITE(numout,*) ' obcdta found one time step only in the OBC files' 
     484            IF (ln_obc_clim) THEN 
     485               ! OK no problem 
     486            ELSE 
     487               ln_obc_clim=.true. 
     488               WRITE(numout,*) ' we force ln_obc_clim to T' 
     489            ENDIF 
     490         ENDIF 
     491      ELSE 
     492         IF ( ALLOCATED(ztcobc) ) DEALLOCATE ( ztcobc ) 
     493         ALLOCATE (ztcobc(itobc)) 
     494         DO ji=1,1   ! use a dummy loop to read ztcobc only once 
     495            IF ( lp_obc_east ) THEN 
     496               CALL iom_gettime ( id_e, ztcobc, cl_vname ) ; CALL iom_close (id_e) ; EXIT 
     497            ENDIF 
     498            IF ( lp_obc_west ) THEN 
     499               CALL iom_gettime ( id_w, ztcobc, cl_vname ) ; CALL iom_close (id_w) ; EXIT 
     500            ENDIF 
     501            IF ( lp_obc_north ) THEN 
     502               CALL iom_gettime ( id_n, ztcobc, cl_vname ) ; CALL iom_close (id_n) ; EXIT 
     503            ENDIF 
     504            IF ( lp_obc_south ) THEN 
     505               CALL iom_gettime ( id_s, ztcobc, cl_vname ) ; CALL iom_close (id_s) ; EXIT 
     506            ENDIF 
     507         END DO 
     508         rdt_obc = ztcobc(2)-ztcobc(1)  !  just an information, not used for any computation 
     509         IF (lwp) WRITE(numout,*) ' obcdta found', itobc,' time steps in the OBC files' 
     510         IF (lwp) WRITE(numout,*) ' time step of obc data :', rdt_obc,' days'             
     511      ENDIF 
     512      zjcnes = zjcnes - rdt/rday  ! trick : zcnes is always incremented by rdt/rday in obc_dta! 
     513   END SUBROUTINE obc_dta_chktime 
     514 
     515# if defined key_dynspg_ts || defined key_dynspg_exp 
     516   SUBROUTINE obc_dta_bt( kt, kbt ) 
     517      !!--------------------------------------------------------------------------- 
     518      !!                      ***  SUBROUTINE obc_dta  *** 
     519      !! 
     520      !! ** Purpose :   time interpolation of barotropic data for time-splitting scheme 
     521      !!                Data at the boundary must be in m2/s  
     522      !! 
     523      !! History : 
     524      !!   9.0  !  05-11 (V. garnier) Original code 
     525      !!--------------------------------------------------------------------------- 
     526      !! * Arguments 
     527      INTEGER, INTENT( in ) ::   kt          ! ocean time-step index 
     528      INTEGER, INTENT( in ) ::   kbt         ! barotropic ocean time-step index 
     529 
     530      !! * Local declarations 
     531      INTEGER ::   ji, jj  ! dummy loop indices 
     532      INTEGER ::   i15 
     533      INTEGER ::   itobcm, itobcp 
     534      REAL(wp) ::  zxy 
     535      INTEGER ::   isrel           ! number of seconds since 1/1/1992 
     536 
     537      !!--------------------------------------------------------------------------- 
     538 
     539      ! 1.   First call: check time frames available in files. 
     540      ! ------------------------------------------------------- 
     541 
     542      IF( kt == nit000 ) THEN 
     543 
     544         ! 1.1  Barotropic tangential velocities set to zero 
     545         ! ------------------------------------------------- 
     546         IF( lp_obc_east  ) vbtfoe(:) = 0.e0 
     547         IF( lp_obc_west  ) vbtfow(:) = 0.e0 
     548         IF( lp_obc_south ) ubtfos(:) = 0.e0 
     549         IF( lp_obc_north ) ubtfon(:) = 0.e0 
     550 
     551         ! 1.2  Sea surface height and normal barotropic velocities set to zero 
     552         !                               or initial conditions if nobc_dta == 0 
     553         ! -------------------------------------------------------------------- 
     554 
     555         IF( lp_obc_east ) THEN 
     556            ! initialisation to zero 
     557            sshedta(:,:) = 0.e0 
     558            ubtedta(:,:) = 0.e0 
     559            vbtedta(:,:) = 0.e0 ! tangential component 
     560            !                                        ! ================== ! 
     561            IF( nobc_dta == 0 )   THEN               ! initial state used ! 
     562               !                                     ! ================== ! 
     563               !  Fills sedta, tedta, uedta (global arrays) 
     564               !  Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 
     565               DO ji = nie0, nie1 
     566                  DO jj = 1, jpj 
     567                     sshedta(jj,1) = sshn(ji+1,jj) * tmask(ji+1,jj,1) 
     568                  END DO 
     569               END DO 
     570            ENDIF 
     571         ENDIF 
     572 
     573         IF( lp_obc_west) THEN 
     574            ! initialisation to zero 
     575            sshwdta(:,:) = 0.e0 
     576            ubtwdta(:,:) = 0.e0 
     577            vbtwdta(:,:) = 0.e0 ! tangential component 
     578            !                                        ! ================== ! 
     579            IF( nobc_dta == 0 )   THEN               ! initial state used ! 
     580               !                                     ! ================== ! 
     581               !  Fills swdta, twdta, uwdta (global arrays) 
     582               !  Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 
     583               DO ji = niw0, niw1 
     584                  DO jj = 1, jpj 
     585                     sshwdta(jj,1) = sshn(ji,jj) * tmask(ji,jj,1) 
     586                  END DO 
     587               END DO 
     588            ENDIF 
     589         ENDIF 
     590 
     591         IF( lp_obc_north) THEN 
     592            ! initialisation to zero 
     593            sshndta(:,:) = 0.e0 
     594            ubtndta(:,:) = 0.e0 ! tangential component 
     595            vbtndta(:,:) = 0.e0 
     596            !                                        ! ================== ! 
     597            IF( nobc_dta == 0 ) THEN                 ! initial state used ! 
     598               !                                     ! ================== ! 
     599               !  Fills sndta, tndta, vndta (global arrays) 
     600               !  Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 
     601               DO jj = njn0, njn1 
     602                  DO ji = 1, jpi 
     603                     sshndta(ji,1) = sshn(ji,jj+1) * tmask(ji,jj+1,1) 
     604                  END DO 
     605               END DO 
     606            ENDIF 
     607         ENDIF 
     608 
     609         IF( lp_obc_south) THEN 
     610            ! initialisation to zero 
     611            sshsdta(:,:) = 0.e0 
     612            ubtsdta(:,:) = 0.e0 ! tangential component 
     613            vbtsdta(:,:) = 0.e0 
     614            !                                        ! ================== ! 
     615            IF( nobc_dta == 0 )   THEN               ! initial state used ! 
     616               !                                     ! ================== ! 
     617               !  Fills ssdta, tsdta, vsdta (global arrays) 
     618               !  Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 
     619               DO jj = njs0, njs1 
     620                  DO ji = 1, jpi 
     621                     sshsdta(ji,1) = sshn(ji,jj) * tmask(ji,jj,1) 
     622                  END DO 
     623               END DO 
     624            ENDIF 
     625         ENDIF 
     626 
     627         IF( nobc_dta == 0 ) CALL obc_depth_average(1)   ! depth averaged velocity from the OBC depth-dependent frames 
     628 
     629      ENDIF        !       END kt == nit000 
     630 
     631      !!------------------------------------------------------------------------------------ 
     632      ! 2.      Initialize the time we are at. Does this every time the routine is called, 
     633      !         excepted when nobc_dta = 0 
     634      ! 
     635 
     636      ! 3.  Call at every time step : Linear interpolation of BCs to current time step 
     637      ! ---------------------------------------------------------------------- 
     638 
     639      IF( lk_dynspg_ts ) THEN 
     640         isrel = (kt-1)*rdt + kbt*(rdt/REAL(nn_baro,wp)) 
     641      ELSE IF( lk_dynspg_exp ) THEN 
     642         isrel=kt*rdt 
     643      ENDIF 
     644 
     645      itobcm = nt_b 
     646      itobcp = nt_a 
     647      IF( itobc == 1 .OR. nobc_dta == 0 ) THEN 
     648         zxy = 0.e0 
     649         itobcm = 1 
     650         itobcp = 1 
     651      ELSE IF( itobc == 12 ) THEN 
     652         i15   = nday / 16 
     653         zxy = FLOAT( nday + 15 - 30 * i15 ) / 30. 
     654      ELSE 
     655         zxy = (zjcnes_obc(nt_a)-FLOAT(isrel)) / (zjcnes_obc(nt_a)-zjcnes_obc(nt_b)) 
     656         IF( zxy < 0. ) THEN   ! case of extrapolation, switch to old time frames 
     657            itobcm = nt_m 
     658            itobcp = nt_b 
     659            zxy = (zjcnes_obc(nt_b)-FLOAT(isrel)) / (zjcnes_obc(nt_b)-zjcnes_obc(nt_m)) 
     660         ENDIF 
     661      ENDIF 
     662 
     663      IF( lp_obc_east ) THEN           !  fills sshfoe, ubtfoe (local to each processor) 
     664         DO jj = 1, jpj 
     665            sshfoe(jj) = zxy * sshedta(jj,itobcp) + (1.-zxy) * sshedta(jj,itobcm) 
     666            ubtfoe(jj) = zxy * ubtedta(jj,itobcp) + (1.-zxy) * ubtedta(jj,itobcm) 
     667            vbtfoe(jj) = zxy * vbtedta(jj,itobcp) + (1.-zxy) * vbtedta(jj,itobcm) 
     668         END DO 
     669      ENDIF 
     670 
     671      IF( lp_obc_west) THEN            !  fills sshfow, ubtfow (local to each processor) 
     672         DO jj = 1, jpj 
     673            sshfow(jj) = zxy * sshwdta(jj,itobcp) + (1.-zxy) * sshwdta(jj,itobcm) 
     674            ubtfow(jj) = zxy * ubtwdta(jj,itobcp) + (1.-zxy) * ubtwdta(jj,itobcm) 
     675            vbtfow(jj) = zxy * vbtwdta(jj,itobcp) + (1.-zxy) * vbtwdta(jj,itobcm) 
     676         END DO 
     677      ENDIF 
     678 
     679      IF( lp_obc_north) THEN           !  fills sshfon, vbtfon (local to each processor) 
     680         DO ji = 1, jpi 
     681            sshfon(ji) = zxy * sshndta(ji,itobcp) + (1.-zxy) * sshndta(ji,itobcm) 
     682            ubtfon(ji) = zxy * ubtndta(ji,itobcp) + (1.-zxy) * ubtndta(ji,itobcm) 
     683            vbtfon(ji) = zxy * vbtndta(ji,itobcp) + (1.-zxy) * vbtndta(ji,itobcm) 
     684         END DO 
     685      ENDIF 
     686 
     687      IF( lp_obc_south) THEN           !  fills sshfos, vbtfos (local to each processor) 
     688         DO ji = 1, jpi 
     689            sshfos(ji) = zxy * sshsdta(ji,itobcp) + (1.-zxy) * sshsdta(ji,itobcm) 
     690            ubtfos(ji) = zxy * ubtsdta(ji,itobcp) + (1.-zxy) * ubtsdta(ji,itobcm) 
     691            vbtfos(ji) = zxy * vbtsdta(ji,itobcp) + (1.-zxy) * vbtsdta(ji,itobcm) 
     692         END DO 
     693      ENDIF 
     694 
     695   END SUBROUTINE obc_dta_bt 
     696 
     697# else 
     698   !!----------------------------------------------------------------------------- 
     699   !!   Default option 
     700   !!----------------------------------------------------------------------------- 
     701   SUBROUTINE obc_dta_bt ( kt, kbt )       ! Empty routine 
     702      !! * Arguments 
     703      INTEGER,INTENT(in) :: kt 
     704      INTEGER, INTENT( in ) ::   kbt         ! barotropic ocean time-step index 
     705      WRITE(*,*) 'obc_dta_bt: You should not have seen this print! error?', kt 
     706      WRITE(*,*) 'obc_dta_bt: You should not have seen this print! error?', kbt 
     707   END SUBROUTINE obc_dta_bt 
     708# endif 
     709 
     710   SUBROUTINE obc_read (kt, nt_x, ntobc_x, iyy, imm) 
     711      !!------------------------------------------------------------------------- 
     712      !!                      ***  ROUTINE obc_read  *** 
     713      !! 
     714      !! ** Purpose :  Read the boundary data in files identified by iyy and imm 
     715      !!               According to the validated open boundaries, return the  
     716      !!               following arrays : 
     717      !!                sedta, tedta : East OBC salinity and temperature 
     718      !!                uedta, vedta :   "   "  u and v velocity component       
     719      !! 
     720      !!                swdta, twdta : West OBC salinity and temperature 
     721      !!                uwdta, vwdta :   "   "  u and v velocity component       
     722      !! 
     723      !!                sndta, tndta : North OBC salinity and temperature 
     724      !!                undta, vndta :   "   "  u and v velocity component       
     725      !! 
     726      !!                ssdta, tsdta : South OBC salinity and temperature 
     727      !!                usdta, vsdta :   "   "  u and v velocity component       
     728      !! 
     729      !! ** Method  :  These fields are read in the record ntobc_x of the files. 
     730      !!               The number of records is already known. If  ntobc_x is greater 
     731      !!               than the number of record, this routine will look for next file, 
     732      !!               updating the indices (case of inter-annual obcs) or loop at the 
     733      !!               begining in case of climatological file (ln_obc_clim = true ). 
     734      !! ------------------------------------------------------------------------- 
     735      !! History:     !  2005  ( P. Mathiot, C. Langlais ) Original code 
     736      !!              !  2008  ( J,M, Molines ) Use IOM and cleaning 
     737      !!-------------------------------------------------------------------------- 
     738 
     739      ! * Arguments 
     740      INTEGER, INTENT( in ) :: kt, nt_x 
     741      INTEGER, INTENT( inout ) :: ntobc_x , iyy, imm      ! yes ! inout ! 
     742 
     743      ! * Local variables 
     744      CHARACTER (len=40) :: &    ! file names 
    944745         cl_obc_eTS   , cl_obc_eU,  cl_obc_eV,& 
    945746         cl_obc_wTS   , cl_obc_wU,  cl_obc_wV,& 
     
    947748         cl_obc_sTS   , cl_obc_sU,  cl_obc_sV 
    948749 
    949     INTEGER :: ikprint 
    950     REAL(wp) :: zmin, zmax   ! control of boundary values 
    951  
    952     !IOM stuff 
    953     INTEGER :: id_e, id_w, id_n, id_s, ji, jj 
    954     INTEGER, DIMENSION(2) :: istart, icount 
    955     
    956     !-------------------------------------------------------------------------- 
    957     IF ( ntobc_x > itobc ) THEN 
    958       IF (ln_obc_clim) THEN  ! just loop on the same file 
    959         ntobc_x = 1  
    960       ELSE 
    961         ! need to change file : it is always for an 'after' data 
    962         IF ( cffile == 'annual' ) THEN ! go to next year file 
    963           iyy = iyy + 1 
    964         ELSE IF ( cffile =='monthly' ) THEN  ! go to next month file 
    965           imm = imm + 1  
    966           IF ( imm == 13 ) THEN  
    967             imm = 1 ; iyy = iyy + 1 
    968           ENDIF 
    969         ELSE 
    970          ctmp1='obcread : this type of obc file is not supported :( ' 
    971          ctmp2=TRIM(cffile) 
    972          CALL ctl_stop (ctmp1, ctmp2) 
    973          ! cffile should be either annual or monthly ... 
    974         ENDIF 
    975        ! as the file is changed, need to update itobc etc ... 
    976         CALL obc_dta_chktime (iyy,imm) 
    977         ntobc_x = nrecbef() + 1 ! remember : this case occur for an after data 
    978       ENDIF 
    979     ENDIF 
    980  
    981     IF ( lp_obc_east ) THEN  
    982        ! ... Read datafile and set temperature, salinity and normal velocity 
    983        ! ... initialise the sedta, tedta, uedta arrays 
    984        WRITE(cl_obc_eTS ,'("obc_east_TS_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    985        WRITE(cl_obc_eU  ,'("obc_east_U_y"   ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    986        WRITE(cl_obc_eV  ,'("obc_east_V_y"   ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    987        ! JMM this may change depending on the obc data format ... 
    988        istart(:)=(/nje0+njmpp-1,1/) ; icount(:)=(/nje1-nje0 +1,jpk/) 
    989        IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_eTS) 
    990        IF (nje1 >= nje0 ) THEN 
    991           CALL iom_open ( cl_obc_eTS , id_e ) 
    992           CALL iom_get ( id_e, jpdom_unknown, 'votemper', tedta(nje0:nje1,:,nt_x), & 
    993                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    994           CALL iom_get ( id_e, jpdom_unknown, 'vosaline', sedta(nje0:nje1,:,nt_x), & 
    995                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    996           CALL iom_close (id_e) 
    997           ! 
    998           CALL iom_open ( cl_obc_eU , id_e ) 
    999           CALL iom_get  ( id_e, jpdom_unknown, 'vozocrtx', uedta(nje0:nje1,:,nt_x), & 
    1000                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1001           CALL iom_close ( id_e ) 
    1002           ! 
    1003           CALL iom_open ( cl_obc_eV , id_e ) 
    1004           CALL iom_get ( id_e, jpdom_unknown, 'vomecrty', vedta(nje0:nje1,:,nt_x), & 
    1005                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1006           CALL iom_close ( id_e ) 
    1007  
    1008           ! mask the boundary values 
    1009           tedta(:,:,nt_x) = tedta(:,:,nt_x)*temsk(:,:) ;  sedta(:,:,nt_x) = sedta(:,:,nt_x)*temsk(:,:) 
    1010           uedta(:,:,nt_x) = uedta(:,:,nt_x)*uemsk(:,:) ;  vedta(:,:,nt_x) = vedta(:,:,nt_x)*vemsk(:,:) 
    1011  
    1012           ! check any outliers  
    1013           zmin=MINVAL( sedta(:,:,nt_x), mask=ltemsk ) ; zmax=MAXVAL(sedta(:,:,nt_x), mask=ltemsk) 
    1014           IF (  zmin < 5 .OR. zmax > 50)   THEN 
    1015              CALL ctl_stop('Error in sedta',' routine obcdta') 
    1016           ENDIF 
    1017           zmin=MINVAL( tedta(:,:,nt_x), mask=ltemsk ) ; zmax=MAXVAL(tedta(:,:,nt_x), mask=ltemsk) 
    1018           IF (  zmin < -10. .OR. zmax > 40)   THEN 
    1019              CALL ctl_stop('Error in tedta',' routine obcdta') 
    1020           ENDIF 
    1021           zmin=MINVAL( uedta(:,:,nt_x), mask=luemsk ) ; zmax=MAXVAL(uedta(:,:,nt_x), mask=luemsk) 
    1022           IF (  zmin < -5. .OR. zmax > 5.)   THEN 
    1023              CALL ctl_stop('Error in uedta',' routine obcdta') 
    1024           ENDIF 
    1025           zmin=MINVAL( vedta(:,:,nt_x), mask=lvemsk ) ; zmax=MAXVAL(vedta(:,:,nt_x), mask=lvemsk) 
    1026           IF (  zmin < -5. .OR. zmax > 5.)   THEN 
    1027              CALL ctl_stop('Error in vedta',' routine obcdta') 
    1028           ENDIF 
    1029  
    1030           !               Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1       
    1031           IF ( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
    1032              WRITE(numout,*) 
    1033              WRITE(numout,*) ' Read East OBC data records ', ntobc_x 
    1034              ikprint = jpj/20 +1 
    1035              WRITE(numout,*) ' Temperature  record 1 - printout every 3 level' 
    1036              CALL prihre( tedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
    1037              WRITE(numout,*) 
    1038              WRITE(numout,*) ' Salinity  record 1 - printout every 3 level' 
    1039              CALL prihre( sedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
    1040              WRITE(numout,*) 
    1041              WRITE(numout,*) ' Normal velocity U  record 1  - printout every 3 level' 
    1042              CALL prihre( uedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
    1043              WRITE(numout,*) 
    1044              WRITE(numout,*) ' Tangential velocity V  record 1  - printout every 3 level' 
    1045              CALL prihre( vedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
    1046           ENDIF 
    1047        ENDIF 
    1048     ENDIF 
     750      INTEGER :: ikprint 
     751      REAL(wp) :: zmin, zmax   ! control of boundary values 
     752 
     753      !IOM stuff 
     754      INTEGER :: id_e, id_w, id_n, id_s 
     755      INTEGER, DIMENSION(2) :: istart, icount 
     756 
     757      !-------------------------------------------------------------------------- 
     758      IF ( ntobc_x > itobc ) THEN 
     759         IF (ln_obc_clim) THEN  ! just loop on the same file 
     760            ntobc_x = 1  
     761         ELSE 
     762            ! need to change file : it is always for an 'after' data 
     763            IF ( cffile == 'annual' ) THEN ! go to next year file 
     764               iyy = iyy + 1 
     765            ELSE IF ( cffile =='monthly' ) THEN  ! go to next month file 
     766               imm = imm + 1  
     767               IF ( imm == 13 ) THEN  
     768                  imm = 1 ; iyy = iyy + 1 
     769               ENDIF 
     770            ELSE 
     771               ctmp1='obcread : this type of obc file is not supported :( ' 
     772               ctmp2=TRIM(cffile) 
     773               CALL ctl_stop (ctmp1, ctmp2) 
     774               ! cffile should be either annual or monthly ... 
     775            ENDIF 
     776            ! as the file is changed, need to update itobc etc ... 
     777            CALL obc_dta_chktime (iyy,imm) 
     778            ntobc_x = nrecbef() + 1 ! remember : this case occur for an after data 
     779         ENDIF 
     780      ENDIF 
     781 
     782      IF( lp_obc_east ) THEN  
     783         ! ... Read datafile and set temperature, salinity and normal velocity 
     784         ! ... initialise the sedta, tedta, uedta arrays 
     785         IF(ln_obc_clim) THEN  ! revert to old convention for climatological OBC forcing 
     786            cl_obc_eTS='obceast_TS.nc' 
     787            cl_obc_eU ='obceast_U.nc' 
     788            cl_obc_eV ='obceast_V.nc' 
     789         ELSE                  ! convention for climatological OBC 
     790            WRITE(cl_obc_eTS ,'("obc_east_TS_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     791            WRITE(cl_obc_eU  ,'("obc_east_U_y"   ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     792            WRITE(cl_obc_eV  ,'("obc_east_V_y"   ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     793         ENDIF 
     794         ! JMM this may change depending on the obc data format ... 
     795         istart(:)=(/nje0+njmpp-1,1/) ; icount(:)=(/nje1-nje0 +1,jpk/) 
     796         IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_eTS) 
     797         IF (nje1 >= nje0 ) THEN 
     798            CALL iom_open ( cl_obc_eTS , id_e ) 
     799            CALL iom_get ( id_e, jpdom_unknown, 'votemper', tedta(nje0:nje1,:,nt_x), & 
     800               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     801            CALL iom_get ( id_e, jpdom_unknown, 'vosaline', sedta(nje0:nje1,:,nt_x), & 
     802               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     803# if defined key_dynspg_ts || defined key_dynspg_exp 
     804            CALL iom_get ( id_e, jpdom_unknown, 'vossurfh', sshedta(nje0:nje1,nt_x), & 
     805               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     806# endif 
     807            CALL iom_close (id_e) 
     808            ! 
     809            CALL iom_open ( cl_obc_eU , id_e ) 
     810            CALL iom_get  ( id_e, jpdom_unknown, 'vozocrtx', uedta(nje0:nje1,:,nt_x), & 
     811               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     812            CALL iom_close ( id_e ) 
     813            ! 
     814            CALL iom_open ( cl_obc_eV , id_e ) 
     815            CALL iom_get ( id_e, jpdom_unknown, 'vomecrty', vedta(nje0:nje1,:,nt_x), & 
     816               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     817            CALL iom_close ( id_e ) 
     818 
     819            ! mask the boundary values 
     820            tedta(:,:,nt_x) = tedta(:,:,nt_x)*temsk(:,:) ;  sedta(:,:,nt_x) = sedta(:,:,nt_x)*temsk(:,:) 
     821            uedta(:,:,nt_x) = uedta(:,:,nt_x)*uemsk(:,:) ;  vedta(:,:,nt_x) = vedta(:,:,nt_x)*vemsk(:,:) 
     822 
     823            ! check any outliers  
     824            zmin=MINVAL( sedta(:,:,nt_x), mask=ltemsk ) ; zmax=MAXVAL(sedta(:,:,nt_x), mask=ltemsk) 
     825            IF (  zmin < 5 .OR. zmax > 50)   THEN 
     826               CALL ctl_stop('Error in sedta',' routine obcdta') 
     827            ENDIF 
     828            zmin=MINVAL( tedta(:,:,nt_x), mask=ltemsk ) ; zmax=MAXVAL(tedta(:,:,nt_x), mask=ltemsk) 
     829            IF (  zmin < -10. .OR. zmax > 40)   THEN 
     830               CALL ctl_stop('Error in tedta',' routine obcdta') 
     831            ENDIF 
     832            zmin=MINVAL( uedta(:,:,nt_x), mask=luemsk ) ; zmax=MAXVAL(uedta(:,:,nt_x), mask=luemsk) 
     833            IF (  zmin < -5. .OR. zmax > 5.)   THEN 
     834               CALL ctl_stop('Error in uedta',' routine obcdta') 
     835            ENDIF 
     836            zmin=MINVAL( vedta(:,:,nt_x), mask=lvemsk ) ; zmax=MAXVAL(vedta(:,:,nt_x), mask=lvemsk) 
     837            IF (  zmin < -5. .OR. zmax > 5.)   THEN 
     838               CALL ctl_stop('Error in vedta',' routine obcdta') 
     839            ENDIF 
     840 
     841            !               Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1       
     842            IF ( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
     843               WRITE(numout,*) 
     844               WRITE(numout,*) ' Read East OBC data records ', ntobc_x 
     845               ikprint = jpj/20 +1 
     846               WRITE(numout,*) ' Temperature  record 1 - printout every 3 level' 
     847               CALL prihre( tedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
     848               WRITE(numout,*) 
     849               WRITE(numout,*) ' Salinity  record 1 - printout every 3 level' 
     850               CALL prihre( sedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
     851               WRITE(numout,*) 
     852               WRITE(numout,*) ' Normal velocity U  record 1  - printout every 3 level' 
     853               CALL prihre( uedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
     854               WRITE(numout,*) 
     855               WRITE(numout,*) ' Tangential velocity V  record 1  - printout every 3 level' 
     856               CALL prihre( vedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
     857            ENDIF 
     858         ENDIF 
     859      ENDIF 
    1049860!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    1050     IF ( lp_obc_west ) THEN 
    1051        ! ... Read datafile and set temperature, salinity and normal velocity 
    1052        ! ... initialise the swdta, twdta, uwdta arrays 
    1053        WRITE(cl_obc_wTS ,'("obc_west_TS_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    1054        WRITE(cl_obc_wU  ,'("obc_west_U_y"   ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    1055        WRITE(cl_obc_wV  ,'("obc_west_V_y"   ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    1056        istart(:)=(/njw0+njmpp-1,1/) ; icount(:)=(/njw1-njw0 +1,jpk/) 
    1057        IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_wTS) 
    1058  
    1059        IF ( njw1 >= njw0 ) THEN 
    1060           CALL iom_open ( cl_obc_wTS , id_w ) 
    1061           CALL iom_get ( id_w, jpdom_unknown, 'votemper', twdta(njw0:njw1,:,nt_x), &  
    1062                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1063  
    1064           CALL iom_get ( id_w, jpdom_unknown, 'vosaline', swdta(njw0:njw1,:,nt_x), & 
     861      IF ( lp_obc_west ) THEN 
     862         ! ... Read datafile and set temperature, salinity and normal velocity 
     863         ! ... initialise the swdta, twdta, uwdta arrays 
     864         IF (ln_obc_clim) THEN   ! revert to old convention for climatological OBC forcing 
     865            cl_obc_wTS='obcwest_TS.nc' 
     866            cl_obc_wU ='obcwest_U.nc' 
     867            cl_obc_wV ='obcwest_V.nc' 
     868         ELSE                    ! convention for climatological OBC 
     869            WRITE(cl_obc_wTS ,'("obc_west_TS_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     870            WRITE(cl_obc_wU  ,'("obc_west_U_y"   ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     871            WRITE(cl_obc_wV  ,'("obc_west_V_y"   ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     872         ENDIF 
     873         istart(:)=(/njw0+njmpp-1,1/) ; icount(:)=(/njw1-njw0 +1,jpk/) 
     874         IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_wTS) 
     875 
     876         IF ( njw1 >= njw0 ) THEN 
     877            CALL iom_open ( cl_obc_wTS , id_w ) 
     878            CALL iom_get ( id_w, jpdom_unknown, 'votemper', twdta(njw0:njw1,:,nt_x), &  
     879               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     880 
     881            CALL iom_get ( id_w, jpdom_unknown, 'vosaline', swdta(njw0:njw1,:,nt_x), & 
    1065882               &               ktime=ntobc_x , kstart=istart, kcount= icount) 
    1066           CALL iom_close (id_w) 
    1067           ! 
    1068           CALL iom_open ( cl_obc_wU , id_w ) 
    1069           CALL iom_get  ( id_w, jpdom_unknown, 'vozocrtx', uwdta(njw0:njw1,:,nt_x),& 
    1070                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1071           CALL iom_close ( id_w ) 
    1072           ! 
    1073           CALL iom_open ( cl_obc_wV , id_w ) 
    1074           CALL iom_get ( id_w, jpdom_unknown, 'vomecrty', vwdta(njw0:njw1,:,nt_x), & 
    1075                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1076           CALL iom_close ( id_w ) 
    1077  
    1078           ! mask the boundary values 
    1079           twdta(:,:,nt_x) = twdta(:,:,nt_x)*twmsk(:,:) ;  swdta(:,:,nt_x) = swdta(:,:,nt_x)*twmsk(:,:) 
    1080           uwdta(:,:,nt_x) = uwdta(:,:,nt_x)*uwmsk(:,:) ;  vwdta(:,:,nt_x) = vwdta(:,:,nt_x)*vwmsk(:,:) 
    1081  
    1082           ! check any outliers 
    1083           zmin=MINVAL( swdta(:,:,nt_x), mask=ltwmsk ) ; zmax=MAXVAL(swdta(:,:,nt_x), mask=ltwmsk) 
    1084           IF (  zmin < 5 .OR. zmax > 50)   THEN 
    1085              CALL ctl_stop('Error in swdta',' routine obcdta') 
    1086           ENDIF 
    1087           zmin=MINVAL( twdta(:,:,nt_x), mask=ltwmsk ) ; zmax=MAXVAL(twdta(:,:,nt_x), mask=ltwmsk) 
    1088           IF (  zmin < -10. .OR. zmax > 40)   THEN 
    1089              CALL ctl_stop('Error in twdta',' routine obcdta') 
    1090           ENDIF 
    1091           zmin=MINVAL( uwdta(:,:,nt_x), mask=luwmsk ) ; zmax=MAXVAL(uwdta(:,:,nt_x), mask=luwmsk) 
    1092           IF (  zmin < -5. .OR. zmax > 5.)   THEN 
    1093              CALL ctl_stop('Error in uwdta',' routine obcdta') 
    1094           ENDIF 
    1095           zmin=MINVAL( vwdta(:,:,nt_x), mask=lvwmsk ) ; zmax=MAXVAL(vwdta(:,:,nt_x), mask=lvwmsk) 
    1096           IF (  zmin < -5. .OR. zmax > 5.)   THEN 
    1097              CALL ctl_stop('Error in vwdta',' routine obcdta') 
    1098           ENDIF 
    1099  
    1100  
    1101           IF ( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
    1102              WRITE(numout,*) 
    1103              WRITE(numout,*) ' Read West OBC data records ', ntobc_x 
    1104              ikprint = jpj/20 +1 
    1105              WRITE(numout,*) ' Temperature  record 1 - printout every 3 level' 
    1106              CALL prihre( twdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
    1107              WRITE(numout,*) 
    1108              WRITE(numout,*) ' Salinity  record 1 - printout every 3 level' 
    1109              CALL prihre( swdta(:,:,nt_x),jpj,jpk, 1, jpj, ikprint,   jpk, 1, -3, 1., numout ) 
    1110              WRITE(numout,*) 
    1111              WRITE(numout,*) ' Normal velocity U  record 1  - printout every 3 level' 
    1112              CALL prihre( uwdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
    1113              WRITE(numout,*) 
    1114              WRITE(numout,*) ' Tangential velocity V  record 1  - printout every 3 level' 
    1115              CALL prihre( vwdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
    1116           ENDIF 
    1117        END IF 
    1118     ENDIF 
     883# if defined key_dynspg_ts || defined key_dynspg_exp 
     884            CALL iom_get ( id_w, jpdom_unknown, 'vossurfh', sshwdta(njw0:njw1,nt_x), & 
     885               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     886# endif 
     887            CALL iom_close (id_w) 
     888            ! 
     889            CALL iom_open ( cl_obc_wU , id_w ) 
     890            CALL iom_get  ( id_w, jpdom_unknown, 'vozocrtx', uwdta(njw0:njw1,:,nt_x),& 
     891               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     892            CALL iom_close ( id_w ) 
     893            ! 
     894            CALL iom_open ( cl_obc_wV , id_w ) 
     895            CALL iom_get ( id_w, jpdom_unknown, 'vomecrty', vwdta(njw0:njw1,:,nt_x), & 
     896               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     897            CALL iom_close ( id_w ) 
     898 
     899            ! mask the boundary values 
     900            twdta(:,:,nt_x) = twdta(:,:,nt_x)*twmsk(:,:) ;  swdta(:,:,nt_x) = swdta(:,:,nt_x)*twmsk(:,:) 
     901            uwdta(:,:,nt_x) = uwdta(:,:,nt_x)*uwmsk(:,:) ;  vwdta(:,:,nt_x) = vwdta(:,:,nt_x)*vwmsk(:,:) 
     902 
     903            ! check any outliers 
     904            zmin=MINVAL( swdta(:,:,nt_x), mask=ltwmsk ) ; zmax=MAXVAL(swdta(:,:,nt_x), mask=ltwmsk) 
     905            IF (  zmin < 5 .OR. zmax > 50)   THEN 
     906               CALL ctl_stop('Error in swdta',' routine obcdta') 
     907            ENDIF 
     908            zmin=MINVAL( twdta(:,:,nt_x), mask=ltwmsk ) ; zmax=MAXVAL(twdta(:,:,nt_x), mask=ltwmsk) 
     909            IF (  zmin < -10. .OR. zmax > 40)   THEN 
     910               CALL ctl_stop('Error in twdta',' routine obcdta') 
     911            ENDIF 
     912            zmin=MINVAL( uwdta(:,:,nt_x), mask=luwmsk ) ; zmax=MAXVAL(uwdta(:,:,nt_x), mask=luwmsk) 
     913            IF (  zmin < -5. .OR. zmax > 5.)   THEN 
     914               CALL ctl_stop('Error in uwdta',' routine obcdta') 
     915            ENDIF 
     916            zmin=MINVAL( vwdta(:,:,nt_x), mask=lvwmsk ) ; zmax=MAXVAL(vwdta(:,:,nt_x), mask=lvwmsk) 
     917            IF (  zmin < -5. .OR. zmax > 5.)   THEN 
     918               CALL ctl_stop('Error in vwdta',' routine obcdta') 
     919            ENDIF 
     920 
     921 
     922            IF ( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
     923               WRITE(numout,*) 
     924               WRITE(numout,*) ' Read West OBC data records ', ntobc_x 
     925               ikprint = jpj/20 +1 
     926               WRITE(numout,*) ' Temperature  record 1 - printout every 3 level' 
     927               CALL prihre( twdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
     928               WRITE(numout,*) 
     929               WRITE(numout,*) ' Salinity  record 1 - printout every 3 level' 
     930               CALL prihre( swdta(:,:,nt_x),jpj,jpk, 1, jpj, ikprint,   jpk, 1, -3, 1., numout ) 
     931               WRITE(numout,*) 
     932               WRITE(numout,*) ' Normal velocity U  record 1  - printout every 3 level' 
     933               CALL prihre( uwdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
     934               WRITE(numout,*) 
     935               WRITE(numout,*) ' Tangential velocity V  record 1  - printout every 3 level' 
     936               CALL prihre( vwdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 
     937            ENDIF 
     938         END IF 
     939      ENDIF 
    1119940!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    1120     IF( lp_obc_north) THEN 
    1121        WRITE(cl_obc_nTS ,'("obc_north_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    1122        WRITE(cl_obc_nV  ,'("obc_north_V_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    1123        WRITE(cl_obc_nU  ,'("obc_north_U_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    1124        istart(:)=(/nin0+nimpp-1,1/) ; icount(:)=(/nin1-nin0 +1,jpk/) 
    1125        IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_nTS) 
    1126        IF ( nin1 >= nin0 ) THEN 
    1127           CALL iom_open ( cl_obc_nTS , id_n ) 
    1128           CALL iom_get ( id_n, jpdom_unknown, 'votemper', tndta(nin0:nin1,:,nt_x), & 
    1129                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1130           CALL iom_get ( id_n, jpdom_unknown, 'vosaline', sndta(nin0:nin1,:,nt_x), & 
    1131                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1132           CALL iom_close (id_n) 
    1133           ! 
    1134           CALL iom_open ( cl_obc_nU , id_n ) 
    1135           CALL iom_get  ( id_n, jpdom_unknown, 'vozocrtx', undta(nin0:nin1,:,nt_x), & 
    1136                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1137           CALL iom_close ( id_n ) 
    1138           ! 
    1139           CALL iom_open ( cl_obc_nV , id_n ) 
    1140           CALL iom_get  ( id_n, jpdom_unknown, 'vomecrty', vndta(nin0:nin1,:,nt_x), & 
    1141                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1142           CALL iom_close ( id_n ) 
    1143  
    1144           ! mask the boundary values 
    1145           tndta(:,:,nt_x) = tndta(:,:,nt_x)*tnmsk(:,:) ;  sndta(:,:,nt_x) = sndta(:,:,nt_x)*tnmsk(:,:) 
    1146           undta(:,:,nt_x) = undta(:,:,nt_x)*unmsk(:,:) ;  vndta(:,:,nt_x) = vndta(:,:,nt_x)*vnmsk(:,:) 
    1147  
    1148           ! check any outliers 
    1149           zmin=MINVAL( sndta(:,:,nt_x), mask=ltnmsk ) ; zmax=MAXVAL(sndta(:,:,nt_x), mask=ltnmsk) 
    1150           IF (  zmin < 5 .OR. zmax > 50)   THEN 
    1151              CALL ctl_stop('Error in sndta',' routine obcdta') 
    1152           ENDIF 
    1153           zmin=MINVAL( tndta(:,:,nt_x), mask=ltnmsk ) ; zmax=MAXVAL(tndta(:,:,nt_x), mask=ltnmsk) 
    1154           IF (  zmin < -10. .OR. zmax > 40)   THEN 
    1155              CALL ctl_stop('Error in tndta',' routine obcdta') 
    1156           ENDIF 
    1157           zmin=MINVAL( undta(:,:,nt_x), mask=lunmsk ) ; zmax=MAXVAL(undta(:,:,nt_x), mask=lunmsk) 
    1158           IF (  zmin < -5. .OR. zmax > 5.)   THEN 
    1159              CALL ctl_stop('Error in undta',' routine obcdta') 
    1160           ENDIF 
    1161           zmin=MINVAL( vndta(:,:,nt_x), mask=lvnmsk ) ; zmax=MAXVAL(vndta(:,:,nt_x), mask=lvnmsk) 
    1162           IF (  zmin < -5. .OR. zmax > 5.)   THEN 
    1163              CALL ctl_stop('Error in vndta',' routine obcdta') 
    1164           ENDIF 
    1165  
    1166           IF ( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
    1167              WRITE(numout,*) 
    1168              WRITE(numout,*) ' Read North OBC data records ', ntobc_x 
    1169              ikprint = jpi/20 +1 
    1170              WRITE(numout,*) ' Temperature  record 1 - printout every 3 level' 
    1171              CALL prihre( tndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
    1172              WRITE(numout,*) 
    1173              WRITE(numout,*) ' Salinity  record 1 - printout every 3 level' 
    1174              CALL prihre( sndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
    1175              WRITE(numout,*) 
    1176              WRITE(numout,*) ' Normal velocity V  record 1  - printout every 3 level' 
    1177              CALL prihre( vndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
    1178              WRITE(numout,*) 
    1179              WRITE(numout,*) ' Tangential  velocity U  record 1  - printout every 3 level' 
    1180              CALL prihre( undta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
    1181           ENDIF 
    1182        ENDIF 
    1183     ENDIF 
     941      IF( lp_obc_north) THEN 
     942         IF(ln_obc_clim) THEN   ! revert to old convention for climatological OBC forcing 
     943            cl_obc_nTS='obcnorth_TS.nc' 
     944            cl_obc_nU ='obcnorth_U.nc' 
     945            cl_obc_nV ='obcnorth_V.nc' 
     946         ELSE                   ! convention for climatological OBC 
     947            WRITE(cl_obc_nTS ,'("obc_north_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     948            WRITE(cl_obc_nV  ,'("obc_north_V_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     949            WRITE(cl_obc_nU  ,'("obc_north_U_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     950         ENDIF 
     951         istart(:)=(/nin0+nimpp-1,1/) ; icount(:)=(/nin1-nin0 +1,jpk/) 
     952         IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_nTS) 
     953         IF ( nin1 >= nin0 ) THEN 
     954            CALL iom_open ( cl_obc_nTS , id_n ) 
     955            CALL iom_get ( id_n, jpdom_unknown, 'votemper', tndta(nin0:nin1,:,nt_x), & 
     956               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     957            CALL iom_get ( id_n, jpdom_unknown, 'vosaline', sndta(nin0:nin1,:,nt_x), & 
     958               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     959# if defined key_dynspg_ts || defined key_dynspg_exp 
     960            CALL iom_get ( id_n, jpdom_unknown, 'vossurfh', sshndta(nin0:nin1,nt_x), & 
     961               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     962# endif 
     963            CALL iom_close (id_n) 
     964            ! 
     965            CALL iom_open ( cl_obc_nU , id_n ) 
     966            CALL iom_get  ( id_n, jpdom_unknown, 'vozocrtx', undta(nin0:nin1,:,nt_x), & 
     967               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     968            CALL iom_close ( id_n ) 
     969            ! 
     970            CALL iom_open ( cl_obc_nV , id_n ) 
     971            CALL iom_get  ( id_n, jpdom_unknown, 'vomecrty', vndta(nin0:nin1,:,nt_x), & 
     972               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     973            CALL iom_close ( id_n ) 
     974 
     975            ! mask the boundary values 
     976            tndta(:,:,nt_x) = tndta(:,:,nt_x)*tnmsk(:,:) ;  sndta(:,:,nt_x) = sndta(:,:,nt_x)*tnmsk(:,:) 
     977            undta(:,:,nt_x) = undta(:,:,nt_x)*unmsk(:,:) ;  vndta(:,:,nt_x) = vndta(:,:,nt_x)*vnmsk(:,:) 
     978 
     979            ! check any outliers 
     980            zmin=MINVAL( sndta(:,:,nt_x), mask=ltnmsk ) ; zmax=MAXVAL(sndta(:,:,nt_x), mask=ltnmsk) 
     981            IF (  zmin < 5 .OR. zmax > 50)   THEN 
     982               CALL ctl_stop('Error in sndta',' routine obcdta') 
     983            ENDIF 
     984            zmin=MINVAL( tndta(:,:,nt_x), mask=ltnmsk ) ; zmax=MAXVAL(tndta(:,:,nt_x), mask=ltnmsk) 
     985            IF (  zmin < -10. .OR. zmax > 40)   THEN 
     986               CALL ctl_stop('Error in tndta',' routine obcdta') 
     987            ENDIF 
     988            zmin=MINVAL( undta(:,:,nt_x), mask=lunmsk ) ; zmax=MAXVAL(undta(:,:,nt_x), mask=lunmsk) 
     989            IF (  zmin < -5. .OR. zmax > 5.)   THEN 
     990               CALL ctl_stop('Error in undta',' routine obcdta') 
     991            ENDIF 
     992            zmin=MINVAL( vndta(:,:,nt_x), mask=lvnmsk ) ; zmax=MAXVAL(vndta(:,:,nt_x), mask=lvnmsk) 
     993            IF (  zmin < -5. .OR. zmax > 5.)   THEN 
     994               CALL ctl_stop('Error in vndta',' routine obcdta') 
     995            ENDIF 
     996 
     997            IF ( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
     998               WRITE(numout,*) 
     999               WRITE(numout,*) ' Read North OBC data records ', ntobc_x 
     1000               ikprint = jpi/20 +1 
     1001               WRITE(numout,*) ' Temperature  record 1 - printout every 3 level' 
     1002               CALL prihre( tndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
     1003               WRITE(numout,*) 
     1004               WRITE(numout,*) ' Salinity  record 1 - printout every 3 level' 
     1005               CALL prihre( sndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
     1006               WRITE(numout,*) 
     1007               WRITE(numout,*) ' Normal velocity V  record 1  - printout every 3 level' 
     1008               CALL prihre( vndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
     1009               WRITE(numout,*) 
     1010               WRITE(numout,*) ' Tangential  velocity U  record 1  - printout every 3 level' 
     1011               CALL prihre( undta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
     1012            ENDIF 
     1013         ENDIF 
     1014      ENDIF 
    11841015!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    1185     IF( lp_obc_south) THEN  
    1186        WRITE(cl_obc_sTS ,'("obc_south_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    1187        WRITE(cl_obc_sV  ,'("obc_south_V_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    1188        WRITE(cl_obc_sU  ,'("obc_south_U_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
    1189        istart(:)=(/nis0+nimpp-1,1/) ; icount(:)=(/nis1-nis0 +1,jpk/) 
    1190        IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_sTS) 
    1191        IF ( nis1 >= nis0 ) THEN  
    1192           CALL iom_open ( cl_obc_sTS , id_s ) 
    1193           CALL iom_get ( id_s, jpdom_unknown, 'votemper', tsdta(nis0:nis1,:,nt_x), & 
    1194                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1195           CALL iom_get ( id_s, jpdom_unknown, 'vosaline', ssdta(nis0:nis1,:,nt_x), & 
    1196                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1197           CALL iom_close (id_s) 
    1198           ! 
    1199           CALL iom_open ( cl_obc_sU , id_s ) 
    1200           CALL iom_get  ( id_s, jpdom_unknown, 'vozocrtx', usdta(nis0:nis1,:,nt_x), & 
    1201                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1202           CALL iom_close ( id_s ) 
    1203           ! 
    1204           CALL iom_open ( cl_obc_sV , id_s ) 
    1205           CALL iom_get  ( id_s, jpdom_unknown, 'vomecrty', vsdta(nis0:nis1,:,nt_x), & 
    1206                &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
    1207           CALL iom_close ( id_s ) 
    1208  
    1209           ! mask the boundary values 
    1210           tsdta(:,:,nt_x) = tsdta(:,:,nt_x)*tsmsk(:,:) ;  ssdta(:,:,nt_x) = ssdta(:,:,nt_x)*tsmsk(:,:) 
    1211           usdta(:,:,nt_x) = usdta(:,:,nt_x)*usmsk(:,:) ;  vsdta(:,:,nt_x) = vsdta(:,:,nt_x)*vsmsk(:,:) 
    1212  
    1213           ! check any outliers 
    1214           zmin=MINVAL( ssdta(:,:,nt_x), mask=ltsmsk ) ; zmax=MAXVAL(ssdta(:,:,nt_x), mask=ltsmsk) 
    1215           IF (  zmin < 5 .OR. zmax > 50)   THEN 
    1216              CALL ctl_stop('Error in ssdta',' routine obcdta') 
    1217           ENDIF 
    1218           zmin=MINVAL( tsdta(:,:,nt_x), mask=ltsmsk ) ; zmax=MAXVAL(tsdta(:,:,nt_x), mask=ltsmsk) 
    1219           IF (  zmin < -10. .OR. zmax > 40)   THEN 
    1220              CALL ctl_stop('Error in tsdta',' routine obcdta') 
    1221           ENDIF 
    1222           zmin=MINVAL( usdta(:,:,nt_x), mask=lusmsk ) ; zmax=MAXVAL(usdta(:,:,nt_x), mask=lusmsk) 
    1223           IF (  zmin < -5. .OR. zmax > 5.)   THEN 
    1224              CALL ctl_stop('Error in usdta',' routine obcdta') 
    1225           ENDIF 
    1226           zmin=MINVAL( vsdta(:,:,nt_x), mask=lvsmsk ) ; zmax=MAXVAL(vsdta(:,:,nt_x), mask=lvsmsk) 
    1227           IF (  zmin < -5. .OR. zmax > 5.)   THEN 
    1228              CALL ctl_stop('Error in vsdta',' routine obcdta') 
    1229           ENDIF 
    1230  
    1231           IF ( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
    1232              WRITE(numout,*) 
    1233              WRITE(numout,*) ' Read South OBC data records ', ntobc_x 
    1234              ikprint = jpi/20 +1 
    1235              WRITE(numout,*) ' Temperature  record 1 - printout every 3 level' 
    1236              CALL prihre( tsdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
    1237              WRITE(numout,*) 
    1238              WRITE(numout,*) ' Salinity  record 1 - printout every 3 level' 
    1239              CALL prihre( ssdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
    1240              WRITE(numout,*) 
    1241              WRITE(numout,*) ' Normal velocity V  record 1  - printout every 3 level' 
    1242              CALL prihre( vsdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
    1243              WRITE(numout,*) 
    1244              WRITE(numout,*) ' Tangential velocity U  record 1  - printout every 3 level' 
    1245              CALL prihre( usdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
    1246           ENDIF 
    1247        ENDIF 
    1248     ENDIF 
     1016      IF( lp_obc_south) THEN  
     1017         IF(ln_obc_clim) THEN   ! revert to old convention for climatological OBC forcing 
     1018            cl_obc_sTS='obcsouth_TS.nc' 
     1019            cl_obc_sU ='obcsouth_U.nc' 
     1020            cl_obc_sV ='obcsouth_V.nc' 
     1021         ELSE                    ! convention for climatological OBC 
     1022            WRITE(cl_obc_sTS ,'("obc_south_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     1023            WRITE(cl_obc_sV  ,'("obc_south_V_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     1024            WRITE(cl_obc_sU  ,'("obc_south_U_y"  ,i4.4,"m",i2.2,".nc")' ) iyy,imm 
     1025         ENDIF 
     1026         istart(:)=(/nis0+nimpp-1,1/) ; icount(:)=(/nis1-nis0 +1,jpk/) 
     1027         IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_sTS) 
     1028         IF ( nis1 >= nis0 ) THEN  
     1029            CALL iom_open ( cl_obc_sTS , id_s ) 
     1030            CALL iom_get ( id_s, jpdom_unknown, 'votemper', tsdta(nis0:nis1,:,nt_x), & 
     1031               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     1032            CALL iom_get ( id_s, jpdom_unknown, 'vosaline', ssdta(nis0:nis1,:,nt_x), & 
     1033               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     1034# if defined key_dynspg_ts || defined key_dynspg_exp 
     1035            CALL iom_get ( id_s, jpdom_unknown, 'vossurfh', sshsdta(nis0:nis1,nt_x), & 
     1036               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     1037# endif 
     1038            CALL iom_close (id_s) 
     1039            ! 
     1040            CALL iom_open ( cl_obc_sU , id_s ) 
     1041            CALL iom_get  ( id_s, jpdom_unknown, 'vozocrtx', usdta(nis0:nis1,:,nt_x), & 
     1042               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     1043            CALL iom_close ( id_s ) 
     1044            ! 
     1045            CALL iom_open ( cl_obc_sV , id_s ) 
     1046            CALL iom_get  ( id_s, jpdom_unknown, 'vomecrty', vsdta(nis0:nis1,:,nt_x), & 
     1047               &               ktime=ntobc_x , kstart=istart, kcount= icount ) 
     1048            CALL iom_close ( id_s ) 
     1049 
     1050            ! mask the boundary values 
     1051            tsdta(:,:,nt_x) = tsdta(:,:,nt_x)*tsmsk(:,:) ;  ssdta(:,:,nt_x) = ssdta(:,:,nt_x)*tsmsk(:,:) 
     1052            usdta(:,:,nt_x) = usdta(:,:,nt_x)*usmsk(:,:) ;  vsdta(:,:,nt_x) = vsdta(:,:,nt_x)*vsmsk(:,:) 
     1053 
     1054            ! check any outliers 
     1055            zmin=MINVAL( ssdta(:,:,nt_x), mask=ltsmsk ) ; zmax=MAXVAL(ssdta(:,:,nt_x), mask=ltsmsk) 
     1056            IF (  zmin < 5 .OR. zmax > 50)   THEN 
     1057               CALL ctl_stop('Error in ssdta',' routine obcdta') 
     1058            ENDIF 
     1059            zmin=MINVAL( tsdta(:,:,nt_x), mask=ltsmsk ) ; zmax=MAXVAL(tsdta(:,:,nt_x), mask=ltsmsk) 
     1060            IF (  zmin < -10. .OR. zmax > 40)   THEN 
     1061               CALL ctl_stop('Error in tsdta',' routine obcdta') 
     1062            ENDIF 
     1063            zmin=MINVAL( usdta(:,:,nt_x), mask=lusmsk ) ; zmax=MAXVAL(usdta(:,:,nt_x), mask=lusmsk) 
     1064            IF (  zmin < -5. .OR. zmax > 5.)   THEN 
     1065               CALL ctl_stop('Error in usdta',' routine obcdta') 
     1066            ENDIF 
     1067            zmin=MINVAL( vsdta(:,:,nt_x), mask=lvsmsk ) ; zmax=MAXVAL(vsdta(:,:,nt_x), mask=lvsmsk) 
     1068            IF (  zmin < -5. .OR. zmax > 5.)   THEN 
     1069               CALL ctl_stop('Error in vsdta',' routine obcdta') 
     1070            ENDIF 
     1071 
     1072            IF ( lwp .AND.  ( kt == nit000 .OR. nprint /= 0 )  ) THEN 
     1073               WRITE(numout,*) 
     1074               WRITE(numout,*) ' Read South OBC data records ', ntobc_x 
     1075               ikprint = jpi/20 +1 
     1076               WRITE(numout,*) ' Temperature  record 1 - printout every 3 level' 
     1077               CALL prihre( tsdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
     1078               WRITE(numout,*) 
     1079               WRITE(numout,*) ' Salinity  record 1 - printout every 3 level' 
     1080               CALL prihre( ssdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
     1081               WRITE(numout,*) 
     1082               WRITE(numout,*) ' Normal velocity V  record 1  - printout every 3 level' 
     1083               CALL prihre( vsdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
     1084               WRITE(numout,*) 
     1085               WRITE(numout,*) ' Tangential velocity U  record 1  - printout every 3 level' 
     1086               CALL prihre( usdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 
     1087            ENDIF 
     1088         ENDIF 
     1089      ENDIF 
     1090 
     1091# if defined key_dynspg_ts || defined key_dynspg_exp 
     1092      CALL obc_depth_average(nt_x)   ! computation of depth-averaged velocity 
     1093# endif 
     1094 
    12491095!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    1250   END SUBROUTINE obc_read  
    1251  
    1252   INTEGER FUNCTION nrecbef() 
     1096   END SUBROUTINE obc_read 
     1097 
     1098   INTEGER FUNCTION nrecbef() 
    12531099      !!----------------------------------------------------------------------- 
    12541100      !!                     ***    FUNCTION nrecbef   *** 
     
    12611107      INTEGER :: it , idum 
    12621108 
    1263     idum = itobc 
    1264     DO it =1, itobc 
    1265        IF ( ztcobc(it) > zjcnes ) THEN ;  idum = it - 1 ; EXIT ;  ENDIF 
    1266     ENDDO 
    1267     ! idum can be 0 (climato, before first record) 
    1268     IF ( idum == 0 ) THEN 
    1269        IF ( ln_obc_clim ) THEN 
    1270          idum = itobc 
    1271        ELSE 
    1272          ctmp1='obc_dta: find ntobc == 0 for  non climatological file ' 
    1273          ctmp2='consider adding a first record in your data file ' 
    1274          CALL ctl_stop(ctmp1, ctmp2) 
    1275        ENDIF 
    1276     ENDIF 
    1277     ! idum can be itobc ( zjcnes > ztcobc (itobc) ) 
    1278     !  This is not a problem ... 
    1279     nrecbef = idum 
    1280  
    1281   END FUNCTION nrecbef 
     1109      idum = itobc 
     1110      DO it =1, itobc 
     1111         IF ( ztcobc(it) > zjcnes ) THEN ;  idum = it - 1 ; EXIT ;  ENDIF 
     1112         ENDDO 
     1113         ! idum can be 0 (climato, before first record) 
     1114         IF ( idum == 0 ) THEN 
     1115            IF ( ln_obc_clim ) THEN 
     1116               idum = itobc 
     1117            ELSE 
     1118               ctmp1='obc_dta: find ntobc == 0 for  non climatological file ' 
     1119               ctmp2='consider adding a first record in your data file ' 
     1120               CALL ctl_stop(ctmp1, ctmp2) 
     1121            ENDIF 
     1122         ENDIF 
     1123         ! idum can be itobc ( zjcnes > ztcobc (itobc) ) 
     1124         !  This is not a problem ... 
     1125         nrecbef = idum 
     1126 
     1127      END FUNCTION nrecbef 
     1128 
     1129      !!============================================================================== 
     1130      SUBROUTINE obc_depth_average(nt_x) 
     1131         !!----------------------------------------------------------------------- 
     1132         !!                     ***    ROUTINE obc_depth_average   *** 
     1133         !! 
     1134         !!  Purpose : - compute the depth-averaged velocity from depth-dependent OBC frames 
     1135         !! 
     1136         !!    History : 2009-01 : ( Fred Dupont ) Original code 
     1137         !!----------------------------------------------------------------------- 
     1138 
     1139         ! * Arguments 
     1140         INTEGER, INTENT( in ) :: nt_x 
     1141 
     1142         ! * Local variables 
     1143         INTEGER :: ji, jj, jk 
     1144 
     1145 
     1146         IF( lp_obc_east ) THEN 
     1147            ! initialisation to zero 
     1148            ubtedta(:,nt_x) = 0.e0 
     1149            vbtedta(:,nt_x) = 0.e0 
     1150            DO ji = nie0, nie1 
     1151               DO jj = 1, jpj 
     1152                  DO jk = 1, jpkm1 
     1153                     ubtedta(jj,nt_x) = ubtedta(jj,nt_x) + uedta(jj,jk,nt_x)*fse3u(ji,jj,jk) 
     1154                     vbtedta(jj,nt_x) = vbtedta(jj,nt_x) + vedta(jj,jk,nt_x)*fse3v(ji+1,jj,jk) 
     1155                  END DO 
     1156               END DO 
     1157            END DO 
     1158         ENDIF 
     1159 
     1160         IF( lp_obc_west) THEN 
     1161            ! initialisation to zero 
     1162            ubtwdta(:,nt_x) = 0.e0 
     1163            vbtwdta(:,nt_x) = 0.e0 
     1164            DO ji = niw0, niw1 
     1165               DO jj = 1, jpj 
     1166                  DO jk = 1, jpkm1 
     1167                     ubtwdta(jj,nt_x) = ubtwdta(jj,nt_x) + uwdta(jj,jk,1)*fse3u(ji,jj,jk) 
     1168                     vbtwdta(jj,nt_x) = vbtwdta(jj,nt_x) + vwdta(jj,jk,1)*fse3v(ji,jj,jk) 
     1169                  END DO 
     1170               END DO 
     1171            END DO 
     1172         ENDIF 
     1173 
     1174         IF( lp_obc_north) THEN 
     1175            ! initialisation to zero 
     1176            ubtndta(:,nt_x) = 0.e0 
     1177            vbtndta(:,nt_x) = 0.e0 
     1178            DO jj = njn0, njn1 
     1179               DO ji = 1, jpi 
     1180                  DO jk = 1, jpkm1 
     1181                     ubtndta(ji,nt_x) = ubtndta(ji,nt_x) + undta(ji,jk,nt_x)*fse3u(ji,jj+1,jk) 
     1182                     vbtndta(ji,nt_x) = vbtndta(ji,nt_x) + vndta(ji,jk,nt_x)*fse3v(ji,jj,jk) 
     1183                  END DO 
     1184               END DO 
     1185            END DO 
     1186         ENDIF 
     1187 
     1188         IF( lp_obc_south) THEN 
     1189            ! initialisation to zero 
     1190            ubtsdta(:,nt_x) = 0.e0 
     1191            vbtsdta(:,nt_x) = 0.e0 
     1192            DO jj = njs0, njs1 
     1193               DO ji = nis0, nis1 
     1194                  DO jk = 1, jpkm1 
     1195                     ubtsdta(ji,nt_x) = ubtsdta(ji,nt_x) + usdta(ji,jk,nt_x)*fse3u(ji,jj,jk) 
     1196                     vbtsdta(ji,nt_x) = vbtsdta(ji,nt_x) + vsdta(ji,jk,nt_x)*fse3v(ji,jj,jk) 
     1197                  END DO 
     1198               END DO 
     1199            END DO 
     1200         ENDIF 
     1201 
     1202      END SUBROUTINE obc_depth_average 
    12821203 
    12831204#else 
    1284   !!------------------------------------------------------------------------------ 
    1285   !!   default option:           Dummy module          NO Open Boundary Conditions 
    1286   !!------------------------------------------------------------------------------ 
    1287 CONTAINS 
    1288   SUBROUTINE obc_dta( kt )             ! Dummy routine 
    1289     INTEGER, INTENT (in) :: kt 
    1290     WRITE(*,*) 'obc_dta: You should not have seen this print! error?', kt 
    1291   END SUBROUTINE obc_dta 
     1205      !!------------------------------------------------------------------------------ 
     1206      !!   default option:           Dummy module          NO Open Boundary Conditions 
     1207      !!------------------------------------------------------------------------------ 
     1208   CONTAINS 
     1209      SUBROUTINE obc_dta( kt )             ! Dummy routine 
     1210         INTEGER, INTENT (in) :: kt 
     1211         WRITE(*,*) 'obc_dta: You should not have seen this print! error?', kt 
     1212      END SUBROUTINE obc_dta 
    12921213#endif 
    1293 END MODULE obcdta 
     1214   END MODULE obcdta 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcdyn_bt.F90

    r1152 r2201  
    2323   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2424   USE lib_mpp         ! distributed memory computing 
    25    USE obccli          ! ocean open boundary conditions: climatology 
     25   USE obcdta          ! ocean open boundary conditions 
    2626   USE in_out_manager  ! I/O manager 
    2727   USE dynspg_oce      ! surface pressure gradient     (free surface with time-splitting) 
     
    9999      !! * Local declaration 
    100100      INTEGER ::   ji, jj, jk ! dummy loop indices 
    101       REAL(wp) ::   z05cx, ztau, zin 
    102101      !!------------------------------------------------------------------------------ 
    103102 
     
    134133      !! * Local declaration 
    135134      INTEGER ::   ji, jj, jk ! dummy loop indices 
    136       REAL(wp) ::   z05cx, ztau, zin 
    137135      !!------------------------------------------------------------------------------ 
    138136 
     
    166164      !! * Local declaration 
    167165      INTEGER ::   ji, jj, jk ! dummy loop indices 
    168       REAL(wp) ::   z05cx, ztau, zin 
    169166      !!------------------------------------------------------------------------------ 
    170167 
     
    200197      !! * Local declaration 
    201198      INTEGER ::   ji, jj, jk ! dummy loop indices 
    202       REAL(wp) ::   z05cx, ztau, zin 
    203199 
    204200      !!------------------------------------------------------------------------------ 
     
    235231      !! * Local declaration 
    236232      INTEGER ::   ji, jj, jk ! dummy loop indices 
    237       REAL(wp) ::   z05cx, ztau, zin 
    238233      !!------------------------------------------------------------------------------ 
    239234 
     
    268263      !! * Local declaration 
    269264      INTEGER ::   ji, jj, jk ! dummy loop indices 
    270       REAL(wp) ::   z05cx, ztau, zin 
    271265      !!------------------------------------------------------------------------------ 
    272266 
     
    298292      !! * Local declaration 
    299293      INTEGER ::   ji, jj, jk ! dummy loop indices 
    300       REAL(wp) ::   z05cx, ztau, zin 
    301294      !!------------------------------------------------------------------------------ 
    302295 
     
    330323      !! * Local declaration 
    331324      INTEGER ::   ji, jj, jk ! dummy loop indices 
    332       REAL(wp) ::   z05cx, ztau, zin 
    333325 
    334326      !!------------------------------------------------------------------------------ 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcfla.F90

    r1152 r2201  
    7878      !!------------------------------------------------------------------------------ 
    7979      !! * Local declaration 
    80       INTEGER ::   ji, jj, jk ! dummy loop indices 
     80      INTEGER ::   ji, jj ! dummy loop indices 
    8181      !!------------------------------------------------------------------------------ 
    8282 
    8383      DO ji = nie0, nie1 
    84          DO jk = 1, jpkm1 
    85             DO jj = 1, jpj 
    86                ua_e(ji,jj) = (  ubtfoe(jj) + sqrt( grav*hu(ji,jj) )           & 
    87                   &            * ( ( sshn_e(ji,jj) + sshn_e(ji+1,jj) ) * 0.5  & 
    88                   &            - sshfoe(jj) )  ) * uemsk(jj,jk) 
    89             END DO 
     84         DO jj = 1, jpj 
     85            ua_e(ji,jj) = (  ubtfoe(jj) * hur(ji,jj) + sqrt( grav*hur(ji,jj) )   & 
     86               &            * ( ( sshn_e(ji,jj) + sshn_e(ji+1,jj) ) * 0.5        & 
     87               &            - sshfoe(jj) )  ) * uemsk(jj,1) 
    9088         END DO 
    9189      END DO 
     
    9795            ssha_e(ji,jj) = ssha_e(ji,jj) * ( 1. - temsk(jj,1) ) & 
    9896               &            + temsk(jj,1) * sshfoe(jj) 
    99             va_e(ji,jj) = vbtfoe(jj) * uemsk(jj,jk) 
     97            va_e(ji,jj) = vbtfoe(jj) * hvr(ji,jj) * uemsk(jj,1) 
    10098         END DO 
    10199      END DO 
     
    116114      !!------------------------------------------------------------------------------ 
    117115      !! * Local declaration 
    118       INTEGER ::   ji, jj, jk ! dummy loop indices 
     116      INTEGER ::   ji, jj ! dummy loop indices 
    119117      !!------------------------------------------------------------------------------ 
    120118 
    121119      DO ji = niw0, niw1 
    122          DO jk = 1, jpkm1 
    123             DO jj = 1, jpj 
    124                ua_e(ji,jj) = ( ubtfow(jj) - sqrt( grav * hu(ji,jj) )          & 
    125                   &            * ( ( sshn_e(ji,jj) + sshn_e(ji+1,jj) ) * 0.5  & 
    126                   &                - sshfow(jj) ) ) * uwmsk(jj,jk) 
    127                va_e(ji,jj) = vbtfow(jj) * uwmsk(jj,jk) 
    128             END DO 
     120         DO jj = 1, jpj 
     121            ua_e(ji,jj) = ( ubtfow(jj) * hur(ji,jj) - sqrt( grav * hur(ji,jj) )   & 
     122               &            * ( ( sshn_e(ji,jj) + sshn_e(ji+1,jj) ) * 0.5         & 
     123               &                - sshfow(jj) ) ) * uwmsk(jj,1) 
     124            va_e(ji,jj) = vbtfow(jj) * hvr(ji,jj) * uwmsk(jj,1) 
    129125         END DO 
    130126         DO jj = 1, jpj 
     
    151147      !!------------------------------------------------------------------------------ 
    152148      !! * Local declaration 
    153       INTEGER ::   ji, jj, jk ! dummy loop indices 
     149      INTEGER ::   ji, jj ! dummy loop indices 
    154150      !!------------------------------------------------------------------------------ 
    155151 
    156152      DO jj = njn0, njn1 
    157          DO jk = 1, jpkm1 
    158             DO ji = 1, jpi 
    159                va_e(ji,jj) = ( vbtfon(ji) + sqrt( grav * hv(ji,jj) )           & 
    160                   &            * ( ( sshn_e(ji,jj) + sshn_e(ji,jj+1) ) * 0.5   & 
    161                   &                - sshfon(ji) ) ) * vnmsk(ji,jk) 
    162             END DO 
     153         DO ji = 1, jpi 
     154            va_e(ji,jj) = ( vbtfon(ji) * hvr(ji,jj) + sqrt( grav * hvr(ji,jj) )   & 
     155               &            * ( ( sshn_e(ji,jj) + sshn_e(ji,jj+1) ) * 0.5         & 
     156               &                - sshfon(ji) ) ) * vnmsk(ji,1) 
    163157         END DO 
    164158      END DO 
     
    170164            ssha_e(ji,jj) = ssha_e(ji,jj) * ( 1. - tnmsk(ji,1) ) & 
    171165               &            + sshfon(ji) * tnmsk(ji,1) 
    172             ua_e(ji,jj) = ubtfon(ji) * vnmsk(ji,jk) 
     166            ua_e(ji,jj) = ubtfon(ji) * hur(ji,jj) * vnmsk(ji,1) 
    173167         END DO 
    174168      END DO 
     
    188182      !!------------------------------------------------------------------------------ 
    189183      !! * Local declaration 
    190       INTEGER ::   ji, jj, jk ! dummy loop indices 
     184      INTEGER ::   ji, jj ! dummy loop indices 
    191185 
    192186      !!------------------------------------------------------------------------------ 
    193187 
    194188      DO jj = njs0, njs1 
    195          DO jk = 1, jpkm1 
    196             DO ji = 1, jpi 
    197                va_e(ji,jj) = ( vbtfos(ji) - sqrt( grav * hv(ji,jj) )            & 
    198                   &            * ( ( sshn_e(ji,jj) + sshn_e(ji,jj+1) ) * 0.5    & 
    199                   &                - sshfos(ji) ) ) * vsmsk(ji,jk) 
    200                ua_e(ji,jj) = ubtfos(ji) * vsmsk(ji,jk) 
    201             END DO 
     189         DO ji = 1, jpi 
     190            va_e(ji,jj) = ( vbtfos(ji) * hvr(ji,jj) - sqrt( grav * hvr(ji,jj) )   & 
     191               &            * ( ( sshn_e(ji,jj) + sshn_e(ji,jj+1) ) * 0.5         & 
     192               &                - sshfos(ji) ) ) * vsmsk(ji,1) 
     193            ua_e(ji,jj) = ubtfos(ji) * hur(ji,jj) * vsmsk(ji,1) 
    202194         END DO 
    203195         DO ji = 1, jpi 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcini.F90

    r1818 r2201  
    6262      NAMELIST/namobc/ rn_dpein, rn_dpwin, rn_dpnin, rn_dpsin,       & 
    6363         &             rn_dpeob, rn_dpwob, rn_dpnob, rn_dpsob,       & 
    64          &             rn_volemp, nn_obcdta, cn_obcdta, rn_volemp,   & 
     64         &             rn_volemp, nn_obcdta, cn_obcdta,    & 
    6565         &             ln_obc_clim, ln_vol_cst, ln_obc_fla 
    6666      !!---------------------------------------------------------------------- 
     
    149149      ENDIF 
    150150 
    151       IF( nbobc /= 0 .AND. jperio /= 0 )   & 
     151      IF( nbobc >= 2 .AND. jperio /= 0 )   & 
    152152         &   CALL ctl_stop( ' Cyclic or symmetric, and open boundary condition are not compatible' ) 
    153153 
     
    375375      END IF 
    376376 
    377       IF ( ln_vol_cst .OR. lk_dynspg_flt ) THEN 
    378         ! ... Initialize obcumask and obcvmask for the Force filtering  
    379         !     boundary condition in dynspg_flt 
    380         obcumask(:,:) = umask(:,:,1) 
    381         obcvmask(:,:) = vmask(:,:,1) 
    382  
    383         ! ... Initialize obctmsk on overlap region and obcs. This mask 
    384         !     is used in obcvol.F90 to calculate cumulate flux E-P.  
    385         !     obc Tracer point are outside the domain ( U/V obc points) ==> masked by obctmsk 
    386         !     - no flux E-P on obcs and overlap region (jpreci = jprecj = 1) 
    387         obctmsk(:,:) = tmask_i(:,:)      
    388  
    389         IF( lp_obc_east ) THEN 
    390            ! ... East obc Force filtering mask for the grad D 
    391            obcumask(nie0  :nie1  ,nje0p1:nje1m1) = 0.e0 
    392            obcvmask(nie0p1:nie1p1,nje0p1:nje1m1) = 0.e0 
    393            ! ... set to 0 on East OBC 
    394            obctmsk(nie0p1:nie1p1,nje0:nje1) = 0.e0 
    395         END IF 
    396    
    397         IF( lp_obc_west ) THEN 
    398            ! ... West obc Force filtering mask for the grad D 
    399            obcumask(niw0:niw1,njw0:njw1) = 0.e0 
    400            obcvmask(niw0:niw1,njw0:njw1) = 0.e0 
    401            ! ... set to 0 on West OBC 
    402            obctmsk(niw0:niw1,njw0:njw1) = 0.e0 
    403         END IF 
    404    
    405         IF( lp_obc_north ) THEN 
    406            ! ... North obc Force filtering mask for the grad D 
    407            obcumask(nin0p1:nin1m1,njn0p1:njn1p1) = 0.e0 
    408            obcvmask(nin0p1:nin1m1,njn0  :njn1  ) = 0.e0 
    409            ! ... set to 0 on North OBC 
    410            obctmsk(nin0:nin1,njn0p1:njn1p1) = 0.e0 
    411         END IF 
    412    
    413         IF( lp_obc_south ) THEN 
    414            ! ... South obc Force filtering mask for the grad D 
    415            obcumask(nis0p1:nis1m1,njs0:njs1) = 0.e0 
    416            obcvmask(nis0p1:nis1m1,njs0:njs1) = 0.e0 
    417            ! ... set to 0 on South OBC 
    418            obctmsk(nis0:nis1,njs0:njs1) = 0.e0 
    419         END IF 
    420       ENDIF 
    421  
    422       IF ( ln_vol_cst .OR. lk_dynspg_flt  ) THEN 
    423  
    424          ! 3.1 Total lateral surface  
    425          ! ------------------------- 
    426          obcsurftot = 0.e0 
    427    
    428          IF( lp_obc_east ) THEN ! ... East open boundary lateral surface 
    429             DO ji = nie0, nie1 
    430                DO jj = 1, jpj  
    431                   obcsurftot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uemsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 
    432                END DO 
     377      ! ... Initialize obcumask and obcvmask for the Force filtering  
     378      !     boundary condition in dynspg_flt 
     379      obcumask(:,:) = umask(:,:,1) 
     380      obcvmask(:,:) = vmask(:,:,1) 
     381 
     382      ! ... Initialize obctmsk on overlap region and obcs. This mask 
     383      !     is used in obcvol.F90 to calculate cumulate flux E-P.  
     384      !     obc Tracer point are outside the domain ( U/V obc points) ==> masked by obctmsk 
     385      !     - no flux E-P on obcs and overlap region (jpreci = jprecj = 1) 
     386      obctmsk(:,:) = tmask_i(:,:)      
     387 
     388      IF( lp_obc_east ) THEN 
     389         ! ... East obc Force filtering mask for the grad D 
     390         obcumask(nie0  :nie1  ,nje0p1:nje1m1) = 0.e0 
     391         obcvmask(nie0p1:nie1p1,nje0p1:nje1m1) = 0.e0 
     392         ! ... set to 0 on East OBC 
     393         obctmsk(nie0p1:nie1p1,nje0:nje1) = 0.e0 
     394      END IF 
     395 
     396      IF( lp_obc_west ) THEN 
     397         ! ... West obc Force filtering mask for the grad D 
     398         obcumask(niw0:niw1,njw0:njw1) = 0.e0 
     399         obcvmask(niw0:niw1,njw0:njw1) = 0.e0 
     400         ! ... set to 0 on West OBC 
     401         obctmsk(niw0:niw1,njw0:njw1) = 0.e0 
     402      END IF 
     403 
     404      IF( lp_obc_north ) THEN 
     405         ! ... North obc Force filtering mask for the grad D 
     406         obcumask(nin0p1:nin1m1,njn0p1:njn1p1) = 0.e0 
     407         obcvmask(nin0p1:nin1m1,njn0  :njn1  ) = 0.e0 
     408         ! ... set to 0 on North OBC 
     409         obctmsk(nin0:nin1,njn0p1:njn1p1) = 0.e0 
     410      END IF 
     411 
     412      IF( lp_obc_south ) THEN 
     413         ! ... South obc Force filtering mask for the grad D 
     414         obcumask(nis0p1:nis1m1,njs0:njs1) = 0.e0 
     415         obcvmask(nis0p1:nis1m1,njs0:njs1) = 0.e0 
     416         ! ... set to 0 on South OBC 
     417         obctmsk(nis0:nis1,njs0:njs1) = 0.e0 
     418      END IF 
     419 
     420      ! 3.1 Total lateral surface  
     421      ! ------------------------- 
     422      obcsurftot = 0.e0 
     423 
     424      IF( lp_obc_east ) THEN ! ... East open boundary lateral surface 
     425         DO ji = nie0, nie1 
     426            DO jj = 1, jpj  
     427               obcsurftot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uemsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 
    433428            END DO 
    434          END IF 
    435    
    436          IF( lp_obc_west ) THEN ! ... West open boundary lateral surface 
    437             DO ji = niw0, niw1 
    438                DO jj = 1, jpj  
    439                   obcsurftot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uwmsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 
    440                END DO 
     429         END DO 
     430      END IF 
     431 
     432      IF( lp_obc_west ) THEN ! ... West open boundary lateral surface 
     433         DO ji = niw0, niw1 
     434            DO jj = 1, jpj  
     435               obcsurftot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uwmsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 
    441436            END DO 
    442          END IF 
    443  
    444          IF( lp_obc_north ) THEN ! ... North open boundary lateral surface 
    445             DO jj = njn0, njn1 
    446                DO ji = 1, jpi 
    447                   obcsurftot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vnmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 
    448                END DO 
     437         END DO 
     438      END IF 
     439      IF( lp_obc_north ) THEN ! ... North open boundary lateral surface 
     440         DO jj = njn0, njn1 
     441            DO ji = 1, jpi 
     442               obcsurftot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vnmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 
    449443            END DO 
    450          END IF 
    451    
    452          IF( lp_obc_south ) THEN ! ... South open boundary lateral surface 
    453             DO jj = njs0, njs1 
    454                DO ji = 1, jpi 
    455                   obcsurftot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vsmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 
    456                END DO 
     444         END DO 
     445      END IF 
     446 
     447      IF( lp_obc_south ) THEN ! ... South open boundary lateral surface 
     448         DO jj = njs0, njs1 
     449            DO ji = 1, jpi 
     450               obcsurftot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vsmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 
    457451            END DO 
    458          END IF 
    459    
    460          IF( lk_mpp )   CALL mpp_sum( obcsurftot )   ! sum over the global domain 
    461       ENDIF 
     452         END DO 
     453      END IF 
     454 
     455      IF( lk_mpp )   CALL mpp_sum( obcsurftot )   ! sum over the global domain 
    462456 
    463457      ! 5. Control print on mask  
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcrad.F90

    r1528 r2201  
    115115      ! ------------------- 
    116116 
    117       IF( kt > nit000 ) THEN  
     117      IF( kt > nit000 .OR. ln_rstart ) THEN  
    118118 
    119119         ! ... advance in time (time filter, array swap)  
     
    379379      ! ------------------- 
    380380 
    381       IF( kt > nit000 ) THEN 
     381      IF( kt > nit000 .OR. ln_rstart ) THEN 
    382382 
    383383         ! ... advance in time (time filter, array swap)  
     
    648648      ! ------------------- 
    649649 
    650       IF( kt > nit000 ) THEN  
     650      IF( kt > nit000 .OR. ln_rstart ) THEN  
    651651 
    652652         ! ... advance in time (time filter, array swap) 
     
    922922      ! -------------------- 
    923923   
    924       IF( kt > nit000) THEN  
     924      IF( kt > nit000 .OR. ln_rstart ) THEN  
    925925 
    926926         ! ... advance in time (time filter, array swap) 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcrst.F90

    r1818 r2201  
    278278      !! * Local declarations 
    279279      INTEGER ::   inum = 11            ! temporary logical unit 
    280       INTEGER ::   ji,jj,jk,ios 
     280      INTEGER ::   ji,jj,jk 
    281281      INTEGER ::   ino0,it0,nbobc0,jpieob0,jpiwob0,jpjnob0,jpjsob0 
    282282      INTEGER ::   ino1,it1,nbobc1,jpieob1,jpiwob1,jpjnob1,jpjsob1 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obctra.F90

    r1152 r2201  
    490490                  zin = sign( 1., -1.* z05cx ) 
    491491                  zin = 0.5*( zin + abs(zin) ) 
    492                   ztau = (1.-zin ) + zin * rtaus 
     492                  ztau = (1.-zin ) * rtausin + zin * rtaus 
    493493                  z05cx = z05cx * zin 
     494 
    494495         !... update (ta,sa) with radiative or climatological (t, s) 
    495496                  ta(ji,jj,jk) = ta(ji,jj,jk) * (1.-tsmsk(ji,jk)) +             & 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/cpl_oasis3.F90

    r1698 r2201  
    2727   USE mod_prism_proto              ! OASIS3 prism module 
    2828   USE mod_prism_def_partition_proto! OASIS3 prism module for partitioning 
    29    USE mod_prism_grids_writing      ! OASIS3 prism module for writing grid files 
    3029   USE mod_prism_put_proto          ! OASIS3 prism module for snding 
    3130   USE mod_prism_get_proto          ! OASIS3 prism module for receiving 
    32    USE mod_prism_grids_writing      ! OASIS3 prism module for writing grids 
    3331   USE par_oce                      ! ocean parameters 
    3432   USE dom_oce                      ! ocean space and time domain 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/fldread.F90

    r1826 r2201  
    815815            WRITE(aname,'(a3,i2.2)') 'src',jn 
    816816            data_tmp(:,:) = 0 
    817             CALL iom_get ( inum, jpdom_unknown, aname, data_tmp(1:nlci,1:nlcj), & 
    818                            kstart=(/nimpp,njmpp/), kcount=(/nlci,nlcj/) ) 
     817            CALL iom_get ( inum, jpdom_data, aname, data_tmp(:,:) ) 
    819818            data_src(:,:) = INT(data_tmp(:,:)) 
    820819            ref_wgts(nxt_wgt)%data_jpj(:,:,jn) = 1 + (data_src(:,:)-1) / ref_wgts(nxt_wgt)%ddims(1) 
     
    825824            aname = ' ' 
    826825            WRITE(aname,'(a3,i2.2)') 'wgt',jn 
    827             ref_wgts(nxt_wgt)%data_wgt(1:nlci,1:nlcj,jn) = 0.0 
    828             CALL iom_get ( inum, jpdom_unknown, aname, ref_wgts(nxt_wgt)%data_wgt(1:nlci,1:nlcj,jn), & 
    829                            kstart=(/nimpp,njmpp/), kcount=(/nlci,nlcj/) ) 
     826            ref_wgts(nxt_wgt)%data_wgt(:,:,jn) = 0.0 
     827            CALL iom_get ( inum, jpdom_data, aname, ref_wgts(nxt_wgt)%data_wgt(:,:,jn) ) 
    830828         END DO 
    831829         CALL iom_close (inum) 
    832830  
    833831         ! find min and max indices in grid 
    834          ref_wgts(nxt_wgt)%botleft(1) = MINVAL(ref_wgts(nxt_wgt)%data_jpi(1:nlci,1:nlcj,:)) 
    835          ref_wgts(nxt_wgt)%botleft(2) = MINVAL(ref_wgts(nxt_wgt)%data_jpj(1:nlci,1:nlcj,:)) 
    836          ref_wgts(nxt_wgt)%topright(1) = MAXVAL(ref_wgts(nxt_wgt)%data_jpi(1:nlci,1:nlcj,:)) 
    837          ref_wgts(nxt_wgt)%topright(2) = MAXVAL(ref_wgts(nxt_wgt)%data_jpj(1:nlci,1:nlcj,:)) 
     832         ref_wgts(nxt_wgt)%botleft(1) = MINVAL(ref_wgts(nxt_wgt)%data_jpi(:,:,:)) 
     833         ref_wgts(nxt_wgt)%botleft(2) = MINVAL(ref_wgts(nxt_wgt)%data_jpj(:,:,:)) 
     834         ref_wgts(nxt_wgt)%topright(1) = MAXVAL(ref_wgts(nxt_wgt)%data_jpi(:,:,:)) 
     835         ref_wgts(nxt_wgt)%topright(2) = MAXVAL(ref_wgts(nxt_wgt)%data_jpj(:,:,:)) 
    838836 
    839837         ! and therefore dimensions of the input box 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/sbcana.F90

    r1732 r2201  
    8888         ! 
    8989         nn_tau000 = MAX( nn_tau000, 1 )   ! must be >= 1 
    90          qns   (:,:) = rn_qns0 
    91          qsr   (:,:) = rn_qsr0 
    92          emp   (:,:) = rn_emp0 
    93          emps  (:,:) = rn_emp0 
    9490         ! 
    9591      ENDIF 
     92 
     93      qns   (:,:) = rn_qns0 
     94      qsr   (:,:) = rn_qsr0 
     95      emp   (:,:) = rn_emp0 
     96      emps  (:,:) = rn_emp0 
    9697    
    9798      ! Increase the surface stress to its nominal value during the first nn_tau000 time-steps 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/sbccpl.F90

    r1860 r2201  
    4040   USE restart         ! 
    4141   USE oce   , ONLY : tn, un, vn 
    42    USE phycst, ONLY : rt0, rcp 
    4342   USE albedo          ! 
    4443   USE in_out_manager  ! I/O manager 
     
    153152   INTEGER , DIMENSION(        jprcv) ::   nrcvinfo           ! OASIS info argument 
    154153 
     154#if ! defined key_lim2 && ! defined key_lim3 
     155   ! quick patch to be able to run the coupled model without sea-ice... 
     156   INTEGER, PARAMETER               ::   jpl = 1  
     157   REAL(wp), DIMENSION(jpi,jpj    ) ::   hicif, hsnif, u_ice, v_ice,fr1_i0,fr2_i0 
     158   REAL(wp), DIMENSION(jpi,jpj,jpl) ::   tn_ice, alb_ice 
     159   REAL(wp)                         ::  lfus 
     160#endif 
     161 
    155162   !! Substitution 
    156163#  include "vectopt_loop_substitute.h90" 
     
    254261 
    255262      ! default definitions of srcv 
    256       srcv(:)%laction = .FALSE.   ;   srcv(:)%clgrid = 'T'   ;   srcv(:)%nsgn = 1 
     263      srcv(:)%laction = .FALSE.   ;   srcv(:)%clgrid = 'T'   ;   srcv(:)%nsgn = 1. 
    257264 
    258265      !                                                      ! ------------------------- ! 
     
    439446       
    440447      ! default definitions of nsnd 
    441       ssnd(:)%laction = .FALSE.   ;   ssnd(:)%clgrid = 'T'   ;   ssnd(:)%nsgn = 1 
     448      ssnd(:)%laction = .FALSE.   ;   ssnd(:)%clgrid = 'T'   ;   ssnd(:)%nsgn = 1. 
    442449          
    443450      !                                                      ! ------------------------- ! 
     
    492499      ssnd(jps_ocz1)%clname = 'O_OCurz1'   ;   ssnd(jps_ivz1)%clname = 'O_IVelz1' 
    493500      ! 
    494       ssnd(jps_ocx1:jps_ivz1)%nsgn = -1    ! vectors: change of the sign at the north fold 
     501      ssnd(jps_ocx1:jps_ivz1)%nsgn = -1.   ! vectors: change of the sign at the north fold 
    495502 
    496503      IF( cn_snd_crt(4) /= 'T' )   CALL ctl_stop( 'cn_snd_crt(4) must be equal to T' ) 
     
    714721         !                                                       ! non solar heat flux over the ocean (qns) 
    715722         IF( srcv(jpr_qnsoce)%laction )   qns(:,:) = frcv(:,:,jpr_qnsoce) 
    716          IF( srcv(jpr_qnsmix)%laction )   qns(:,:) = frcv(:,:,jpr_qnsmix)         
    717          qns(:,:) = qns(:,:) - frcv(:,:,jpr_snow) * lfus              ! add the latent heat of solid precip. melting  
     723         IF( srcv(jpr_qnsmix)%laction )   qns(:,:) = frcv(:,:,jpr_qnsmix)   
     724         ! add the latent heat of solid precip. melting 
     725         IF( srcv(jpr_snow  )%laction )   qns(:,:) = qns(:,:) - frcv(:,:,jpr_snow) * lfus               
    718726 
    719727         !                                                       ! solar flux over the ocean          (qsr) 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/sbcice_lim_2.F90

    r1715 r2201  
    180180         ENDIF 
    181181#if defined key_coupled 
    182          IF( ksbc == 5    )             CALL sbc_cpl_ice_flx( frld   ,                               & 
     182         IF( ksbc == 5    )             CALL sbc_cpl_ice_flx( reshape( frld, (/jpi,jpj,1/) ),        & 
    183183      &                                                       qns_tot, qns_ice, qsr_tot , qsr_ice,   & 
    184184      &                                                       emp_tot, emp_ice, dqns_ice, sprecip,   & 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SOL/solmat.F90

    r1876 r2201  
    8080      ENDIF 
    8181 
    82 #if defined key_dynspg_flt && ! defined key_obc 
     82#if defined key_dynspg_flt  
     83#   if ! defined key_obc 
    8384 
    8485      DO jj = 2, jpjm1                      ! matrix of free surface elliptic system 
     
    9798         END DO 
    9899      END DO 
    99        
    100 #  elif defined key_dynspg_flt && defined key_obc 
    101       IF( Agrif_Root() ) THEN 
    102          DO jj = 2, jpjm1                      ! matrix of free surface elliptic system with open boundaries 
    103             DO ji = 2, jpim1 
    104                zcoef = z2dt * z2dt * grav * bmask(ji,jj) 
    105                !                                    ! south coefficient 
    106                IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 
    107                   zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 
    108                ELSE 
    109                   zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 
    110                END IF 
    111                gcp(ji,jj,1) = zcoefs 
    112                ! 
    113                !                                    ! west coefficient 
    114                IF( lp_obc_west  .AND. ( ji == niw0p1 ) ) THEN 
    115                   zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 
    116                ELSE 
    117                   zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 
    118                END IF 
    119                gcp(ji,jj,2) = zcoefw 
    120                ! 
    121                !                                    ! east coefficient 
    122                IF( lp_obc_east  .AND. ( ji == nie0 ) ) THEN 
    123                   zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 
    124                ELSE 
    125                   zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 
    126                END IF 
    127                gcp(ji,jj,3) = zcoefe 
    128                ! 
    129                !                                    ! north coefficient 
    130                IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 
    131                   zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 
    132                ELSE 
     100#   else 
     101    IF ( Agrif_Root() ) THEN 
     102      DO jj = 2, jpjm1                      ! matrix of free surface elliptic system with open boundaries 
     103         DO ji = 2, jpim1 
     104            zcoef = z2dt * z2dt * grav * bmask(ji,jj) 
     105            !                                    ! south coefficient 
     106            IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 
     107               zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 
     108            ELSE 
     109               zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 
     110            END IF 
     111            gcp(ji,jj,1) = zcoefs 
     112            ! 
     113            !                                    ! west coefficient 
     114            IF( lp_obc_west  .AND. ( ji == niw0p1 ) ) THEN 
     115               zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 
     116            ELSE 
     117               zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 
     118            END IF 
     119            gcp(ji,jj,2) = zcoefw 
     120            ! 
     121            !                                    ! east coefficient 
     122            IF( lp_obc_east  .AND. ( ji == nie0 ) ) THEN 
     123               zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 
     124            ELSE 
     125               zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 
     126            END IF 
     127            gcp(ji,jj,3) = zcoefe 
     128            ! 
     129            !                                    ! north coefficient 
     130            IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 
     131               zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 
     132            ELSE 
    133133               zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj) 
    134                END IF 
    135                gcp(ji,jj,4) = zcoefn 
    136                ! 
    137                !                                    ! diagonal coefficient 
    138                gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj)   & 
    139                   &            - zcoefs -zcoefw -zcoefe -zcoefn 
    140             END DO 
    141          END DO 
    142       ENDIF 
     134            END IF 
     135            gcp(ji,jj,4) = zcoefn 
     136            ! 
     137            !                                    ! diagonal coefficient 
     138            gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj)   & 
     139               &            - zcoefs -zcoefw -zcoefe -zcoefn 
     140         END DO 
     141      END DO 
     142    ELSE 
     143      DO jj = 2, jpjm1                      ! matrix of free surface elliptic system 
     144         DO ji = 2, jpim1 
     145            zcoef = z2dt * z2dt * grav * bmask(ji,jj) 
     146            zcoefs = -zcoef * hv(ji  ,jj-1) * e1v(ji  ,jj-1) / e2v(ji  ,jj-1)    ! south coefficient 
     147            zcoefw = -zcoef * hu(ji-1,jj  ) * e2u(ji-1,jj  ) / e1u(ji-1,jj  )    ! west coefficient 
     148            zcoefe = -zcoef * hu(ji  ,jj  ) * e2u(ji  ,jj  ) / e1u(ji  ,jj  )    ! east coefficient 
     149            zcoefn = -zcoef * hv(ji  ,jj  ) * e1v(ji  ,jj  ) / e2v(ji  ,jj  )    ! north coefficient 
     150            gcp(ji,jj,1) = zcoefs 
     151            gcp(ji,jj,2) = zcoefw 
     152            gcp(ji,jj,3) = zcoefe 
     153            gcp(ji,jj,4) = zcoefn 
     154            gcdmat(ji,jj) = e1t(ji,jj) * e2t(ji,jj) * bmask(ji,jj)    &          ! diagonal coefficient 
     155               &          - zcoefs -zcoefw -zcoefe -zcoefn 
     156         END DO 
     157      END DO 
     158    ENDIF 
     159#   endif 
    143160#endif 
    144161 
    145 #if defined key_agrif 
    146       IF( .NOT.AGRIF_ROOT() ) THEN 
     162      IF( .NOT. Agrif_Root() ) THEN 
    147163         ! 
    148164         IF( nbondi == -1 .OR. nbondi == 2 )   bmask(2     ,:     ) = 0.e0 
     
    193209         !  
    194210      ENDIF 
    195 #endif 
    196211 
    197212      ! 2. Boundary conditions  
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/TRA/traqsr.F90

    r1756 r2201  
    4545    
    4646   ! Module variables 
     47!$AGRIF_DO_NOT_TREAT 
    4748   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_chl   ! structure of input Chl (file informations, fields read) 
    4849   INTEGER ::   nksr   ! levels below which the light cannot penetrate ( depth larger than 391 m) 
    4950   REAL(wp), DIMENSION(3,61) ::   rkrgb   !: tabulated attenuation coefficients for RGB absorption 
     51!$AGRIF_END_DO_NOT_TREAT 
    5052 
    5153   !! * Substitutions 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/opa.F90

    r1793 r2201  
    192192      !                             !--------------------------------------------! 
    193193#if defined key_iomput 
     194      IF( Agrif_Root() ) THEN 
    194195# if defined key_oasis3 || defined key_oasis4 
    195       IF( Agrif_Root() ) THEN 
    196196         CALL cpl_prism_init( ilocal_comm )      ! nemo local communicator given by oasis 
    197          CALL init_ioclient()                    ! io_server will get its communicators (if needed) from oasis (we don't see it) 
    198       ENDIF 
    199 # else 
    200       IF( Agrif_Root() ) THEN 
    201          CALL init_ioclient( ilocal_comm )       ! nemo local communicator (used or not) given by the io_server 
    202       ENDIF 
    203197# endif 
     198         CALL  init_ioclient( ilocal_comm )      ! exchange io_server nemo local communicator with the io_server 
     199      ENDIF 
    204200      narea = mynode( cltxt, ilocal_comm )    ! Nodes selection 
    205  
    206201#else 
    207202# if defined key_oasis3 || defined key_oasis4 
  • branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/step.F90

    r2177 r2201  
    178178      CALL iom_setkt( kstp )                          ! say to iom that we are at time step kstp 
    179179       
    180       CALL rst_opn( kstp )                            ! Open the restart file 
    181  
    182180      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    183181      ! Update data, open boundaries, surface boundary condition (including sea-ice) 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/C14b/par_c14b.F90

    r1252 r2201  
    2727 
    2828   IMPLICIT NONE 
    29    PUBLIC 
    3029 
    31    INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster     + jp_pisces     + jp_cfc     !: cum. number of pass. tracers 
    32    INTEGER, PUBLIC, PARAMETER ::   jp_lp_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  !: 
    33    INTEGER, PUBLIC, PARAMETER ::   jp_lp_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  !: 
    34    INTEGER, PUBLIC, PARAMETER ::   jp_lp_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !: 
     30   INTEGER, PARAMETER ::   jp_lb      = jp_lobster     + jp_pisces     + jp_cfc     !: cum. number of pass. tracers 
     31   INTEGER, PARAMETER ::   jp_lb_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  !: 
     32   INTEGER, PARAMETER ::   jp_lb_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  !: 
     33   INTEGER, PARAMETER ::   jp_lb_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !: 
    3534    
    3635#if defined key_c14b 
     
    4342   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_3d  =  1          !: additional 3d output arrays ('key_trc_diaadd') 
    4443   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_trd =  0          !: number of sms trends for C14 
    45     
    46    ! assign an index in trc arrays for each CFC prognostic variables 
    47    INTEGER, PUBLIC, PARAMETER ::   jpc14       = jp_lp + 1   !: C14 bomb  
     44   INTEGER, PUBLIC, PARAMETER ::   jpc14       = jp_lb + 1   !: assign an index in trc arrays for C14 bomb  
    4845#else 
    4946   !!--------------------------------------------------------------------- 
     
    5855 
    5956   ! Starting/ending C14 do-loop indices (N.B. no C14 : jp_c14b0 > jp_c14b1 the do-loop are never done) 
    60    INTEGER, PUBLIC, PARAMETER ::   jp_c14b0     = jp_lp + 1                !: First index of C14 tracer 
    61    INTEGER, PUBLIC, PARAMETER ::   jp_c14b1     = jp_lp + jp_c14b          !: Last  index of C14 tracer 
    62    INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_2d  = jp_lp_2d  + 1            !: First index of C14 tracer 
    63    INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_2d  = jp_lp_2d  + jp_c14b_2d   !: Last  index of C14 tracer 
    64    INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_3d  = jp_lp_3d  + 1            !: First index of C14 tracer 
    65    INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_3d  = jp_lp_3d  + jp_c14b_3d   !: Last  index of C14 tracer 
    66    INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_trd = jp_lp_trd + 1            !: First index of C14 tracer 
    67    INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_trd = jp_lp_trd + jp_c14b_trd  !: Last  index of C14 tracer 
     57   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0     = jp_lb + 1                !: First index of C14 tracer 
     58   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1     = jp_lb + jp_c14b          !: Last  index of C14 tracer 
     59   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_2d  = jp_lb_2d  + 1            !: First index of C14 tracer 
     60   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_2d  = jp_lb_2d  + jp_c14b_2d   !: Last  index of C14 tracer 
     61   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_3d  = jp_lb_3d  + 1            !: First index of C14 tracer 
     62   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_3d  = jp_lb_3d  + jp_c14b_3d   !: Last  index of C14 tracer 
     63   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_trd = jp_lb_trd + 1            !: First index of C14 tracer 
     64   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_trd = jp_lb_trd + jp_c14b_trd  !: Last  index of C14 tracer 
    6865 
    6966   !!====================================================================== 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/CFC/par_cfc.F90

    r1253 r2201  
    2121 
    2222   IMPLICIT NONE 
    23    PUBLIC 
    2423 
    25    INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster     + jp_pisces     !: cumulative number of passive tracers 
    26    INTEGER, PUBLIC, PARAMETER ::   jp_lp_2d   = jp_lobster_2d  + jp_pisces_2d  !: 
    27    INTEGER, PUBLIC, PARAMETER ::   jp_lp_3d   = jp_lobster_3d  + jp_pisces_3d  !: 
    28    INTEGER, PUBLIC, PARAMETER ::   jp_lp_trd  = jp_lobster_trd + jp_pisces_trd !: 
     24   INTEGER, PARAMETER ::   jp_lc      = jp_lobster     + jp_pisces     !: cumulative number of passive tracers 
     25   INTEGER, PARAMETER ::   jp_lc_2d   = jp_lobster_2d  + jp_pisces_2d  !: 
     26   INTEGER, PARAMETER ::   jp_lc_3d   = jp_lobster_3d  + jp_pisces_3d  !: 
     27   INTEGER, PARAMETER ::   jp_lc_trd  = jp_lobster_trd + jp_pisces_trd !: 
    2928    
    3029#if defined key_cfc 
     
    3938    
    4039   ! assign an index in trc arrays for each CFC prognostic variables 
    41    INTEGER, PUBLIC, PARAMETER ::   jpc11       = jp_lp + 1   !: CFC-11  
    42    INTEGER, PUBLIC, PARAMETER ::   jpc12       = jp_lp + 2   !: CFC-12    
     40   INTEGER, PUBLIC, PARAMETER ::   jpc11       = jp_lc + 1   !: CFC-11  
     41   INTEGER, PUBLIC, PARAMETER ::   jpc12       = jp_lc + 2   !: CFC-12    
    4342#else 
    4443   !!--------------------------------------------------------------------- 
     
    5352 
    5453   ! Starting/ending CFC do-loop indices (N.B. no CFC : jp_cfc0 > jp_cfc1 the do-loop are never done) 
    55    INTEGER, PUBLIC, PARAMETER ::   jp_cfc0     = jp_lp + 1       !: First index of CFC tracers 
    56    INTEGER, PUBLIC, PARAMETER ::   jp_cfc1     = jp_lp + jp_cfc  !: Last  index of CFC tracers 
    57    INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_2d  = jp_lp_2d  + 1       !: First index of CFC tracers 
    58    INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_2d  = jp_lp_2d  + jp_cfc_2d  !: Last  index of CFC tracers 
    59    INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_3d  = jp_lp_3d  + 1       !: First index of CFC tracers 
    60    INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_3d  = jp_lp_3d  + jp_cfc_3d  !: Last  index of CFC tracers 
    61    INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_trd = jp_lp_trd + 1       !: First index of CFC tracers 
    62    INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_trd = jp_lp_trd + jp_cfc_trd  !: Last  index of CFC tracers 
     54   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0     = jp_lc + 1       !: First index of CFC tracers 
     55   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1     = jp_lc + jp_cfc  !: Last  index of CFC tracers 
     56   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_2d  = jp_lc_2d  + 1       !: First index of CFC tracers 
     57   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_2d  = jp_lc_2d  + jp_cfc_2d  !: Last  index of CFC tracers 
     58   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_3d  = jp_lc_3d  + 1       !: First index of CFC tracers 
     59   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_3d  = jp_lc_3d  + jp_cfc_3d  !: Last  index of CFC tracers 
     60   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_trd = jp_lc_trd + 1       !: First index of CFC tracers 
     61   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_trd = jp_lc_trd + jp_cfc_trd  !: Last  index of CFC tracers 
    6362 
    6463   !!====================================================================== 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/CFC/trcctl_cfc.F90

    r1801 r2201  
    5353      ! Check tracer names 
    5454      ! ------------------ 
    55       IF ( ctrcnm(jpc11) /= 'CFC11' .OR. ctrcnm(jpc12) /= 'CFC12' ) THEN  
    56             ctrcnm(jpc11) = 'CFC11' 
    57             ctrcnl(jpc11) = 'Chlorofuorocarbone 11 concentration' 
    58             ctrcnm(jpc12) = 'CFC12' 
    59             ctrcnl(jpc12) = 'Chlorofuorocarbone 12 concentration'  
     55      ctrcnm(jpc11) = 'CFC11' 
     56      ctrcnl(jpc11) = 'Chlorofuorocarbone 11 concentration' 
     57 
     58      IF ( jp_cfc == 2 ) THEN 
     59          ctrcnm(jpc12) = 'CFC12' 
     60          ctrcnl(jpc12) = 'Chlorofuorocarbone 12 concentration' 
    6061      ENDIF 
    6162 
    6263      IF(lwp) THEN 
    63          WRITE (numout,*) ' ===>>>> : w a r n i n g <<<<===' 
     64         WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     65         WRITE (numout,*) ' =======   ============= ' 
    6466         WRITE (numout,*) ' we force tracer names' 
    6567         DO jl = 1, jp_cfc 
     
    6870         END DO 
    6971         WRITE(numout,*) ' ' 
    70       ENDIF  
     72      ENDIF 
    7173 
    7274 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/CFC/trcini_cfc.F90

    r1581 r2201  
    2222 
    2323   PUBLIC   trc_ini_cfc   ! called by trcini.F90 module 
     24 
     25   CHARACTER (len=34) ::   clname = 'cfc1112.atm'   ! ??? 
    2426 
    2527   INTEGER  ::   inum                   ! unit number 
     
    5557      ! ---------------------------------------  
    5658      xphem (:,:)    = 0.e0 
    57       DO jl = 1, jp_cfc 
    58          jn = jp_cfc0 + jl - 1 
    59          DO jm = 1, jphem 
    60             DO js = 1, jpyear 
    61                p_cfc(js,jm,jn) = 0.0 
    62             END DO 
    63          END DO 
    64       END DO 
    65        
     59      p_cfc(:,:,:)   = 0.e0 
    6660       
    6761      ! Initialization of qint in case of  no restart  
     
    7367            WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero ' 
    7468         ENDIF 
     69         qint_cfc(:,:,:) = 0.e0 
    7570         DO jl = 1, jp_cfc 
    7671            jn = jp_cfc0 + jl - 1 
    7772            trn     (:,:,:,jn) = 0.e0 
    78             qint_cfc(:,:  ,jn) = 0.e0 
    7973         END DO 
    8074      ENDIF 
     
    8882      IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' 
    8983       
    90       CALL ctl_opn( inum, 'cfc1112.atm', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     84      CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    9185      REWIND(inum) 
    9286       
     
    9589      END DO 
    9690    
    97       DO jn = 31, 98      !   Read file 
    98          READ(inum,*) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 
    99          WRITE(numout,'(f7.2, 4f8.2)' ) & 
     91      ! file starts in 1931 do jn represent the year in the century.jhh 
     92      ! Read file till the end 
     93      jn = 31 
     94      DO WHILE ( 1 /= 2 ) 
     95         READ(inum,*,END=100) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 
     96         IF ( lwp) THEN 
     97           WRITE(numout,'(f7.2, 4f8.2)' ) & 
    10098            &         zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 
     99         ENDIF 
     100         jn = jn + 1 
    101101      END DO 
     102 100  npyear = jn - 1 
     103      IF ( lwp) WRITE(numout,*) '    ', npyear ,' years read' 
    102104 
    103105      p_cfc(32,1:2,1) = 5.e-4      ! modify the values of the first years 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/CFC/trcsms_cfc.F90

    r1459 r2201  
    2727   PUBLIC   trc_sms_cfc       ! called in ???     
    2828 
    29    INTEGER , PUBLIC, PARAMETER ::   jpyear = 100   ! temporal parameter  
     29   INTEGER , PUBLIC, PARAMETER ::   jpyear = 150   ! temporal parameter  
    3030   INTEGER , PUBLIC, PARAMETER ::   jphem  =   2   ! parameter for the 2 hemispheres 
    3131   INTEGER , PUBLIC    ::   ndate_beg      ! initial calendar date (aammjj) for CFC 
    3232   INTEGER , PUBLIC    ::   nyear_res      ! restoring time constant (year) 
    3333   INTEGER , PUBLIC    ::   nyear_beg      ! initial year (aa)  
     34   INTEGER , PUBLIC    ::   npyear         ! Number of years read in CFC1112 file 
    3435    
    3536   REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jp_cfc) ::   p_cfc    ! partial hemispheric pressure for CFC           
     
    9697      ! Temporal interpolation 
    9798      ! ---------------------- 
    98       iyear_beg = nyear + ( nyear_res - 1900 - nyear_beg  ) 
     99      iyear_beg = nyear - 1900 
    99100      IF ( nmonth <= 6 ) THEN 
    100          iyear_beg = iyear_beg - 2 + nyear_beg 
     101         iyear_beg = iyear_beg - 1 
    101102         im1       =  6 - nmonth + 1 
    102103         im2       =  6 + nmonth - 1 
    103104      ELSE 
    104          iyear_beg = iyear_beg - 1 + nyear_beg 
    105105         im1       = 12 - nmonth + 7 
    106106         im2       =      nmonth - 7 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/LOBSTER/par_lobster.F90

    r1176 r2201  
    1212 
    1313   IMPLICIT NONE 
    14    PUBLIC 
    1514 
    1615#if defined key_lobster 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90

    r1253 r2201  
    3131 
    3232   IMPLICIT NONE 
    33    PUBLIC 
    3433 
    35    INTEGER, PUBLIC, PARAMETER ::   jp_lpc      = jp_lobster     + jp_pisces     + jp_cfc     + jp_c14b     !:  
    36    INTEGER, PUBLIC, PARAMETER ::   jp_lpc_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  !: 
    37    INTEGER, PUBLIC, PARAMETER ::   jp_lpc_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  !: 
    38    INTEGER, PUBLIC, PARAMETER ::   jp_lpc_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !: 
     34   INTEGER, PARAMETER ::   jp_lm      = jp_lobster     + jp_pisces     + jp_cfc     + jp_c14b     !:  
     35   INTEGER, PARAMETER ::   jp_lm_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  !: 
     36   INTEGER, PARAMETER ::   jp_lm_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  !: 
     37   INTEGER, PARAMETER ::   jp_lm_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !: 
    3938 
    4039#if defined key_my_trc 
     
    4948 
    5049   ! assign an index in trc arrays for each PTS prognostic variables 
    51    INTEGER, PUBLIC, PARAMETER ::   jpmyt1 = jp_lpc + 1     !: 1st MY_TRC tracer 
    52    INTEGER, PUBLIC, PARAMETER ::   jpmyt2 = jp_lpc + 2     !: 2nd MY_TRC tracer 
     50   INTEGER, PUBLIC, PARAMETER ::   jpmyt1 = jp_lm + 1     !: 1st MY_TRC tracer 
     51   INTEGER, PUBLIC, PARAMETER ::   jpmyt2 = jp_lm + 2     !: 2nd MY_TRC tracer 
    5352 
    5453#else 
     
    6463 
    6564   ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 
    66    INTEGER, PUBLIC, PARAMETER ::   jp_myt0     = jp_lpc     + 1              !: First index of MY_TRC passive tracers 
    67    INTEGER, PUBLIC, PARAMETER ::   jp_myt1     = jp_lpc     + jp_my_trc      !: Last  index of MY_TRC passive tracers 
    68    INTEGER, PUBLIC, PARAMETER ::   jp_myt0_2d  = jp_lpc_2d  + 1              !: First index of MY_TRC passive tracers 
    69    INTEGER, PUBLIC, PARAMETER ::   jp_myt1_2d  = jp_lpc_2d  + jp_my_trc_2d   !: Last  index of MY_TRC passive tracers 
    70    INTEGER, PUBLIC, PARAMETER ::   jp_myt0_3d  = jp_lpc_3d  + 1              !: First index of MY_TRC passive tracers 
    71    INTEGER, PUBLIC, PARAMETER ::   jp_myt1_3d  = jp_lpc_3d  + jp_my_trc_3d   !: Last  index of MY_TRC passive tracers 
    72    INTEGER, PUBLIC, PARAMETER ::   jp_myt0_trd = jp_lpc_trd + 1              !: First index of MY_TRC passive tracers 
    73    INTEGER, PUBLIC, PARAMETER ::   jp_myt1_trd = jp_lpc_trd + jp_my_trc_trd  !: Last  index of MY_TRC passive tracers 
     65   INTEGER, PUBLIC, PARAMETER ::   jp_myt0     = jp_lm     + 1              !: First index of MY_TRC passive tracers 
     66   INTEGER, PUBLIC, PARAMETER ::   jp_myt1     = jp_lm     + jp_my_trc      !: Last  index of MY_TRC passive tracers 
     67   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_2d  = jp_lm_2d  + 1              !: First index of MY_TRC passive tracers 
     68   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_2d  = jp_lm_2d  + jp_my_trc_2d   !: Last  index of MY_TRC passive tracers 
     69   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_3d  = jp_lm_3d  + 1              !: First index of MY_TRC passive tracers 
     70   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_3d  = jp_lm_3d  + jp_my_trc_3d   !: Last  index of MY_TRC passive tracers 
     71   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_trd = jp_lm_trd + 1              !: First index of MY_TRC passive tracers 
     72   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_trd = jp_lm_trd + jp_my_trc_trd  !: Last  index of MY_TRC passive tracers 
    7473 
    7574   !!====================================================================== 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/MY_TRC/trcctl_my_trc.F90

    r1264 r2201  
    4040      IF(lwp) WRITE(numout,*) ' use COLOR tracer ' 
    4141 
    42       DO jn = 1, jp_my_trc 
     42      DO jl = 1, jp_my_trc 
    4343         jn = jp_myt0 + jl - 1 
    4444         WRITE(ctrcnm(jn),'(a,i2.2)') 'CLR',jn 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/PISCES/par_pisces.F90

    r1152 r2201  
    1616 
    1717   IMPLICIT NONE 
    18    PUBLIC 
    1918 
    20    INTEGER, PUBLIC, PARAMETER ::   jp_l      = jp_lobster      !: cumulative number of already defined TRC 
    21    INTEGER, PUBLIC, PARAMETER ::   jp_l_2d   = jp_lobster_2d   !: 
    22    INTEGER, PUBLIC, PARAMETER ::   jp_l_3d   = jp_lobster_3d   !: 
    23    INTEGER, PUBLIC, PARAMETER ::   jp_l_trd  = jp_lobster_trd  !: 
     19   INTEGER, PARAMETER ::   jp_lp      = jp_lobster      !: cumulative number of already defined TRC 
     20   INTEGER, PARAMETER ::   jp_lp_2d   = jp_lobster_2d   !: 
     21   INTEGER, PARAMETER ::   jp_lp_3d   = jp_lobster_3d   !: 
     22   INTEGER, PARAMETER ::   jp_lp_trd  = jp_lobster_trd  !: 
    2423 
    2524#if defined key_pisces  &&  defined key_kriest 
     
    3736   !    WARNING: be carefull about the order when reading the restart 
    3837        !   !!gm  this warning should be obsolet with IOM 
    39    INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration  
    40    INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity  
    41    INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_l +  3    !: oxygen carbon concentration  
    42    INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_l +  4    !: calcite  concentration  
    43    INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_l +  5    !: phosphate concentration  
    44    INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_l +  6    !: small particulate organic phosphate concentration 
    45    INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_l +  7    !: silicate concentration 
    46    INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_l +  8    !: phytoplancton concentration  
    47    INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_l +  9    !: zooplancton concentration 
    48    INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_l + 10    !: dissolved organic carbon concentration  
    49    INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_l + 11    !: Diatoms Concentration 
    50    INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_l + 12    !: Mesozooplankton Concentration 
    51    INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_l + 13    !: (big) Silicate Concentration 
    52    INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_l + 14    !: Iron Concentration 
    53    INTEGER, PUBLIC, PARAMETER ::   jpnum = jp_l + 15    !: Big iron particles Concentration 
    54    INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_l + 16    !: number of particulate organic phosphate concentration 
    55    INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_l + 17    !: Diatoms iron Concentration 
    56    INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_l + 18    !: Diatoms Silicate Concentration 
    57    INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_l + 19    !: Nano iron Concentration 
    58    INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_l + 20    !: Nano Chlorophyll Concentration 
    59    INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_l + 21    !: Diatoms Chlorophyll Concentration 
    60    INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_l + 22    !: Nitrates Concentration 
    61    INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_l + 23    !: Ammonium Concentration 
     38   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_lp +  1    !: dissolved inoganic carbon concentration  
     39   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_lp +  2    !: total alkalinity  
     40   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_lp +  3    !: oxygen carbon concentration  
     41   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_lp +  4    !: calcite  concentration  
     42   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_lp +  5    !: phosphate concentration  
     43   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_lp +  6    !: small particulate organic phosphate concentration 
     44   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_lp +  7    !: silicate concentration 
     45   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_lp +  8    !: phytoplancton concentration  
     46   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_lp +  9    !: zooplancton concentration 
     47   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_lp + 10    !: dissolved organic carbon concentration  
     48   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_lp + 11    !: Diatoms Concentration 
     49   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_lp + 12    !: Mesozooplankton Concentration 
     50   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_lp + 13    !: (big) Silicate Concentration 
     51   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_lp + 14    !: Iron Concentration 
     52   INTEGER, PUBLIC, PARAMETER ::   jpnum = jp_lp + 15    !: Big iron particles Concentration 
     53   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_lp + 16    !: number of particulate organic phosphate concentration 
     54   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_lp + 17    !: Diatoms iron Concentration 
     55   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_lp + 18    !: Diatoms Silicate Concentration 
     56   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_lp + 19    !: Nano iron Concentration 
     57   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_lp + 20    !: Nano Chlorophyll Concentration 
     58   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_lp + 21    !: Diatoms Chlorophyll Concentration 
     59   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_lp + 22    !: Nitrates Concentration 
     60   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_lp + 23    !: Ammonium Concentration 
    6261 
    6362#elif defined key_pisces 
     
    7574   !    WARNING: be carefull about the order when reading the restart 
    7675        !   !!gm  this warning should be obsolet with IOM 
    77    INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration  
    78    INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity  
    79    INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_l +  3    !: oxygen carbon concentration  
    80    INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_l +  4    !: calcite  concentration  
    81    INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_l +  5    !: phosphate concentration  
    82    INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_l +  6    !: small particulate organic phosphate concentration 
    83    INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_l +  7    !: silicate concentration 
    84    INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_l +  8    !: phytoplancton concentration  
    85    INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_l +  9    !: zooplancton concentration 
    86    INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_l + 10    !: dissolved organic carbon concentration  
    87    INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_l + 11    !: Diatoms Concentration 
    88    INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_l + 12    !: Mesozooplankton Concentration 
    89    INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_l + 13    !: (big) Silicate Concentration 
    90    INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_l + 14    !: Iron Concentration 
    91    INTEGER, PUBLIC, PARAMETER ::   jpbfe = jp_l + 15    !: Big iron particles Concentration 
    92    INTEGER, PUBLIC, PARAMETER ::   jpgoc = jp_l + 16    !: big particulate organic phosphate concentration 
    93    INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_l + 17    !: Small iron particles Concentration 
    94    INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_l + 18    !: Diatoms iron Concentration 
    95    INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_l + 19    !: Diatoms Silicate Concentration 
    96    INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_l + 20    !: Nano iron Concentration 
    97    INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_l + 21    !: Nano Chlorophyll Concentration 
    98    INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_l + 22    !: Diatoms Chlorophyll Concentration 
    99    INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_l + 23    !: Nitrates Concentration 
    100    INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_l + 24    !: Ammonium Concentration 
     76   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_lp +  1    !: dissolved inoganic carbon concentration  
     77   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_lp +  2    !: total alkalinity  
     78   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_lp +  3    !: oxygen carbon concentration  
     79   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_lp +  4    !: calcite  concentration  
     80   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_lp +  5    !: phosphate concentration  
     81   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_lp +  6    !: small particulate organic phosphate concentration 
     82   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_lp +  7    !: silicate concentration 
     83   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_lp +  8    !: phytoplancton concentration  
     84   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_lp +  9    !: zooplancton concentration 
     85   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_lp + 10    !: dissolved organic carbon concentration  
     86   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_lp + 11    !: Diatoms Concentration 
     87   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_lp + 12    !: Mesozooplankton Concentration 
     88   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_lp + 13    !: (big) Silicate Concentration 
     89   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_lp + 14    !: Iron Concentration 
     90   INTEGER, PUBLIC, PARAMETER ::   jpbfe = jp_lp + 15    !: Big iron particles Concentration 
     91   INTEGER, PUBLIC, PARAMETER ::   jpgoc = jp_lp + 16    !: big particulate organic phosphate concentration 
     92   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_lp + 17    !: Small iron particles Concentration 
     93   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_lp + 18    !: Diatoms iron Concentration 
     94   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_lp + 19    !: Diatoms Silicate Concentration 
     95   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_lp + 20    !: Nano iron Concentration 
     96   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_lp + 21    !: Nano Chlorophyll Concentration 
     97   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_lp + 22    !: Diatoms Chlorophyll Concentration 
     98   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_lp + 23    !: Nitrates Concentration 
     99   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_lp + 24    !: Ammonium Concentration 
    101100 
    102101#else 
     
    113112 
    114113   ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 
    115    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = jp_l + 1                  !: First index of PISCES tracers 
    116    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_l + jp_pisces          !: Last  index of PISCES tracers 
    117    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = jp_l_2d + 1               !: First index of 2D diag 
    118    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_l_2d + jp_pisces_2d    !: Last  index of 2D diag 
    119    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = jp_l_3d + 1               !: First index of 3D diag 
    120    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_l_3d + jp_pisces_3d    !: Last  index of 3d diag 
    121    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = jp_l_trd + 1              !: First index of bio diag 
    122    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_l_trd + jp_pisces_trd  !: Last  index of bio diag 
     114   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = jp_lp + 1                  !: First index of PISCES tracers 
     115   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_lp + jp_pisces          !: Last  index of PISCES tracers 
     116   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = jp_lp_2d + 1               !: First index of 2D diag 
     117   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_lp_2d + jp_pisces_2d    !: Last  index of 2D diag 
     118   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = jp_lp_3d + 1               !: First index of 3D diag 
     119   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_lp_3d + jp_pisces_3d    !: Last  index of 3d diag 
     120   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = jp_lp_trd + 1              !: First index of bio diag 
     121   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_lp_trd + jp_pisces_trd  !: Last  index of bio diag 
    123122 
    124123 
  • branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/par_trc.F90

    r1836 r2201  
    2323 
    2424   IMPLICIT NONE 
    25    PUBLIC 
    2625 
    2726   ! Passive tracers : Total size 
    2827   ! ---------------               ! total number of passive tracers, of 2d and 3d output and trend arrays 
    29    INTEGER, PUBLIC, PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_my_trc 
    30    INTEGER, PUBLIC, PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d + jp_my_trc_2d 
    31    INTEGER, PUBLIC, PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d + jp_my_trc_3d 
     28   INTEGER, PUBLIC,  PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_c14b    + jp_my_trc 
     29   INTEGER, PUBLIC,  PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d + jp_my_trc_2d 
     30   INTEGER, PUBLIC,  PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d + jp_my_trc_3d 
    3231   !                     ! total number of sms diagnostic arrays 
    33    INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd 
     32   INTEGER, PUBLIC,  PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd 
    3433    
    3534   !  1D configuration ("key_c1d") 
     
    4342# if defined key_trc_diatrd 
    4443   ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined) 
    45    INTEGER, PARAMETER ::   jptrc_xad     =  1   !: x- horizontal advection 
    46    INTEGER, PARAMETER ::   jptrc_yad     =  2   !: y- horizontal advection 
    47    INTEGER, PARAMETER ::   jptrc_zad     =  3   !: z- vertical   advection 
    48    INTEGER, PARAMETER ::   jptrc_xdf     =  4   !: lateral       diffusion 
    49    INTEGER, PARAMETER ::   jptrc_ydf     =  5   !: lateral       diffusion 
    50    INTEGER, PARAMETER ::   jptrc_zdf     =  6   !: vertical diffusion (Kz) 
    51    INTEGER, PARAMETER ::   jptrc_sbc     =  7   !: surface boundary condition 
     44   INTEGER, PUBLIC,  PARAMETER ::   jptrc_xad     =  1   !: x- horizontal advection 
     45   INTEGER, PUBLIC,  PARAMETER ::   jptrc_yad     =  2   !: y- horizontal advection 
     46   INTEGER, PUBLIC,  PARAMETER ::   jptrc_zad     =  3   !: z- vertical   advection 
     47   INTEGER, PUBLIC,  PARAMETER ::   jptrc_xdf     =  4   !: lateral       diffusion 
     48   INTEGER, PUBLIC,  PARAMETER ::   jptrc_ydf     =  5   !: lateral       diffusion 
     49   INTEGER, PUBLIC,  PARAMETER ::   jptrc_zdf     =  6   !: vertical diffusion (Kz) 
     50   INTEGER, PUBLIC,  PARAMETER ::   jptrc_sbc     =  7   !: surface boundary condition 
    5251#if ! defined key_trcldf_eiv && ! defined key_trcdmp 
    53    INTEGER, PARAMETER ::   jpdiatrc      =  7  !: trends: 3*(advection + diffusion       ) + sbc 
     52   INTEGER, PUBLIC,  PARAMETER ::   jpdiatrc      =  7  !: trends: 3*(advection + diffusion       ) + sbc 
    5453#endif 
    5554#if defined key_trcldf_eiv && defined key_trcdmp 
    56    INTEGER, PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
    57    INTEGER, PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
    58    INTEGER, PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
    59    INTEGER, PARAMETER ::   jptrc_dmp     = 11   !: damping 
    60    INTEGER, PARAMETER ::   jpdiatrc      = 11   !: trends: 3*(advection + diffusion + eiv ) + sbc + damping 
     55   INTEGER, PUBLIC,  PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
     56   INTEGER, PUBLIC,  PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
     57   INTEGER, PUBLIC,  PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
     58   INTEGER, PUBLIC,  PARAMETER ::   jptrc_dmp     = 11   !: damping 
     59   INTEGER, PUBLIC,  PARAMETER ::   jpdiatrc      = 11   !: trends: 3*(advection + diffusion + eiv ) + sbc + damping 
    6160#endif 
    6261#if defined key_trcldf_eiv && ! defined key_trcdmp 
    63    INTEGER, PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
    64    INTEGER, PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
    65    INTEGER, PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
    66    INTEGER, PARAMETER ::   jpdiatrc      = 10   !: trends: 3*(advection + diffusion + eiv ) + sbc  
     62   INTEGER, PUBLIC,  PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
     63   INTEGER, PUBLIC,  PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
     64   INTEGER, PUBLIC,  PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
     65   INTEGER, PUBLIC,  PARAMETER ::   jpdiatrc      = 10   !: trends: 3*(advection + diffusion + eiv ) + sbc  
    6766#endif 
    6867#if ! defined key_trcldf_eiv && defined key_trcdmp 
    69    INTEGER, PARAMETER ::   jptrc_dmp     =  8   !: damping 
    70    INTEGER, PARAMETER ::   jpdiatrc      =  8   !: trends: 3*(advection + diffusion       ) + sbc + damping 
     68   INTEGER, PUBLIC,  PARAMETER ::   jptrc_dmp     =  8   !: damping 
     69   INTEGER, PUBLIC,  PARAMETER ::   jpdiatrc      =  8   !: trends: 3*(advection + diffusion       ) + sbc + damping 
    7170#endif 
    7271#endif 
  • branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_GYRE.ksh

    r1603 r2201  
    1414MYO_EXP=xxx 
    1515TSYMB=xxx 
     16USE_IOMPUT=xxx 
     17USE_IOSERVER=xxx 
     18NB_PROCS_IOSERVER=xxx 
    1619 
    1720# Variables changed by ins_valid.ksh script 
     
    107110 
    108111mv nam.tmp namelist 
     112 
     113# iom_put xml file 
     114if [ "${USE_IOMPUT}" = "true" ] 
     115then 
     116    get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 
     117    get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 
     118    sed -e "s/^ *using_server *=.*$/  using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 
     119    mv tmp$$ xmlio_server.def 
     120fi 
     121 
    109122 
    110123# Analytical forcing 
     
    219232case ${RUN} in 
    220233   'mon' | 'omp' ) 
    221                liste_files=' *abort* memory* namelist* perfs* solver.stat ocean.output layout* GYRE* restart* mono*' ;; 
     234               liste_files=' *abort* memory* namelist* *xml* perfs* solver.stat ocean.output layout* GYRE* restart* mono*' ;; 
    222235   'mpi' ) 
    223                liste_files=' *abort* namelist* solver.stat perfs* ocean.output* layout* GYRE* restart* mpp*' ;; 
     236               liste_files=' *abort* namelist* *xml* solver.stat perfs* ocean.output* layout* GYRE* restart* mpp*' ;; 
    224237esac 
    225238 
     
    245258############################################################## 
    246259############################################################## 
    247 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ] 
     260if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 
    248261then 
    249262   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} 
  • branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_GYRE_LOBSTER.ksh

    r1603 r2201  
    1414MYO_EXP=xxx 
    1515TSYMB=xxx 
     16USE_IOMPUT=xxx 
     17USE_IOSERVER=xxx 
     18NB_PROCS_IOSERVER=xxx 
     19 
    1620 
    1721# Variables changed by ins_valid.ksh script 
     
    128132sed -e "s%$PAT_ADD%   nwritedia    = ${ITERATIONS}%" namelist_lobster > nam.tmp 
    129133mv nam.tmp namelist_lobster 
     134 
     135# iom_put xml file 
     136if [ "${USE_IOMPUT}" = "true" ] 
     137then 
     138    get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 
     139    get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 
     140    sed -e "s/^ *using_server *=.*$/  using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 
     141    mv tmp$$ xmlio_server.def 
     142fi 
    130143 
    131144# Analytical forcing 
     
    253266case ${RUN} in 
    254267   'mon' | 'omp' ) 
    255                liste_files=' *abort* memory* namelist* perfs* solver.stat ocean.output layout* GYRE* restart* mono*' ;; 
     268               liste_files=' *abort* memory* namelist* *xml* perfs* solver.stat ocean.output layout* GYRE* restart* mono*' ;; 
    256269   'mpi' ) 
    257                liste_files=' *abort* namelist* solver.stat perfs* ocean.output* layout* GYRE* restart* mpp*' ;; 
     270               liste_files=' *abort* namelist* *xml* solver.stat perfs* ocean.output* layout* GYRE* restart* mpp*' ;; 
    258271esac 
    259272 
     
    279292############################################################## 
    280293############################################################## 
    281 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ] 
     294if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3'  -o ${REF_TAG} = 'nemo_v3_2' ] 
    282295then 
    283296   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} 
  • branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ORCA2_LIM.ksh

    r1781 r2201  
    139139 
    140140# Get forcing files 
    141 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.1.tar ORCA2_LIM_nemo_v3.1.tar 
    142 tar xvf ORCA2_LIM_nemo_v3.1.tar 
    143 rm -f ORCA2_LIM_nemo_v3.1.tar 
     141${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.2.tar ORCA2_LIM_nemo_v3.2.tar 
     142tar xvf ORCA2_LIM_nemo_v3.2.tar 
     143rm -f ORCA2_LIM_nemo_v3.2.tar 
    144144 
    145145# Get restarts files if needed 
     
    310310############################################################## 
    311311############################################################## 
    312 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ] 
     312if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 
    313313then 
    314314   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} 
  • branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ORCA2_LIM3.ksh

    r1781 r2201  
    135135 
    136136# Get forcing files 
    137 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.1.tar ORCA2_LIM_nemo_v3.1.tar 
    138 tar xvf ORCA2_LIM_nemo_v3.1.tar 
    139 rm -f ORCA2_LIM_nemo_v3.1.tar 
     137${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.2.tar ORCA2_LIM_nemo_v3.2.tar 
     138tar xvf ORCA2_LIM_nemo_v3.2.tar 
     139rm -f ORCA2_LIM_nemo_v3.2.tar 
    140140 
    141141# Get restarts files if needed 
     
    306306############################################################## 
    307307############################################################## 
    308 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ] 
     308if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 
    309309then 
    310310   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} 
  • branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ORCA2_LIM_PISCES.ksh

    r1620 r2201  
    1414MYO_EXP=xxx 
    1515TSYMB=xxx 
     16USE_IOMPUT=xxx 
     17USE_IOSERVER=xxx 
     18NB_PROCS_IOSERVER=xxx 
     19 
    1620 
    1721# Variables changed by ins_valid.ksh script 
     
    159163mv nam.tmp namelist_pisces 
    160164 
     165# iom_put xml file 
     166if [ "${USE_IOMPUT}" = "true" ] 
     167then 
     168    get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 
     169    get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 
     170    sed -e "s/^ *using_server *=.*$/  using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 
     171    mv tmp$$ xmlio_server.def 
     172fi 
     173 
    161174# Get forcing files 
    162 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.1.tar ORCA2_LIM_nemo_v3.1.tar 
    163 tar xvf ORCA2_LIM_nemo_v3.1.tar 
    164 rm -f ORCA2_LIM_nemo_v3.1.tar 
     175${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.2.tar ORCA2_LIM_nemo_v3.2.tar 
     176tar xvf ORCA2_LIM_nemo_v3.2.tar 
     177rm -f ORCA2_LIM_nemo_v3.2.tar 
    165178 
    166179# Get forcing pisces files 
     
    292305case ${RUN} in 
    293306   'mon' | 'omp' ) 
    294                liste_files='*abort* memory* namelist* perfs* solver.stat ocean.output layout* ORCA2* restart* mono*' ;; 
     307               liste_files='*abort* memory* namelist* *xml* perfs* solver.stat ocean.output layout* ORCA2* restart* mono*' ;; 
    295308   'mpi' ) 
    296                liste_files='*abort* namelist* solver.stat perfs* ocean.output* layout* ORCA2* restart* mpp*' ;; 
     309               liste_files='*abort* namelist* *xml* solver.stat perfs* ocean.output* layout* ORCA2* restart* mpp*' ;; 
    297310esac 
    298311 
     
    318331############################################################## 
    319332############################################################## 
    320 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ] 
     333if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 
    321334then 
    322335   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} 
  • branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ORCA2_OFF_PISCES.ksh

    r1576 r2201  
    1414MYO_EXP=xxx 
    1515TSYMB=xxx 
     16USE_IOMPUT=xxx 
     17USE_IOSERVER=xxx 
     18NB_PROCS_IOSERVER=xxx 
     19 
    1620 
    1721# Variables changed by ins_valid.ksh script 
     
    134138mv nam.tmp namelist_pisces 
    135139 
     140# iom_put xml file 
     141if [ "${USE_IOMPUT}" = "true" ] 
     142then 
     143    get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 
     144    get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 
     145    sed -e "s/^ *using_server *=.*$/  using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 
     146    mv tmp$$ xmlio_server.def 
     147fi 
    136148 
    137149# Get forcing files 
     
    264276case ${RUN} in 
    265277   'mon' | 'omp' ) 
    266                liste_files='*abort* memory* namelist* perfs* ocean.output layout* PISCES* restart* mono*' ;; 
     278               liste_files='*abort* memory* namelist* *xml* perfs* ocean.output layout* PISCES* restart* mono*' ;; 
    267279   'mpi' ) 
    268                liste_files='*abort* namelist* perfs* ocean.output* layout* PISCES* restart* mpp*' ;; 
     280               liste_files='*abort* namelist* *xml* perfs* ocean.output* layout* PISCES* restart* mpp*' ;; 
    269281esac 
    270282 
     
    290302############################################################## 
    291303############################################################## 
    292 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ] 
     304if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 
    293305then 
    294306   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} 
  • branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ZAGRIF.ksh

    r1620 r2201  
    1414MYO_EXP=xxx 
    1515TSYMB=xxx 
     16USE_IOMPUT=xxx 
     17USE_IOSERVER=xxx 
     18NB_PROCS_IOSERVER=xxx 
    1619 
    1720# Variables changed by ins_valid.ksh script 
     
    146149done 
    147150 
     151# iom_put xml file 
     152if [ "${USE_IOMPUT}" = "true" ] 
     153then 
     154    get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 
     155    get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 
     156    sed -e "s/^ *using_server *=.*$/  using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 
     157    mv tmp$$ xmlio_server.def 
     158fi 
     159 
    148160# Get forcing files 
    149 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.1.tar ORCA2_LIM_nemo_v3.1.tar 
    150 tar xvf ORCA2_LIM_nemo_v3.1.tar 
    151 rm -f ORCA2_LIM_nemo_v3.1.tar 
     161${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.2.tar ORCA2_LIM_nemo_v3.2.tar 
     162tar xvf ORCA2_LIM_nemo_v3.2.tar 
     163rm -f ORCA2_LIM_nemo_v3.2.tar 
    152164 
    153165# Get restarts files if needed 
     
    267279case ${RUN} in 
    268280   'mon' | 'omp' ) 
    269                liste_files=' *abort* memory* *namelist* perfs* solver.stat ocean.output 1_Agulhas* layout* ZAGRIF* restart* mono*' ;; 
     281               liste_files=' *abort* memory* *namelist* *xml* perfs* solver.stat ocean.output 1_Agulhas* layout* ZAGRIF* restart* mono*' ;; 
    270282   'mpi' ) 
    271                liste_files=' *abort* *namelist* solver.stat perfs* ocean.output* layout* 1_Agulhas* ZAGRIF* restart* mpp*' ;; 
     283               liste_files=' *abort* *namelist* *xml* solver.stat perfs* ocean.output* layout* 1_Agulhas* ZAGRIF* restart* mpp*' ;; 
    272284esac 
    273285 
     
    293305############################################################## 
    294306############################################################## 
    295 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ] 
     307if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 
    296308then 
    297309   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} 
  • branches/DEV_r1924_nocs_latphys/NVTK/Makefile

    r1611 r2201  
    3636#- 
    3737#- Configurations list which must be tested 
    38 LISTE_CONF = GYRE GYRE_LOBSTER ORCA2_LIM ORCA2_LIM3 ORCA2_LIM_PISCES ORCA2_OFF_PISCES 
     38LISTE_CONF = GYRE GYRE_LOBSTER ORCA2_LIM ORCA2_LIM3 ORCA2_LIM_PISCES ORCA2_OFF_PISCES ZAGRIF 
    3939#- 
    4040#- Jobs to launch use keyword: nojob, all, long, short or gtime 
     
    6060MAK_MEMO = memo 
    6161#- 
    62 #- Experience name or reference Tag name (nemo_v2, nemo_v2_3 or nemo_v3) 
    63 REF_TAGV = nemo_v3 
     62#- Experience name or reference Tag name (nemo_v2, nemo_v2_3 ,nemo_v3 or nemo_v3_2) 
     63REF_TAGV = nemo_v3_2 
    6464#- 
    6565##################################################################### 
  • branches/DEV_r1924_nocs_latphys/NVTK/fait_AA_make

    r1791 r2201  
    417417   for inc in `sed -n 's/^[   ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` 
    418418   do 
     419        if [ "${inc}" != "mpif.h" ] 
     420        then 
    419421       dep="$dep\n$inc" 
     422        fi 
    420423   done 
    421424 
     
    429432   for inc in `sed -n 's/^#[  ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` 
    430433   do 
    431        j=1 
     434            if [ "${inc}" != "mpif.h" ] 
     435            then 
     436            j=1 
    432437       dep="$dep\n$inc" 
    433438      for inc2 in `sed -n 's/^#[    ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc | sort -u` 
     
    437442          for inc3 in `sed -n 's/^#[   ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc2 | sort -u` 
    438443          do 
     444 
    439445         dep="$dep\n$inc3" 
    440446          done 
    441447      done 
     448            fi 
    442449   done 
    443450 
  • branches/DEV_r1924_nocs_latphys/UTIL/fait_AA_make

    r1793 r2201  
    230230echo '#          Check your compilers option in consequence when using real F95 compilers' 
    231231echo '' 
     232echo 'F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) ' 
     233echo 'L_X = $(L_O) ' 
    232234echo '#-Q- platine # Compiler options NEMO (CCRT Itanium Bull) ' 
    233235echo '#-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) ' 
     
    403405   for inc in `sed -n 's/^[   ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` 
    404406   do 
     407        if [ "${inc}" != "mpif.h" ] 
     408        then 
    405409       dep="$dep\n$inc" 
     410        fi  
    406411   done 
    407412 
     
    415420   for inc in `sed -n 's/^#[  ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` 
    416421   do 
     422        if [ "${inc}" != "mpif.h" ] 
     423        then 
    417424       j=1 
    418425       dep="$dep\n$inc" 
     
    426433          done 
    427434      done 
     435        fi  
    428436   done 
    429437 
Note: See TracChangeset for help on using the changeset viewer.